瀏覽代碼

drm/radeon: Always flush the VM

This is slightly cleaned up version of Jerome's patch.
There seems to be an issue tracking the last flush of
the VM which results in hangs in certain cases when
VM is used.  For now just flush the VM for every IB.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=62959
https://bugs.freedesktop.org/show_bug.cgi?id=62997

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Jerome Glisse 12 年之前
父節點
當前提交
466476dfdc
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/gpu/drm/radeon/radeon_ring.c

+ 2 - 1
drivers/gpu/drm/radeon/radeon_ring.c

@@ -180,7 +180,8 @@ int radeon_ib_schedule(struct radeon_device *rdev, struct radeon_ib *ib,
 		radeon_semaphore_free(rdev, &ib->semaphore, NULL);
 		radeon_semaphore_free(rdev, &ib->semaphore, NULL);
 	}
 	}
 	/* if we can't remember our last VM flush then flush now! */
 	/* if we can't remember our last VM flush then flush now! */
-	if (ib->vm && !ib->vm->last_flush) {
+	/* XXX figure out why we have to flush for every IB */
+	if (ib->vm /*&& !ib->vm->last_flush*/) {
 		radeon_ring_vm_flush(rdev, ib->ring, ib->vm);
 		radeon_ring_vm_flush(rdev, ib->ring, ib->vm);
 	}
 	}
 	if (const_ib) {
 	if (const_ib) {