[PATCH] drm/probe-helper: Call drm_mode_validate_ycbcr420() before connector->mode_valid()
Daniel Vetter
daniel at ffwll.ch
Tue May 21 12:09:19 UTC 2024
On Thu, May 16, 2024 at 08:33:24PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at 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.syrjala at linux.intel.com>
Sounds reasonable.
Reviewed-by: Daniel Vetter <daniel.vetter at 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
More information about the dri-devel
mailing list