Commit 34ddc3e9 authored by Daniel Vetter's avatar Daniel Vetter Committed by Alex Deucher

drm/radeon: Don't take dev->struct_mutex in pm functions

We already grab 2 device-global locks (write-sema rdev->pm.mclk_lock
and rdev->ring_lock), adding another global mutex won't serialize this
code more. And since there's really nothing interesting that gets
protected in radeon by dev->struct mutex (we only have the global z
buffer owners and it's still serializing gem bo destruction in the drm
core - which is irrelevant since radeon uses ttm anyway internally)
this doesn't add protection. Remove it.

Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 42192a94
...@@ -253,7 +253,6 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev) ...@@ -253,7 +253,6 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev)
(rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index)) (rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index))
return; return;
mutex_lock(&rdev->ddev->struct_mutex);
down_write(&rdev->pm.mclk_lock); down_write(&rdev->pm.mclk_lock);
mutex_lock(&rdev->ring_lock); mutex_lock(&rdev->ring_lock);
...@@ -268,7 +267,6 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev) ...@@ -268,7 +267,6 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev)
/* needs a GPU reset dont reset here */ /* needs a GPU reset dont reset here */
mutex_unlock(&rdev->ring_lock); mutex_unlock(&rdev->ring_lock);
up_write(&rdev->pm.mclk_lock); up_write(&rdev->pm.mclk_lock);
mutex_unlock(&rdev->ddev->struct_mutex);
return; return;
} }
} }
...@@ -304,7 +302,6 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev) ...@@ -304,7 +302,6 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev)
mutex_unlock(&rdev->ring_lock); mutex_unlock(&rdev->ring_lock);
up_write(&rdev->pm.mclk_lock); up_write(&rdev->pm.mclk_lock);
mutex_unlock(&rdev->ddev->struct_mutex);
} }
static void radeon_pm_print_states(struct radeon_device *rdev) static void radeon_pm_print_states(struct radeon_device *rdev)
...@@ -1062,7 +1059,6 @@ static void radeon_dpm_change_power_state_locked(struct radeon_device *rdev) ...@@ -1062,7 +1059,6 @@ static void radeon_dpm_change_power_state_locked(struct radeon_device *rdev)
radeon_dpm_print_power_state(rdev, rdev->pm.dpm.requested_ps); radeon_dpm_print_power_state(rdev, rdev->pm.dpm.requested_ps);
} }
mutex_lock(&rdev->ddev->struct_mutex);
down_write(&rdev->pm.mclk_lock); down_write(&rdev->pm.mclk_lock);
mutex_lock(&rdev->ring_lock); mutex_lock(&rdev->ring_lock);
...@@ -1113,7 +1109,6 @@ static void radeon_dpm_change_power_state_locked(struct radeon_device *rdev) ...@@ -1113,7 +1109,6 @@ static void radeon_dpm_change_power_state_locked(struct radeon_device *rdev)
done: done:
mutex_unlock(&rdev->ring_lock); mutex_unlock(&rdev->ring_lock);
up_write(&rdev->pm.mclk_lock); up_write(&rdev->pm.mclk_lock);
mutex_unlock(&rdev->ddev->struct_mutex);
} }
void radeon_dpm_enable_uvd(struct radeon_device *rdev, bool enable) void radeon_dpm_enable_uvd(struct radeon_device *rdev, bool enable)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment