aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJerome Glisse2013-04-16 11:20:15 -0500
committerGreg Kroah-Hartman2013-05-11 15:54:07 -0500
commit4a0efa7ea15f619003b9ac58f9c2313bd98282dd (patch)
treeb162d4c6b23147ba86079bb7cd1e0b06f08caace
parent4f932e0c605d7349d3cf3036d509b5837e4b6861 (diff)
downloadkernel-omap-4a0efa7ea15f619003b9ac58f9c2313bd98282dd.tar.gz
kernel-omap-4a0efa7ea15f619003b9ac58f9c2313bd98282dd.tar.xz
kernel-omap-4a0efa7ea15f619003b9ac58f9c2313bd98282dd.zip
drm/radeon: Always flush the VM
commit 466476dfdcafbb4286ffa232a3a792731b9dc852 upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/gpu/drm/radeon/radeon_ring.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index cd72062d5a91..8adc5b5541fe 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -161,7 +161,8 @@ int radeon_ib_schedule(struct radeon_device *rdev, struct radeon_ib *ib,
161 radeon_semaphore_free(rdev, &ib->semaphore, NULL); 161 radeon_semaphore_free(rdev, &ib->semaphore, NULL);
162 } 162 }
163 /* if we can't remember our last VM flush then flush now! */ 163 /* if we can't remember our last VM flush then flush now! */
164 if (ib->vm && !ib->vm->last_flush) { 164 /* XXX figure out why we have to flush for every IB */
165 if (ib->vm /*&& !ib->vm->last_flush*/) {
165 radeon_ring_vm_flush(rdev, ib->ring, ib->vm); 166 radeon_ring_vm_flush(rdev, ib->ring, ib->vm);
166 } 167 }
167 if (const_ib) { 168 if (const_ib) {