const struct drm_connector_state *old_conn_state)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-       struct intel_crtc *slave_crtc;
+       struct intel_crtc *pipe_crtc;
+
+       for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, pipe_crtc,
+                                        intel_crtc_joined_pipe_mask(old_crtc_state)) {
+               const struct intel_crtc_state *old_pipe_crtc_state =
+                       intel_atomic_get_old_crtc_state(state, pipe_crtc);
 
-       intel_crtc_vblank_off(old_crtc_state);
+               intel_crtc_vblank_off(old_pipe_crtc_state);
+       }
 
        intel_disable_transcoder(old_crtc_state);
 
        intel_ddi_disable_transcoder_func(old_crtc_state);
 
-       intel_dsc_disable(old_crtc_state);
+       for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, pipe_crtc,
+                                        intel_crtc_joined_pipe_mask(old_crtc_state)) {
+               const struct intel_crtc_state *old_pipe_crtc_state =
+                       intel_atomic_get_old_crtc_state(state, pipe_crtc);
 
-       if (DISPLAY_VER(dev_priv) >= 9)
-               skl_scaler_disable(old_crtc_state);
-       else
-               ilk_pfit_disable(old_crtc_state);
+               intel_dsc_disable(old_pipe_crtc_state);
 
-       for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, slave_crtc,
-                                        intel_crtc_bigjoiner_slave_pipes(old_crtc_state)) {
-               const struct intel_crtc_state *old_slave_crtc_state =
-                       intel_atomic_get_old_crtc_state(state, slave_crtc);
-
-               intel_crtc_vblank_off(old_slave_crtc_state);
-
-               intel_dsc_disable(old_slave_crtc_state);
-               skl_scaler_disable(old_slave_crtc_state);
+               if (DISPLAY_VER(dev_priv) >= 9)
+                       skl_scaler_disable(old_pipe_crtc_state);
+               else
+                       ilk_pfit_disable(old_pipe_crtc_state);
        }
 }