diff options
author | Francisco Jerez <currojerez@riseup.net> | 2009-12-26 02:09:36 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-01-11 14:41:12 +1000 |
commit | a5027ccd3c1abe190d2b84a2d7e40d5f099e48a7 (patch) | |
tree | 5c56d95fe5f958b960c0e4bd8aba536771975bfa /drivers/gpu/drm/nouveau/nouveau_fence.c | |
parent | ca4362adb4c01807dfcf3f2b3152a7ee36f0d1ca (diff) | |
download | op-kernel-dev-a5027ccd3c1abe190d2b84a2d7e40d5f099e48a7.zip op-kernel-dev-a5027ccd3c1abe190d2b84a2d7e40d5f099e48a7.tar.gz |
drm/nouveau: Use the software object for fencing.
This should avoid a race condition on nv0x, if we're doing it with
actual PGRAPH objects and a there's a fence within the FIFO DMA fetch
area when a context switch kicks in.
In that case we get an ILLEGAL_MTHD interrupt as expected, but the
values in PGRAPH_TRAPPED_ADDR aren't calculated correctly and they're
almost useless (e.g. you can see ILLEGAL_MTHDs for the now inactive
channel, with a wrong offset/data pair).
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_fence.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_fence.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c index dacac9a..faddf53 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c @@ -142,7 +142,7 @@ nouveau_fence_emit(struct nouveau_fence *fence) list_add_tail(&fence->entry, &chan->fence.pending); spin_unlock_irqrestore(&chan->fence.lock, flags); - BEGIN_RING(chan, NvSubM2MF, USE_REFCNT ? 0x0050 : 0x0150, 1); + BEGIN_RING(chan, NvSubSw, USE_REFCNT ? 0x0050 : 0x0150, 1); OUT_RING(chan, fence->sequence); FIRE_RING(chan); |