On Thu, May 16, 2024 at 08:33:24PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> Make life easier for drivers by filtering out unwanted YCbCr 4:2:0
> only modes prior to calling the connector->mode_valid() hook.
> Currently drivers will still see YCbCr 4:2:0 only modes in said
> hook, which will likely come as a suprise when the driver has
> declared no support for such modes (via setting
> connector->ycbcr_420_allowed to false).
> 
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10992
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>

Sounds reasonable.

Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>

> ---
>  drivers/gpu/drm/drm_probe_helper.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_probe_helper.c 
> b/drivers/gpu/drm/drm_probe_helper.c
> index 4f75a1cfd820..249c8c2cb319 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -474,6 +474,10 @@ static int __drm_helper_update_and_validate(struct 
> drm_connector *connector,
>               if (mode->status != MODE_OK)
>                       continue;
>  
> +             mode->status = drm_mode_validate_ycbcr420(mode, connector);
> +             if (mode->status != MODE_OK)
> +                     continue;
> +
>               ret = drm_mode_validate_pipeline(mode, connector, ctx,
>                                                &mode->status);
>               if (ret) {
> @@ -486,10 +490,6 @@ static int __drm_helper_update_and_validate(struct 
> drm_connector *connector,
>                       else
>                               return -EDEADLK;
>               }
> -
> -             if (mode->status != MODE_OK)
> -                     continue;
> -             mode->status = drm_mode_validate_ycbcr420(mode, connector);
>       }
>  
>       return 0;
> -- 
> 2.44.1
> 

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

Reply via email to