mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RESEND PATCH v2 0/2] drm/amd: fix HDMI output with non-HDMI EDID overrides
@ 2026-10-03 16:15 Johannes Wüller
  2026-10-03 16:15 ` [RESEND PATCH v2 1/2] drm: add edid_overridden flag to drm_connector Johannes Wüller
  2026-10-03 16:15 ` [RESEND PATCH v2 2/2] drm/amd: fix HDMI signal type for EDID overrides Johannes Wüller
  0 siblings, 2 replies; 3+ messages in thread
From: Johannes Wüller @ 2026-10-03 16:15 UTC (permalink / raw)
  To: Harry Wentland, Leo Li, Alex Deucher, Christian König,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: Johannes Wüller, Rodrigo Siqueira, David Airlie,
	Simona Vetter, Jani Nikula, amd-gfx, dri-devel, linux-kernel

Resend: my first attempt at sending v2 went out without any of the Cc
recipients, including the mailing lists. This is the same series,
unchanged. Sorry for the noise! I'm doing these for the first time.

This series lets amdgpu drive an HDMI display at its native resolution
when a non-HDMI EDID is injected via drm.edid_firmware or debugfs
edid_override.

The motivating case is a Dell U3011 (2560x1600) connected via HDMI,
whose native HDMI EDID only advertises CEA modes up to 1920x1080. By
injecting the monitor's DisplayPort EDID (which contains the native
2560x1600 mode), the correct resolution becomes available. However,
the injected EDID lacks an HDMI VSDB, so amdgpu treats the physical
HDMI connector as a passive HDMI-DVI dongle and rejects the required
pixel clock.

Patch 1 adds an edid_overridden flag to drm_connector, set by the
existing EDID override mechanisms in _drm_do_get_edid(), so that
drivers can detect when an override is in effect and adjust their
behavior accordingly, without duplicating the override mechanism.

Patch 2 uses that flag in amdgpu to trust the physical connector type
over the EDID when selecting the signal type.

Tested on AMD Ryzen 9 7950X (Raphael iGPU, DCN 3.1.5) with a Dell U3011
connected via HDMI and drm.edid_firmware=HDMI-A-1:<DisplayPort EDID>:
- amd-staging-drm-next at 53750a937420: the override EDID is loaded,
  but 2560x1600 is pruned from the connector's mode list.
- with this series applied: 2560x1600@60Hz RGB 8bpc works, alongside
  another Dell U3011 connected via DisplayPort in the same mode.

Changes in v2:
- Rebased onto current amd-staging-drm-next.
- Patch 2: follow the move of create_eml_sink() to
  amdgpu_dm_connector.c.
- Dropped "drm/amd: treat max_tmds_clock==0 as unconstrained": The
  return value of adjust_colour_depth_from_display_info() is no longer
  used to reject the stream, so the patch has no effect anymore.
- Dropped "drm/amd: fix force_yuv420/422_output being ignored": The
  flags were replaced by force_yuv_pixel_format.
- I am (hopefully) sending this version to the right people, since v1's
  cover letter only went to the lists. Please let me know otherwise!

v1: https://lore.kernel.org/amd-gfx/20260315223307.45807-1-johanneswueller@gmail.com/

Johannes Wüller (2):
  drm: add edid_overridden flag to drm_connector
  drm/amd: fix HDMI signal type for EDID overrides

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c  | 9 ++++++++-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c    | 9 ++++++++-
 drivers/gpu/drm/drm_edid.c                               | 2 ++
 include/drm/drm_connector.h                              | 8 ++++++++
 4 files changed, 26 insertions(+), 2 deletions(-)


base-commit: 53750a937420a01acf41bf74010557666f679aab
-- 
2.56.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-10-03 16:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-03 16:15 [RESEND PATCH v2 0/2] drm/amd: fix HDMI output with non-HDMI EDID overrides Johannes Wüller
2026-10-03 16:15 ` [RESEND PATCH v2 1/2] drm: add edid_overridden flag to drm_connector Johannes Wüller
2026-10-03 16:15 ` [RESEND PATCH v2 2/2] drm/amd: fix HDMI signal type for EDID overrides Johannes Wüller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®