]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/radeon: Always flush the VM
authorJerome Glisse <jglisse@redhat.com>
Tue, 16 Apr 2013 16:20:15 +0000 (12:20 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 May 2013 14:18:34 +0000 (07:18 -0700)
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>
drivers/gpu/drm/radeon/radeon_ring.c

index 8d58e268ff6d5afdfe93f6df0656fb60aef02acf..1ef5eaac6aba49e9297c80d7312a0ea62ca031e0 100644 (file)
@@ -180,7 +180,8 @@ int radeon_ib_schedule(struct radeon_device *rdev, struct radeon_ib *ib,
                radeon_semaphore_free(rdev, &ib->semaphore, NULL);
        }
        /* 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);
        }
        if (const_ib) {