@@ -2337,7 +2337,7 @@ intel_dp_detect(struct drm_connector *connector, bool force)
intel_dp->has_audio = false;
/* Ensure the sink is awake for DPCD/EDID reads. */
- if (connector->dpms != DRM_MODE_DPMS_ON) {
+ if (!is_edp(intel_dp) && connector->dpms != DRM_MODE_DPMS_ON) {
/* Bypass DPCD check, since we obtain it during detection. */
intel_dp_do_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
}
@@ -2352,7 +2352,7 @@ intel_dp_detect(struct drm_connector *connector, bool force)
DRM_DEBUG_KMS("DPCD: %s\n", dpcd_hex_dump);
if (status != connector_status_connected) {
- if (connector->dpms != DRM_MODE_DPMS_ON)
+ if (!is_edp(intel_dp) && connector->dpms != DRM_MODE_DPMS_ON)
intel_dp_do_sink_dpms(intel_dp, connector->dpms);
return status;
}
@@ -2373,7 +2373,7 @@ intel_dp_detect(struct drm_connector *connector, bool force)
intel_encoder->type = INTEL_OUTPUT_DISPLAYPORT;
/* Restore the sink state */
- if (connector->dpms != DRM_MODE_DPMS_ON)
+ if (!is_edp(intel_dp) && connector->dpms != DRM_MODE_DPMS_ON)
intel_dp_do_sink_dpms(intel_dp, connector->dpms);
return connector_status_connected;