drm/edid: use struct drm_edid for override/firmware EDID
authorJani Nikula <jani.nikula@intel.com>
Mon, 24 Oct 2022 12:33:40 +0000 (15:33 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 26 Oct 2022 06:53:51 +0000 (09:53 +0300)
commit794aca0ec214bb23ff4fcb28c053ac6fdfa3ce07
tree16512b42faf3bc1b055ceb9a7ab1ab72a52f955e
parenta05992d5ea779da174246186d88bfeaf2d2754f2
drm/edid: use struct drm_edid for override/firmware EDID

There's a lot going on here, but the main thing is switching the
firmware EDID loader to use struct drm_edid. Unfortunately, it's
difficult to reasonably split to smaller pieces.

Convert the EDID loader to struct drm_edid. There's a functional change
in validation; it no longer tries to fix errors or filter invalid
blocks. It's stricter in this sense. Hopefully this will not be an
issue.

As a by-product, this change also allows HF-EEODB extended EDIDs to be
passed via override/firmware EDID.

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