• Ville Syrjälä's avatar
    drm/edid: Parse topology block for all DispID structure v1.x · e0a200ab
    Ville Syrjälä authored
    DisplayID spec v1.3 revision history notes do claim that
    the toplogy block was added in v1.3 so requiring structure
    v1.2 would seem correct, but there is at least one EDID in
    edid.tv with a topology block and structure v1.0. And
    there are also EDIDs with DisplayID structure v1.3 which
    seems to be totally incorrect as DisplayID spec v1.3 lists
    structure v1.2 as the only legal value.
    
    Unfortunately I couldn't find copies of DisplayID spec
    v1.0-v1.2 anywhere (even on vesa.org), so I'll have to
    go on empirical evidence alone.
    
    We used to parse the topology block on all v1.x
    structures until the check for structure v2.0 was added.
    Let's go back to doing that as the evidence does suggest
    that there are DisplayIDs in the wild that would miss
    out on the topology stuff otherwise.
    
    Also toss out DISPLAY_ID_STRUCTURE_VER_12 entirely as
    it doesn't appear we can really use it for anything.
    
    I *think* we could technically skip all the structure
    version checks as the block tags shouldn't conflict
    between v2.0 and v1.x. But no harm in having a bit of
    extra sanity checks I guess.
    
    So far I'm not aware of any user reported regressions
    from overly strict check, but I do know that it broke
    igt/kms_tiled_display's fake DisplayID as that one
    gets generated with structure v1.0.
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
    Fixes: c5a486af ("drm/edid: parse Tiled Display Topology Data Block for DisplayID 2.0")
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240410180139.21352-1-ville.syrjala@linux.intel.comAcked-by: default avatarJani Nikula <jani.nikula@intel.com>
    e0a200ab
drm_edid.c 228 KB