]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/probe-helper: Call drm_mode_validate_ycbcr420() before connector->mode_valid()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 16 May 2024 17:33:24 +0000 (20:33 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 21 May 2024 18:39:26 +0000 (21:39 +0300)
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@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240516173324.18149-1-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_probe_helper.c

index 4f75a1cfd820fbfa6912f020a57e0803a373a84e..249c8c2cb3192ef4357c1d89e7a4e66701ded4a1 100644 (file)
@@ -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;