diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_display.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_display.c | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 3c29792137a5..0aae9a1eb3d5 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -1851,9 +1851,17 @@ static void hsw_crtc_disable(struct intel_atomic_state *state,  	intel_disable_shared_dpll(old_crtc_state); -	intel_encoders_post_pll_disable(state, crtc); +	if (!intel_crtc_is_bigjoiner_slave(old_crtc_state)) { +		struct intel_crtc *slave_crtc; + +		intel_encoders_post_pll_disable(state, crtc); -	intel_dmc_disable_pipe(i915, crtc->pipe); +		intel_dmc_disable_pipe(i915, crtc->pipe); + +		for_each_intel_crtc_in_pipe_mask(&i915->drm, slave_crtc, +						 intel_crtc_bigjoiner_slave_pipes(old_crtc_state)) +			intel_dmc_disable_pipe(i915, slave_crtc->pipe); +	}  }  static void i9xx_pfit_enable(const struct intel_crtc_state *crtc_state)  |