intel_dp->link_trained = false;
 
+       if (old_crtc_state->has_audio)
+               intel_audio_codec_disable(encoder,
+                                         old_crtc_state, old_conn_state);
+
+       intel_drrs_disable(intel_dp, old_crtc_state);
+       intel_psr_disable(intel_dp, old_crtc_state);
        intel_edp_backlight_off(old_conn_state);
        /* Disable the decompression in DP Sink */
        intel_dp_sink_set_decompression_state(intel_dp, old_crtc_state,
        struct drm_i915_private *i915 = to_i915(encoder->base.dev);
        struct drm_connector *connector = old_conn_state->connector;
 
+       if (old_crtc_state->has_audio)
+               intel_audio_codec_disable(encoder,
+                                         old_crtc_state, old_conn_state);
+
        if (!intel_hdmi_handle_sink_scrambling(encoder, connector,
                                               false, false))
                drm_dbg_kms(&i915->drm,
                            connector->base.id, connector->name);
 }
 
-static void intel_pre_disable_ddi(struct intel_atomic_state *state,
-                                 struct intel_encoder *encoder,
-                                 const struct intel_crtc_state *old_crtc_state,
-                                 const struct drm_connector_state *old_conn_state)
-{
-       struct intel_dp *intel_dp;
-
-       if (old_crtc_state->has_audio)
-               intel_audio_codec_disable(encoder, old_crtc_state,
-                                         old_conn_state);
-
-       if (intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
-               return;
-
-       intel_dp = enc_to_intel_dp(encoder);
-       intel_drrs_disable(intel_dp, old_crtc_state);
-       intel_psr_disable(intel_dp, old_crtc_state);
-}
-
 static void intel_disable_ddi(struct intel_atomic_state *state,
                              struct intel_encoder *encoder,
                              const struct intel_crtc_state *old_crtc_state,
        encoder->enable = intel_enable_ddi;
        encoder->pre_pll_enable = intel_ddi_pre_pll_enable;
        encoder->pre_enable = intel_ddi_pre_enable;
-       encoder->pre_disable = intel_pre_disable_ddi;
        encoder->disable = intel_disable_ddi;
        encoder->post_disable = intel_ddi_post_disable;
        encoder->update_pipe = intel_ddi_update_pipe;
 
        }
 }
 
-static void intel_encoders_pre_disable(struct intel_atomic_state *state,
-                                      struct intel_crtc *crtc)
-{
-       const struct intel_crtc_state *old_crtc_state =
-               intel_atomic_get_old_crtc_state(state, crtc);
-       const struct drm_connector_state *old_conn_state;
-       struct drm_connector *conn;
-       int i;
-
-       for_each_old_connector_in_state(&state->base, conn, old_conn_state, i) {
-               struct intel_encoder *encoder =
-                       to_intel_encoder(old_conn_state->best_encoder);
-
-               if (old_conn_state->crtc != &crtc->base)
-                       continue;
-
-               if (encoder->pre_disable)
-                       encoder->pre_disable(state, encoder, old_crtc_state,
-                                            old_conn_state);
-       }
-}
-
 static void intel_encoders_disable(struct intel_atomic_state *state,
                                   struct intel_crtc *crtc)
 {
 
        drm_WARN_ON(&dev_priv->drm, old_crtc_state->bigjoiner_slave);
 
-       intel_encoders_pre_disable(state, crtc);
-
        intel_crtc_disable_planes(state, crtc);
 
        /*
 
        void (*update_complete)(struct intel_atomic_state *,
                                struct intel_encoder *,
                                struct intel_crtc *);
-       void (*pre_disable)(struct intel_atomic_state *,
-                           struct intel_encoder *,
-                           const struct intel_crtc_state *,
-                           const struct drm_connector_state *);
        void (*disable)(struct intel_atomic_state *,
                        struct intel_encoder *,
                        const struct intel_crtc_state *,
 
        drm_dp_check_act_status(&intel_dp->mst_mgr);
 }
 
-static void intel_mst_pre_disable_dp(struct intel_atomic_state *state,
-                                    struct intel_encoder *encoder,
-                                    const struct intel_crtc_state *old_crtc_state,
-                                    const struct drm_connector_state *old_conn_state)
-{
-       if (old_crtc_state->has_audio)
-               intel_audio_codec_disable(encoder, old_crtc_state,
-                                         old_conn_state);
-}
-
 static void intel_mst_disable_dp(struct intel_atomic_state *state,
                                 struct intel_encoder *encoder,
                                 const struct intel_crtc_state *old_crtc_state,
        if (ret) {
                drm_dbg_kms(&i915->drm, "failed to update payload %d\n", ret);
        }
+       if (old_crtc_state->has_audio)
+               intel_audio_codec_disable(encoder,
+                                         old_crtc_state, old_conn_state);
 }
 
 static void intel_mst_post_disable_dp(struct intel_atomic_state *state,
 
        intel_encoder->compute_config = intel_dp_mst_compute_config;
        intel_encoder->compute_config_late = intel_dp_mst_compute_config_late;
-       intel_encoder->pre_disable = intel_mst_pre_disable_dp;
        intel_encoder->disable = intel_mst_disable_dp;
        intel_encoder->post_disable = intel_mst_post_disable_dp;
        intel_encoder->update_pipe = intel_ddi_update_pipe;