Re: [PATCH] drm/probe-helper: Call drm_mode_validate_ycbcr420() before connector->mode_valid()

2024-05-21 Thread Ville Syrjälä
On Tue, May 21, 2024 at 02:09:19PM +0200, Daniel Vetter wrote:
> On Thu, May 16, 2024 at 08:33:24PM +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä 
> > 
> > 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ä 
> 
> Sounds reasonable.
> 
> Reviewed-by: Daniel Vetter 

Thanks. Pushed to drm-misc-next.

> 
> > ---
> >  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,
> >  >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

-- 
Ville Syrjälä
Intel


Re: [PATCH] drm/probe-helper: Call drm_mode_validate_ycbcr420() before connector->mode_valid()

2024-05-21 Thread Daniel Vetter
On Thu, May 16, 2024 at 08:33:24PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> 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ä 

Sounds reasonable.

Reviewed-by: Daniel Vetter 

> ---
>  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,
>>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


[PATCH] drm/probe-helper: Call drm_mode_validate_ycbcr420() before connector->mode_valid()

2024-05-16 Thread Ville Syrjala
From: Ville Syrjälä 

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ä 
---
 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,
 >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