mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
drm/nouveau/fifo/gk104-: poll for runlist update completion
[ Upstream commit 4f2fc25c0f ]
Newer HW doesn't appear to send this event, which will cause long delays
in runlist updates if they don't complete immediately.
RM doesn't use these events anywhere, and an NVGPU commit message notes
that polling is the preferred method even on HW that supports the event.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
fdb5207dc1
commit
33775b0742
@@ -155,10 +155,10 @@ gk104_fifo_runlist_commit(struct gk104_fifo *fifo, int runl)
|
||||
(target << 28));
|
||||
nvkm_wr32(device, 0x002274, (runl << 20) | nr);
|
||||
|
||||
if (wait_event_timeout(fifo->runlist[runl].wait,
|
||||
!(nvkm_rd32(device, 0x002284 + (runl * 0x08))
|
||||
& 0x00100000),
|
||||
msecs_to_jiffies(2000)) == 0)
|
||||
if (nvkm_msec(device, 2000,
|
||||
if (!(nvkm_rd32(device, 0x002284 + (runl * 0x08)) & 0x00100000))
|
||||
break;
|
||||
) < 0)
|
||||
nvkm_error(subdev, "runlist %d update timeout\n", runl);
|
||||
unlock:
|
||||
mutex_unlock(&subdev->mutex);
|
||||
|
||||
Reference in New Issue
Block a user