Commit 91a8f1ea authored by Ben Skeggs's avatar Ben Skeggs

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: default avatarBen Skeggs <bskeggs@redhat.com>
parent afb0c796
...@@ -519,7 +519,7 @@ nouveau_fence_channel_init(struct nouveau_channel *chan) ...@@ -519,7 +519,7 @@ nouveau_fence_channel_init(struct nouveau_channel *chan)
if (USE_SEMA(dev) && dev_priv->chipset < 0x84) { if (USE_SEMA(dev) && dev_priv->chipset < 0x84) {
struct ttm_mem_reg *mem = &dev_priv->fence.bo->bo.mem; 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->start << PAGE_SHIFT,
mem->size, NV_MEM_ACCESS_RW, mem->size, NV_MEM_ACCESS_RW,
NV_MEM_TARGET_VRAM, &obj); NV_MEM_TARGET_VRAM, &obj);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment