OSDN Git Service

drm/radeon: fix wait to actually occur after the signaling callback
authorMaarten Lankhorst <maarten.lankhorst@ubuntu.com>
Tue, 3 Mar 2015 08:56:42 +0000 (09:56 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 Mar 2015 12:30:35 +0000 (08:30 -0400)
commitb6610101718d4ab90d793c482625e98eb1262cad
tree61fc4b5a3d0864c7b1400605beb31508a47b068b
parentcd961bb9eebb630452f49dcbf3e5f0059428614a
drm/radeon: fix wait to actually occur after the signaling callback

A normal wait adds to the front of the tail. By doing something
similar to fence_default_wait the fence code can run without racing.

This is a complete fix for "panic on suspend from KDE with radeon",
and a partial fix for "Radeon: System pauses on TAHITI". On tahiti
si_irq_set needs to be fixed too, to completely flush the writes
before radeon_fence_activity is called in radeon_fence_enable_signaling.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=90741
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=90861
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Reported-by: Jon Arne Jørgensen <jonjon.arnearne@gmail.com>
Reported-and-tested-by: Gustaw Smolarczyk <wielkiegie@gmail.com>
Cc: stable@vger.kernel.org (v3.18+)
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_fence.c