[PATCH 0/3] drm/amd/display: Fix HDMI RGB quantization updates
From: Satyajit Roy
Date: Sat Aug 29 2026 - 23:52:20 EST
From: Satyajit Roy <sroy14@xxxxxxxxxxxx>
The Broadcast RGB implementation currently has three gaps in the AMD
Display path:
1. DM does not propagate the sink's RGB quantization-range
selectability into DC, so the HDMI AVI InfoFrame Q field remains at
its default value.
2. BT.2020 RGB output is always selected as full range, so an explicit
Limited setting has no effect in HDR modes using BT.2020 RGB.
3. A property-only range transition updates the output CSC but does not
rebuild and program the InfoFrame, leaving the sink with stale range
signaling.
Together these can make the transmitted pixel range and the range inferred
by a television's automatic black-level setting disagree.
Patch 1 propagates the EDID QS capability. Patch 2 honors Limited for
BT.2020 RGB and adds KUnit coverage for both BT.2020 connector colorspace
values. Patch 3 rebuilds InfoFrames whenever output_color_space changes.
Validation performed on amd-staging-drm-next at the base commit below:
- scripts/checkpatch.pl --strict: no errors, warnings, or checks
- x86_64 AMD Display KUnit configuration built with CONFIG_WERROR=y
- new EDID-capability and BT.2020 quantization KUnit cases compiled
Equivalent changes were also tested on an HDMI 2.1 television with a
Valve Linux 7.2 kernel. The television's automatic black-level selection
followed Full-to-Limited and Limited-to-Full transitions in SDR, HDR, and
HDR with VRR active. No modeset or visible link blank was observed.
Satyajit Roy (3):
drm/amd/display: Propagate HDMI RGB quantization selectability
drm/amd/display: Honor Broadcast RGB for BT.2020 RGB output
drm/amd/display: Rebuild InfoFrames on output color space changes
.../display/amdgpu_dm/amdgpu_dm_connector.c | 10 +++--
.../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 1 +
.../tests/amdgpu_dm_connector_test.c | 37 +++++++++++++++++++
.../amdgpu_dm/tests/amdgpu_dm_helpers_test.c | 2 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 ++
5 files changed, 50 insertions(+), 3 deletions(-)
base-commit: 75a5e1b6b3661c3f946885d01eebeb6b031035ef
--
2.51.1