On Fri, 2025-10-17 at 19:14 +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <[email protected]>
> 
> 4:2:0 output effectively involves an extra downscale factor of
> 2x2 due to the chroma downsampling. Adjust the stored scaler
> scale factors accodingly.
> 
> Signed-off-by: Ville Syrjälä <[email protected]>
> ---

Reviewed-by: Luca Coelho <[email protected]>

--
Cheers,
Luca.


>  drivers/gpu/drm/i915/display/skl_scaler.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c 
> b/drivers/gpu/drm/i915/display/skl_scaler.c
> index 640c65818f8a..e8a8facdc300 100644
> --- a/drivers/gpu/drm/i915/display/skl_scaler.c
> +++ b/drivers/gpu/drm/i915/display/skl_scaler.c
> @@ -499,6 +499,15 @@ static int intel_atomic_setup_scaler(struct 
> intel_crtc_state *crtc_state,
>  
>                       return -EINVAL;
>               }
> +
> +             /*
> +              * For the purposes of prefill 4:2:0 chroma
> +              * subsampling is considered a 2x2 downscale.
> +              */
> +             if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) {
> +                     hscale <<= 1;
> +                     vscale <<= 1;
> +             }
>       }
>  
>       scaler_state->scalers[*scaler_id].hscale = hscale;

Reply via email to