drm/radeon/kms/pm: bail early if nothing's changing
If we aren't changing the power state, no need to take locks and schedule fences, etc. There seem to be lock ordering issues in the CP and fence code in some cases; see bug 29140 below. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=29140 Possibly also: https://bugzilla.kernel.org/show_bug.cgi?id=16581 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Родитель
4aab97e818
Коммит
4e186b2d6c
|
@ -226,6 +226,11 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev)
|
|||
{
|
||||
int i;
|
||||
|
||||
/* no need to take locks, etc. if nothing's going to change */
|
||||
if ((rdev->pm.requested_clock_mode_index == rdev->pm.current_clock_mode_index) &&
|
||||
(rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index))
|
||||
return;
|
||||
|
||||
mutex_lock(&rdev->ddev->struct_mutex);
|
||||
mutex_lock(&rdev->vram_mutex);
|
||||
mutex_lock(&rdev->cp.mutex);
|
||||
|
|
Загрузка…
Ссылка в новой задаче