drm/amd/powerplay: fix deadlock around smu_handle_task V2
As the lock was already held on the entrance to smu_handle_task. - V2: lock in small granularity Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Kevin Wang <kevin1.wang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7ef65bbd01
commit
f68ccf43ac
@ -2996,13 +2996,10 @@ void amdgpu_pm_compute_clocks(struct amdgpu_device *adev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_support_sw_smu(adev)) {
|
if (is_support_sw_smu(adev)) {
|
||||||
struct smu_context *smu = &adev->smu;
|
|
||||||
struct smu_dpm_context *smu_dpm = &adev->smu.smu_dpm;
|
struct smu_dpm_context *smu_dpm = &adev->smu.smu_dpm;
|
||||||
mutex_lock(&(smu->mutex));
|
|
||||||
smu_handle_task(&adev->smu,
|
smu_handle_task(&adev->smu,
|
||||||
smu_dpm->dpm_level,
|
smu_dpm->dpm_level,
|
||||||
AMD_PP_TASK_DISPLAY_CONFIG_CHANGE);
|
AMD_PP_TASK_DISPLAY_CONFIG_CHANGE);
|
||||||
mutex_unlock(&(smu->mutex));
|
|
||||||
} else {
|
} else {
|
||||||
if (adev->powerplay.pp_funcs->dispatch_tasks) {
|
if (adev->powerplay.pp_funcs->dispatch_tasks) {
|
||||||
if (!amdgpu_device_has_dc_support(adev)) {
|
if (!amdgpu_device_has_dc_support(adev)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user