diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-07-25 06:26:19 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-09-20 02:08:59 -0400 |
commit | 91a8f1ea4bd98a7de888f7d56e28b72cc0c63ca1 (patch) | |
tree | 865d8f39aeee90521b97e8f73ed68e9eae34a709 /drivers/gpu/drm/nouveau/nouveau_fence.c | |
parent | afb0c796d8002a0052662ff337dbd18b5dc5ff97 (diff) |
drm/nouveau: workaround semaphore hw bug causing unnecessary interrupts
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>
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 c919cfc8f2fd..81116cfea275 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c | |||
@@ -519,7 +519,7 @@ nouveau_fence_channel_init(struct nouveau_channel *chan) | |||
519 | if (USE_SEMA(dev) && dev_priv->chipset < 0x84) { | 519 | if (USE_SEMA(dev) && dev_priv->chipset < 0x84) { |
520 | struct ttm_mem_reg *mem = &dev_priv->fence.bo->bo.mem; | 520 | struct ttm_mem_reg *mem = &dev_priv->fence.bo->bo.mem; |
521 | 521 | ||
522 | ret = nouveau_gpuobj_dma_new(chan, NV_CLASS_DMA_IN_MEMORY, | 522 | ret = nouveau_gpuobj_dma_new(chan, NV_CLASS_DMA_FROM_MEMORY, |
523 | mem->start << PAGE_SHIFT, | 523 | mem->start << PAGE_SHIFT, |
524 | mem->size, NV_MEM_ACCESS_RW, | 524 | mem->size, NV_MEM_ACCESS_RW, |
525 | NV_MEM_TARGET_VRAM, &obj); | 525 | NV_MEM_TARGET_VRAM, &obj); |