Merge tag 'drm-intel-next-2023-08-03' of git://anongit.freedesktop.org/drm/drm-intel...
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / display / intel_dp.c
index def5d8a..0367562 100644 (file)
@@ -4078,9 +4078,7 @@ intel_dp_mst_hpd_irq(struct intel_dp *intel_dp, u8 *esi, u8 *ack)
 {
        bool handled = false;
 
-       drm_dp_mst_hpd_irq(&intel_dp->mst_mgr, esi, &handled);
-       if (handled)
-               ack[1] |= esi[1] & (DP_DOWN_REP_MSG_RDY | DP_UP_REQ_MSG_RDY);
+       drm_dp_mst_hpd_irq_handle_event(&intel_dp->mst_mgr, esi, ack, &handled);
 
        if (esi[1] & DP_CP_IRQ) {
                intel_hdcp_handle_cp_irq(intel_dp->attached_connector);
@@ -4155,6 +4153,9 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
 
                if (!intel_dp_ack_sink_irq_esi(intel_dp, ack))
                        drm_dbg_kms(&i915->drm, "Failed to ack ESI\n");
+
+               if (ack[1] & (DP_DOWN_REP_MSG_RDY | DP_UP_REQ_MSG_RDY))
+                       drm_dp_mst_hpd_irq_send_new_request(&intel_dp->mst_mgr);
        }
 
        return link_ok;