Prepare for polling analog connectors.
Document the function better.

Signed-off-by: Timur Kristóf <[email protected]>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 35 ++++++++++---------
 1 file changed, 19 insertions(+), 16 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 4a9109818672..cdc6112e5875 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -7123,29 +7123,32 @@ create_stream_for_sink(struct drm_connector *connector,
        return stream;
 }
 
+/**
+ * amdgpu_dm_connector_detect() - Detect whether a DRM connector is connected 
to a display
+ *
+ * A connector is considered connected when it has a sink that is not NULL.
+ * For connectors that support HPD (hotplug detection), the connection is
+ * handled in the HPD interrupt.
+ *
+ * Notes:
+ * 1. This interface is NOT called in context of HPD irq.
+ * 2. This interface *is called* in context of user-mode ioctl. Which
+ *    makes it a bad place for *any* MST-related activity.
+ */
 static enum drm_connector_status
 amdgpu_dm_connector_detect(struct drm_connector *connector, bool force)
 {
-       bool connected;
        struct amdgpu_dm_connector *aconnector = 
to_amdgpu_dm_connector(connector);
 
-       /*
-        * Notes:
-        * 1. This interface is NOT called in context of HPD irq.
-        * 2. This interface *is called* in context of user-mode ioctl. Which
-        * makes it a bad place for *any* MST-related activity.
-        */
-
-       if (aconnector->base.force == DRM_FORCE_UNSPECIFIED &&
-           !aconnector->fake_enable)
-               connected = (aconnector->dc_sink != NULL);
-       else
-               connected = (aconnector->base.force == DRM_FORCE_ON ||
-                               aconnector->base.force == DRM_FORCE_ON_DIGITAL);
-
        update_subconnector_property(aconnector);
 
-       return (connected ? connector_status_connected :
+       if (aconnector->base.force == DRM_FORCE_ON ||
+               aconnector->base.force == DRM_FORCE_ON_DIGITAL)
+               return connector_status_connected;
+       else if (aconnector->base.force == DRM_FORCE_OFF)
+               return connector_status_disconnected;
+
+       return (aconnector->dc_sink ? connector_status_connected :
                        connector_status_disconnected);
 }
 
-- 
2.51.0

Reply via email to