[PATCH v5 0/9] drm/amd/display: switch amdgpu_dm_connector to use struct drm_edid
Melissa Wen
mwen at igalia.com
Wed Aug 7 20:25:02 UTC 2024
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@igalia.com/
- 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@igalia.com/
- fix general protection fault on mst
v3: https://lore.kernel.org/amd-gfx/20240327214953.367126-1-mwen@igalia.com/
- 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@igalia.com/
- 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@intel.com
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
More information about the amd-gfx
mailing list