]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpu/drm/i915/intel_dp.c
drm/i915: Perform link quality check unconditionally during long pulse
[linux.git] / drivers / gpu / drm / i915 / intel_dp.c
index 6e04cb54e3ff4453df023e2bb711e4d909c25975..ee77b519835c5fd9d8c582a9c3169b43d06ebab6 100644 (file)
@@ -4636,9 +4636,20 @@ intel_dp_long_pulse(struct intel_connector *intel_connector)
                 */
                status = connector_status_disconnected;
                goto out;
-       } else if (connector->status == connector_status_connected) {
+       } else {
+               /*
+                * If display is now connected check links status,
+                * there has been known issues of link loss triggerring
+                * long pulse.
+                *
+                * Some sinks (eg. ASUS PB287Q) seem to perform some
+                * weird HPD ping pong during modesets. So we can apparently
+                * end up with HPD going low during a modeset, and then
+                * going back up soon after. And once that happens we must
+                * retrain the link to get a picture. That's in case no
+                * userspace component reacted to intermittent HPD dip.
+                */
                intel_dp_check_link_status(intel_dp);
-               goto out;
        }
 
        /*