drm/edid: Unconfuse preferred timing stuff a bit
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 27 Sep 2022 17:00:04 +0000 (20:00 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 4 Oct 2022 22:18:11 +0000 (01:18 +0300)
For EDID 1.4 the first detailed timing is always preferred,
for older EDIDs there was a feature flag to indicate the same.
While correct, the code setting that up is rather confusing.
Restate it in a slightly more straightforward manner.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220927170006.27855-8-ville.syrjala@linux.intel.com
drivers/gpu/drm/drm_edid.c

index fdf23dc..075ed4e 100644 (file)
@@ -3952,13 +3952,14 @@ static int add_detailed_modes(struct drm_connector *connector,
        struct detailed_mode_closure closure = {
                .connector = connector,
                .drm_edid = drm_edid,
-               .preferred = true,
                .quirks = quirks,
        };
 
-       if (closure.preferred && !version_greater(drm_edid, 1, 3))
+       if (version_greater(drm_edid, 1, 3))
+               closure.preferred = true; /* first detailed timing is always preferred */
+       else
                closure.preferred =
-                   (drm_edid->edid->features & DRM_EDID_FEATURE_PREFERRED_TIMING);
+                       drm_edid->edid->features & DRM_EDID_FEATURE_PREFERRED_TIMING;
 
        drm_for_each_detailed_block(drm_edid, do_detailed_mode, &closure);