From: Saidireddy Yenugu <[email protected]>

[Why & How]
When there is no eDP panel connected and during
s0ix resume, unnecessary eDP power sequence and
HPD happening, resulting in ~2 seconds delay.

Fixed the issue by avoiding link detect for eDP
connection with no sink in dm_resume.

Reviewed-by: Mario Limonciello <[email protected]>
Signed-off-by: Saidireddy Yenugu <[email protected]>
Co-developed-by: ThummarDip Kishorbhai <[email protected]>
Signed-off-by: ThummarDip Kishorbhai <[email protected]>
Signed-off-by: Ray Wu <[email protected]>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++++
 1 file changed, 5 insertions(+)

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 10a234e7bae9..ee0f52eadc0c 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3614,6 +3614,11 @@ static int dm_resume(struct amdgpu_ip_block *ip_block)
                if (aconnector->mst_root)
                        continue;
 
+               /* Skip eDP detection, when there is no sink present */
+               if (aconnector->dc_link->connector_signal == SIGNAL_TYPE_EDP &&
+                   !aconnector->dc_link->edp_sink_present)
+                       continue;
+
                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");
-- 
2.43.0

Reply via email to