Hi, Here AMD display driver migrates from open struct edid to opaque drm_edid. This version works on top of amd/drm-next branch since amd-staging-drm-next doesn't have the commits that support drm_edid_product_id[1]. It's mostly addressing Alex Hung's feedback from the previous version. Patches 1-4 works on amd-staging-drm-next. - First patch basically changes amd connector to store struct drm_edid instead of edid with some pending rework to get rid of raw edid. - 2-4 update the driver code to use drm common-code, removing driver-specific steps already done during drm_edid updates. Patches 5-9 depend on drm_edid_product_id, therefore, it doesn't work on current amd-staging-drm-next. They parse edid caps from drm_eld and drm_edid_product_id data, removing the need of handling raw edid in the dm_helpers_parse_edid_caps(), since all callers of this helper has updated display info from drm_edid at this point. To completely remove raw edid, I changed dc/link_detection in the last commit because all calls of dm_helpers_parse_edid_caps in link_add_remote_sink are preceded by the setup and update of drm_edid in the connector, so we can always use the connector->drm_edid. Finally, there are some pending drm_edid_raw to be addressed in next iterations. Let me know your thoughts. Melissa Change log: v1: https://lore.kernel.org/amd-gfx/20240126163429.56714-1-mwen@xxxxxxxxxx/ - use const to fix compilation warnings (Alex Hung) - remove unused variables - remove driver-specific parser for connector info in favor of drm_edid common code v2: https://lore.kernel.org/amd-gfx/20240327165828.288792-1-mwen@xxxxxxxxxx/ - fix general protection fault on mst v3: https://lore.kernel.org/amd-gfx/20240327214953.367126-1-mwen@xxxxxxxxxx/ - rename edid to drm_edid in amdgpu_connector (Jani) - call drm_edid_connector_update to clear edid in case of NULL (Jani) - keep setting NULL instead of free drm_edid (Jani) - check drm_edid not NULL, instead of valid (Jani) - use drm_edid_product_id to parse product info - use drm_eld info to parse edid caps v4: https://lore.kernel.org/amd-gfx/20240706034004.801329-1-mwen@xxxxxxxxxx/ - squash variable cleanup to related common-code cleanup (Alex H) - add more informative commit description (Alex H) - avoid unnecessary call to drm_edid_raw (Alex H) - remove unnecessary cast (Alex H.) - remove deprecated comments (Alex H.) - fix kernel-doc (kernel test bot) [1] https://lore.kernel.org/dri-devel/cover.1712655867.git.jani.nikula@xxxxxxxxx Melissa Wen (9): drm/amd/display: switch amdgpu_dm_connector to use struct drm_edid drm/amd/display: switch to setting physical address directly drm/amd/display: always call connector_update when parsing freesync_caps drm/amd/display: remove redundant freesync parser for DP drm/amd/display: use drm_edid_product_id for parsing EDID product info drm/amd/display: parse display name from drm_eld drm/amd/display: get SAD from drm_eld when parsing EDID caps drm/amd/display: get SADB from drm_eld when parsing EDID caps drm/amd/display: remove dc_edid handler from dm_helpers_parse_edid_caps .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 196 +++++------------- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 4 +- .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 113 +++++----- .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 32 +-- drivers/gpu/drm/amd/display/dc/dm_helpers.h | 1 - .../drm/amd/display/dc/link/link_detection.c | 6 +- 6 files changed, 131 insertions(+), 221 deletions(-) -- 2.43.0