From: Shixiong Ou Date: Thu, 9 May 2024 08:57:58 +0000 (+0800) Subject: drm/radeon: Delay Connector detecting when HPD singals is unstable X-Git-Tag: v6.11-rc1~141^2~25^2~275 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=949658cb9b69ab9d22a42a662b2fdc7085689ed8;p=thirdparty%2Fkernel%2Flinux.git drm/radeon: Delay Connector detecting when HPD singals is unstable In some causes, HPD signals will jitter when plugging in or unplugging HDMI. Rescheduling the hotplug work for a second when EDID may still be readable but HDP is disconnected, and fixes this issue. Signed-off-by: Shixiong Ou Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index b84b58926106a..cf0114ca59a43 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -1267,6 +1267,16 @@ radeon_dvi_detect(struct drm_connector *connector, bool force) goto exit; } } + + if (dret && radeon_connector->hpd.hpd != RADEON_HPD_NONE && + !radeon_hpd_sense(rdev, radeon_connector->hpd.hpd) && + connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) { + DRM_DEBUG_KMS("EDID is readable when HPD disconnected\n"); + schedule_delayed_work(&rdev->hotplug_work, msecs_to_jiffies(1000)); + ret = connector_status_disconnected; + goto exit; + } + if (dret) { radeon_connector->detected_by_load = false; radeon_connector_free_edid(connector);