drm/amd/display: Use scoped guard for dm_resume()
authorMario Limonciello <mario.limonciello@amd.com>
Tue, 18 Feb 2025 04:58:33 +0000 (22:58 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 5 Mar 2025 15:41:34 +0000 (10:41 -0500)
Scoped guards will release the mutex when they go out of scope.
Adjust the code to use these instead.

Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 9c96841387dd7062c0560c06821656701f9247c8..900ac463078ccb2440ecf3d43a0ded279dd4bcce 100644 (file)
@@ -3470,17 +3470,16 @@ static int dm_resume(struct amdgpu_ip_block *ip_block)
                if (aconnector->mst_root)
                        continue;
 
-               mutex_lock(&aconnector->hpd_lock);
+               guard(mutex)(&aconnector->hpd_lock);
                if (!dc_link_detect_connection_type(aconnector->dc_link, &new_connection_type))
                        drm_err(adev_to_drm(adev), "KMS: Failed to detect connector\n");
 
                if (aconnector->base.force && new_connection_type == dc_connection_none) {
                        emulated_link_detect(aconnector->dc_link);
                } else {
-                       mutex_lock(&dm->dc_lock);
+                       guard(mutex)(&dm->dc_lock);
                        dc_exit_ips_for_hw_access(dm->dc);
                        dc_link_detect(aconnector->dc_link, DETECT_REASON_RESUMEFROMS3S4);
-                       mutex_unlock(&dm->dc_lock);
                }
 
                if (aconnector->fake_enable && aconnector->dc_link->local_sink)
@@ -3490,7 +3489,6 @@ static int dm_resume(struct amdgpu_ip_block *ip_block)
                        dc_sink_release(aconnector->dc_sink);
                aconnector->dc_sink = NULL;
                amdgpu_dm_update_connector_after_detect(aconnector);
-               mutex_unlock(&aconnector->hpd_lock);
        }
        drm_connector_list_iter_end(&iter);