Refactor places using drm_modeset_{lock,unlock}_all() so that they only
appear once per function.

This is needed so that in the next commit I can replace those functions
by the new macros (which use labels that can only appear once per
function).

Signed-off-by: Fernando Ramos <green...@u92.eu>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 43 ++++++++-----------
 .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 18 +++-----
 2 files changed, 26 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index f35561b5a465..10ed1f8ad514 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2935,13 +2935,6 @@ static void handle_hpd_irq_helper(struct 
amdgpu_dm_connector *aconnector)
        if (aconnector->base.force && new_connection_type == 
dc_connection_none) {
                emulated_link_detect(aconnector->dc_link);
 
-               drm_modeset_lock_all(dev);
-               dm_restore_drm_connector_state(dev, connector);
-               drm_modeset_unlock_all(dev);
-
-               if (aconnector->base.force == DRM_FORCE_UNSPECIFIED)
-                       drm_kms_helper_hotplug_event(dev);
-
        } else if (dc_link_detect(aconnector->dc_link, DETECT_REASON_HPD)) {
                if (new_connection_type == dc_connection_none &&
                    aconnector->dc_link->type == dc_connection_none &&
@@ -2950,13 +2943,18 @@ static void handle_hpd_irq_helper(struct 
amdgpu_dm_connector *aconnector)
 
                amdgpu_dm_update_connector_after_detect(aconnector);
 
-               drm_modeset_lock_all(dev);
-               dm_restore_drm_connector_state(dev, connector);
-               drm_modeset_unlock_all(dev);
-
-               if (aconnector->base.force == DRM_FORCE_UNSPECIFIED)
-                       drm_kms_helper_hotplug_event(dev);
+       } else {
+               goto out;
        }
+
+       drm_modeset_lock_all(dev);
+       dm_restore_drm_connector_state(dev, connector);
+       drm_modeset_unlock_all(dev);
+
+       if (aconnector->base.force == DRM_FORCE_UNSPECIFIED)
+               drm_kms_helper_hotplug_event(dev);
+
+out:
        mutex_unlock(&aconnector->hpd_lock);
 
 }
@@ -3144,12 +3142,6 @@ static void handle_hpd_rx_irq(void *param)
 
                        amdgpu_dm_update_connector_after_detect(aconnector);
 
-
-                       drm_modeset_lock_all(dev);
-                       dm_restore_drm_connector_state(dev, connector);
-                       drm_modeset_unlock_all(dev);
-
-                       drm_kms_helper_hotplug_event(dev);
                } else if (dc_link_detect(dc_link, DETECT_REASON_HPDRX)) {
 
                        if (aconnector->fake_enable)
@@ -3157,14 +3149,17 @@ static void handle_hpd_rx_irq(void *param)
 
                        amdgpu_dm_update_connector_after_detect(aconnector);
 
+               } else {
+                       goto finish;
+               }
 
-                       drm_modeset_lock_all(dev);
-                       dm_restore_drm_connector_state(dev, connector);
-                       drm_modeset_unlock_all(dev);
+               drm_modeset_lock_all(dev);
+               dm_restore_drm_connector_state(dev, connector);
+               drm_modeset_unlock_all(dev);
 
-                       drm_kms_helper_hotplug_event(dev);
-               }
+               drm_kms_helper_hotplug_event(dev);
        }
+finish:
 #ifdef CONFIG_DRM_AMD_DC_HDCP
        if (hpd_irq_data.bytes.device_service_irq.bits.CP_IRQ) {
                if (adev->dm.hdcp_workqueue)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
index 814f67d86a3c..7751038d5788 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
@@ -1237,12 +1237,6 @@ static ssize_t trigger_hotplug(struct file *f, const 
char __user *buf,
                        goto unlock;
 
                amdgpu_dm_update_connector_after_detect(aconnector);
-
-               drm_modeset_lock_all(dev);
-               dm_restore_drm_connector_state(dev, connector);
-               drm_modeset_unlock_all(dev);
-
-               drm_kms_helper_hotplug_event(dev);
        } else if (param[0] == 0) {
                if (!aconnector->dc_link)
                        goto unlock;
@@ -1260,13 +1254,15 @@ static ssize_t trigger_hotplug(struct file *f, const 
char __user *buf,
 
                amdgpu_dm_update_connector_after_detect(aconnector);
 
-               drm_modeset_lock_all(dev);
-               dm_restore_drm_connector_state(dev, connector);
-               drm_modeset_unlock_all(dev);
-
-               drm_kms_helper_hotplug_event(dev);
+       } else {
+               goto unlock;
        }
 
+       drm_modeset_lock_all(dev);
+       dm_restore_drm_connector_state(dev, connector);
+       drm_modeset_unlock_all(dev);
+       drm_kms_helper_hotplug_event(dev);
+
 unlock:
        mutex_unlock(&aconnector->hpd_lock);
 
-- 
2.33.0

Reply via email to