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)
committerSasha Levin <sasha.levin@oracle.com>
Sat, 28 Mar 2015 13:24:06 +0000 (09:24 -0400)
commit764725a6ee43f8151005de778dffe58f5f84b5c9
tree1f8a8c232dd25722ba4520b0af2067abe5287192
parent6eef27b662aadf5488eb793c87143e0510ed3ada
drm/radeon: fix wait to actually occur after the signaling callback

[ Upstream commit b6610101718d4ab90d793c482625e98eb1262cad ]

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>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/gpu/drm/radeon/radeon_fence.c