AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Melissa Wen <mwen@igalia.com>
To: airlied@gmail.com, alexander.deucher@amd.com,
	christian.koenig@amd.com, daniel@ffwll.ch,
	harry.wentland@amd.com, Rodrigo.Siqueira@amd.com,
	sunpeng.li@amd.com, Xinhui.Pan@amd.com
Cc: Alex Hung <alex.hung@amd.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	kernel-dev@igalia.com, Melissa Wen <mwen@igalia.com>,
	amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: [PATCH v5 0/9] drm/amd/display: switch amdgpu_dm_connector to use struct drm_edid
Date: Wed,  7 Aug 2024 19:25:02 -0100	[thread overview]
Message-ID: <20240807203207.2830-1-mwen@igalia.com> (raw)

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


             reply	other threads:[~2024-08-07 20:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-07 20:25 Melissa Wen [this message]
2024-08-07 20:25 ` [PATCH v5 1/9] drm/amd/display: switch amdgpu_dm_connector to use struct drm_edid Melissa Wen
2024-08-07 20:25 ` [PATCH v5 2/9] drm/amd/display: switch to setting physical address directly Melissa Wen
2024-08-07 20:25 ` [PATCH v5 3/9] drm/amd/display: always call connector_update when parsing freesync_caps Melissa Wen
2024-08-07 20:25 ` [PATCH v5 4/9] drm/amd/display: remove redundant freesync parser for DP Melissa Wen
2024-08-07 20:25 ` [PATCH v5 5/9] drm/amd/display: use drm_edid_product_id for parsing EDID product info Melissa Wen
2024-08-07 20:25 ` [PATCH v5 6/9] drm/amd/display: parse display name from drm_eld Melissa Wen
2024-08-07 20:25 ` [PATCH v5 7/9] drm/amd/display: get SAD from drm_eld when parsing EDID caps Melissa Wen
2024-08-07 20:25 ` [PATCH v5 8/9] drm/amd/display: get SADB " Melissa Wen
2024-08-07 20:25 ` [PATCH v5 9/9] drm/amd/display: remove dc_edid handler from dm_helpers_parse_edid_caps Melissa Wen
2024-08-08  9:01 ` [PATCH v5 0/9] drm/amd/display: switch amdgpu_dm_connector to use struct drm_edid Jani Nikula

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240807203207.2830-1-mwen@igalia.com \
    --to=mwen@igalia.com \
    --cc=Rodrigo.Siqueira@amd.com \
    --cc=Xinhui.Pan@amd.com \
    --cc=airlied@gmail.com \
    --cc=alex.hung@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=christian.koenig@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=jani.nikula@linux.intel.com \
    --cc=kernel-dev@igalia.com \
    --cc=mario.limonciello@amd.com \
    --cc=sunpeng.li@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox