[Intel-gfx] [PATCH 13/21] drm/i915: Preserve scaler state when clearing crtc_state

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


On Sat, Mar 14, 2015 at 10:55:38PM -0700, Chandra Konduru wrote:
> crtc_state is cleared during mode set which wipes out complete
> scaler state too. This is causing issues. To fix, ensure scaler
> state is preserved because it contains not only crtc
> scaler usage, but also planes using scalers on this crtc.
> 
> Signed-off-by: Chandra Konduru <chandra.konduru at intel.com>

I guess this is going to conflict with Ander's crtc state series. But
since you're signed up to review that I guess you will know what needs to
be changed here. Hopefully Ander's series will just take care of this.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_display.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index e07c24e..9c3c6b1 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -10617,11 +10617,14 @@ static void
>  clear_intel_crtc_state(struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_crtc_state tmp_state;
> +	struct intel_crtc_scaler_state scaler_state;
>  
> -	/* Clear only the intel specific part of the crtc state */
> +	/* Clear only the intel specific part of the crtc state excluding scalers */
>  	tmp_state = crtc_state->base;
> +	scaler_state = crtc_state->scaler_state;
>  	memset(crtc_state, 0, sizeof *crtc_state);
>  	crtc_state->base = tmp_state;
> +	crtc_state->scaler_state = scaler_state;
>  }
>  
>  static int
> -- 
> 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