if (irq_mask & RX_CAP_CHANGED)
reprobe_needed = true;
+ if (irq_mask & LINK_STATUS_CHANGED)
+ intel_dp_check_link_state(intel_dp);
+
if (irq_mask & HDMI_LINK_STATUS_CHANGED)
intel_dp_handle_hdmi_link_status_change(intel_dp);
intel_dp_handle_device_service_irq(intel_dp, esi[1]);
+ /*
+ * Force checking the link status for DPCD_REV < 1.2
+ * TODO: let the link status check depend on LINK_STATUS_CHANGED
+ * for DPCD_REV >= 1.2
+ */
+ esi[3] |= LINK_STATUS_CHANGED;
if (intel_dp_handle_link_service_irq(intel_dp, esi[3]))
reprobe_needed = true;
/* Handle CEC interrupts, if any */
drm_dp_cec_irq(&intel_dp->aux);
- intel_dp_check_link_state(intel_dp);
-
if (READ_ONCE(intel_dp->downstream_port_changed)) {
WRITE_ONCE(intel_dp->downstream_port_changed, false);
reprobe_needed = true;