diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 8b3d8ed..51925c4 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -851,6 +854,17 @@ radeon_dvi_detect(struct drm_connector *connector, bool force) enum drm_connector_status ret = connector_status_disconnected; bool dret = false; + if (!force && !radeon_connector->shared_ddc + && connector->status == connector_status_connected + && radeon_connector->hpd.hpd != RADEON_HPD_NONE + && radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) { + /* Do not re-fetch EDID if a HPD capable connector + * remains connected. */ + return connector_status_connected; + } + if (radeon_connector->ddc_bus) dret = radeon_ddc_probe(radeon_connector); if (dret) {