drm/nouveau: workaround semaphore hw bug causing unnecessary interrupts
authorBen Skeggs <bskeggs@redhat.com>
Mon, 25 Jul 2011 10:26:19 +0000 (20:26 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 20 Sep 2011 06:08:59 +0000 (16:08 +1000)
The HW will only accept the DMA_FROM_MEMORY class for DMA_SEMAPHORE without
asking the driver to intervene.

It appears that semaphores will work correctly even without DMA_IN_MEMORY,
so lets avoid the large amount of interrupts generated by x-chan sync.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_fence.c

index c919cfc8f2fdf762589ba5db144be75e3066fb6d..81116cfea275f70fc5011a23c4284b51fc2fcf4a 100644 (file)
@@ -519,7 +519,7 @@ nouveau_fence_channel_init(struct nouveau_channel *chan)
        if (USE_SEMA(dev) && dev_priv->chipset < 0x84) {
                struct ttm_mem_reg *mem = &dev_priv->fence.bo->bo.mem;
 
-               ret = nouveau_gpuobj_dma_new(chan, NV_CLASS_DMA_IN_MEMORY,
+               ret = nouveau_gpuobj_dma_new(chan, NV_CLASS_DMA_FROM_MEMORY,
                                             mem->start << PAGE_SHIFT,
                                             mem->size, NV_MEM_ACCESS_RW,
                                             NV_MEM_TARGET_VRAM, &obj);