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 <oushixiong@kylinos.cn>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Shixiong Ou 2024-05-09 16:57:58 +08:00 committed by Alex Deucher
parent d2d3a44008
commit 949658cb9b

View File

@ -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);