mirror of
https://github.com/torvalds/linux.git
synced 2024-11-04 11:04:38 +00:00
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:
parent
4aab97e818
commit
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);
|
||||
|
Loading…
Reference in New Issue
Block a user