[PATCH 00/13] drm/msm/dp: Add static HDR support for DP and eDP

From: Xilin Wu

Date: Wed Sep 30 2026 - 08:50:51 EST


This series adds standard KMS static HDR metadata and BT.2020 RGB
signalling to MSM DP and eDP, with HDR10 as the intended use case. It uses
HDR_OUTPUT_METADATA, Colorspace and max bpc. Userspace supplies the HDR
pixel content; DSC, dynamic HDR and tone mapping are outside this series.

Patch 1 allows max bpc registration before connector state allocation and
initializes the corresponding state defaults. Patch 2 prepares generic
SDP slots. Patches 3-5 establish PHY power ownership, serialize HPD state
updates and add complete stream enable rollback, including AUX recovery
for a connected external peer. New error returns are introduced together
with their cleanup paths.

Patches 6-8 add deferred link-status notification, capability cache
validity and stream reconstruction for modesets leaving eDP self refresh.
Patches 9-10 add atomic output depth selection and BT.2020 RGB signalling.
The BT.2020 patch includes its own PSR disable/restore handling.

Patch 11 independently fixes the uninitialized debugfs connector pointer.
Patch 12 serializes SDR video-test state changes with mode programming.
Patch 13 adds complete static HDR support: metadata validation and packing,
10 bpc enforcement, Generic2 programming and teardown, stream restoration,
PSR exclusion and arbitration with video-pattern tests. A test request
arriving after atomic check cannot replace the checked HDR output depth.

This series is tested on a Lenovo Yoga Slim 7x using x1e80100.

Signed-off-by: Xilin Wu <sophon@xxxxxxxxx>
---
Xilin Wu (13):
drm/atomic: Handle max bpc properties before connector state allocation
drm/msm/dp: Support multiple generic SDP slots
drm/msm/dp: Track PHY power ownership
drm/msm/dp: Serialize HPD state updates
drm/msm/dp: Unwind resources when enabling a stream fails
drm/msm/dp: Report stream enable failures through link status
drm/msm/dp: Track validity of cached sink link capabilities
drm/msm/dp: Rebuild the eDP stream on modesets leaving self refresh
drm/msm/dp: Track output bit depth in bridge atomic state
drm/msm/dp: Signal BT.2020 RGB on DP and eDP
drm/msm/dp: Initialize the debugfs connector pointer
drm/msm/dp: Serialize video test state changes
drm/msm/dp: Add static HDR metadata support for DP and eDP

drivers/gpu/drm/drm_atomic_state_helper.c | 5 +
drivers/gpu/drm/drm_connector.c | 6 +-
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/dp/dp_ctrl.c | 127 +++++++++---
drivers/gpu/drm/msm/dp/dp_ctrl.h | 4 +-
drivers/gpu/drm/msm/dp/dp_debug.c | 26 +--
drivers/gpu/drm/msm/dp/dp_debug.h | 8 +-
drivers/gpu/drm/msm/dp/dp_display.c | 319 ++++++++++++++++++++++++++----
drivers/gpu/drm/msm/dp/dp_display.h | 8 +-
drivers/gpu/drm/msm/dp/dp_drm.c | 118 ++++++++++-
drivers/gpu/drm/msm/dp/dp_drm.h | 12 ++
drivers/gpu/drm/msm/dp/dp_panel.c | 103 +++++-----
drivers/gpu/drm/msm/dp/dp_panel.h | 8 +
drivers/gpu/drm/msm/dp/dp_reg.h | 4 +
drivers/gpu/drm/msm/dp/dp_utils.c | 121 +++++++++++-
drivers/gpu/drm/msm/dp/dp_utils.h | 21 +-
16 files changed, 738 insertions(+), 153 deletions(-)
---
base-commit: 72d3fcf802c45d00b300f25b848a93c3a2bd7c7e
change-id: 20260930-msm-dp-hdr10-d84e11282319

Best regards,
--
Xilin Wu <sophon@xxxxxxxxx>