intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
 
        intel_dp_configure_protocol_converter(intel_dp, crtc_state);
-       intel_dp_sink_set_decompression_state(intel_dp, crtc_state, true);
+       if (!is_mst)
+               intel_dp_sink_set_decompression_state(intel_dp, crtc_state, true);
+
        /*
         * DDI FEC: "anticipates enabling FEC encoding sets the FEC_READY bit
         * in the FEC_CONFIGURATION register to 1 before initiating link
                intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
 
        intel_dp_configure_protocol_converter(intel_dp, crtc_state);
-       intel_dp_sink_set_decompression_state(intel_dp, crtc_state, true);
+       if (!is_mst)
+               intel_dp_sink_set_decompression_state(intel_dp, crtc_state, true);
        /*
         * DDI FEC: "anticipates enabling FEC encoding sets the FEC_READY bit
         * in the FEC_CONFIGURATION register to 1 before initiating link
        if (!is_mst)
                intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
        intel_dp_configure_protocol_converter(intel_dp, crtc_state);
-       intel_dp_sink_set_decompression_state(intel_dp, crtc_state,
-                                             true);
+       if (!is_mst)
+               intel_dp_sink_set_decompression_state(intel_dp, crtc_state,
+                                                     true);
        intel_dp_sink_set_fec_ready(intel_dp, crtc_state, true);
        intel_dp_start_link_train(intel_dp, crtc_state);
        if ((port != PORT_A || DISPLAY_VER(dev_priv) >= 9) &&
 
        intel_hdcp_disable(intel_mst->connector);
 
        intel_audio_codec_disable(encoder, old_crtc_state, old_conn_state);
+
+       if (intel_dp->active_mst_links == 1) /* last stream ? */
+               /*
+                * TODO: disable decompression for all streams/in any MST ports, not
+                * only in the first downstream branch device.
+                */
+               intel_dp_sink_set_decompression_state(intel_dp, old_crtc_state, false);
 }
 
 static void intel_mst_post_disable_dp(struct intel_atomic_state *state,
 
        drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, true);
 
-       if (first_mst_stream)
+       if (first_mst_stream) {
+               /*
+                * TODO: enable decompression for all streams/in any MST ports, not
+                * only in the first downstream branch device.
+                */
+               intel_dp_sink_set_decompression_state(intel_dp, pipe_config, true);
                dig_port->base.pre_enable(state, &dig_port->base,
                                                pipe_config, NULL);
+       }
 
        intel_dp->active_mst_links++;