[Intel-gfx] [PATCH 14/21] drm/i915: use current scaler state during readout_hw_state.

Daniel Vetter daniel at ffwll.ch
Tue Mar 17 07:19:40 PDT 2015


On Sat, Mar 14, 2015 at 10:55:39PM -0700, Chandra Konduru wrote:
> During readout_hw_state, whole pipe_config is built reading hw.
> But rebuilding scaler state from hw requires,
>  - reading all planes and find its corresponding index in order to set
>    its bits in scaler_users
>  - reading cdclk and adjusted mode crtc clk in order to regenerate
>    min scaling ratios.
>  - some values directly from bspec
> 
> To simplify things, for now using sw scaler state as readout state.
> 
> Signed-off-by: Chandra Konduru <chandra.konduru at intel.com>

At least the crtc scaler might get used by the bios for boot-up with
non-native resolution. I do think we need to properly track those parts
(and also double-check the hw state in pipe config compare function like
we do for the old pfit state).

Maybe we need to always compute limits directly instead of storing the in
the state structures?
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_display.c |    3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 9c3c6b1..b1d7036 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14292,7 +14292,10 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)
>  	int i;
>  
>  	for_each_intel_crtc(dev, crtc) {
> +		struct intel_crtc_scaler_state scaler_state;
> +		scaler_state = crtc->config->scaler_state;
>  		memset(crtc->config, 0, sizeof(*crtc->config));
> +		crtc->config->scaler_state = scaler_state;
>  
>  		crtc->config->quirks |= PIPE_CONFIG_QUIRK_INHERITED_MODE;
>  
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list