diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 32 | 
1 files changed, 16 insertions, 16 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 6daad8613760..3dc8724df400 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -16791,7 +16791,6 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)  	for_each_intel_crtc(dev, crtc) {  		struct intel_crtc_state *crtc_state = crtc->config; -		int pixclk = 0;  		__drm_atomic_helper_crtc_destroy_state(&crtc_state->base);  		memset(crtc_state, 0, sizeof(*crtc_state)); @@ -16803,23 +16802,9 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)  		crtc->base.enabled = crtc_state->base.enable;  		crtc->active = crtc_state->base.active; -		if (crtc_state->base.active) { +		if (crtc_state->base.active)  			dev_priv->active_crtcs |= 1 << crtc->pipe; -			if (INTEL_GEN(dev_priv) >= 9 || IS_BROADWELL(dev_priv)) -				pixclk = ilk_pipe_pixel_rate(crtc_state); -			else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) -				pixclk = crtc_state->base.adjusted_mode.crtc_clock; -			else -				WARN_ON(dev_priv->display.modeset_calc_cdclk); - -			/* pixel rate mustn't exceed 95% of cdclk with IPS on BDW */ -			if (IS_BROADWELL(dev_priv) && crtc_state->ips_enabled) -				pixclk = DIV_ROUND_UP(pixclk * 100, 95); -		} - -		dev_priv->min_pixclk[crtc->pipe] = pixclk; -  		readout_plane_state(crtc);  		DRM_DEBUG_KMS("[CRTC:%d:%s] hw state readout: %s\n", @@ -16892,6 +16877,8 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)  	}  	for_each_intel_crtc(dev, crtc) { +		int pixclk = 0; +  		crtc->base.hwmode = crtc->config->base.adjusted_mode;  		memset(&crtc->base.mode, 0, sizeof(crtc->base.mode)); @@ -16919,10 +16906,23 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)  			 */  			crtc->base.state->mode.private_flags = I915_MODE_FLAG_INHERITED; +			if (INTEL_GEN(dev_priv) >= 9 || IS_BROADWELL(dev_priv)) +				pixclk = ilk_pipe_pixel_rate(crtc->config); +			else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) +				pixclk = crtc->config->base.adjusted_mode.crtc_clock; +			else +				WARN_ON(dev_priv->display.modeset_calc_cdclk); + +			/* pixel rate mustn't exceed 95% of cdclk with IPS on BDW */ +			if (IS_BROADWELL(dev_priv) && crtc->config->ips_enabled) +				pixclk = DIV_ROUND_UP(pixclk * 100, 95); +  			drm_calc_timestamping_constants(&crtc->base, &crtc->base.hwmode);  			update_scanline_offset(crtc);  		} +		dev_priv->min_pixclk[crtc->pipe] = pixclk; +  		intel_pipe_config_sanity_check(dev_priv, crtc->config);  	}  }  | 
