[PATCH v2 0/5] drm/dp: Always use enhanced framing for DPCD r1.2+
From: Dmytro Malovanyi
Date: Thu Oct 29 2026 - 06:22:15 EST
The Xiaomi Monitor A24i clears DP_ENHANCED_FRAME_CAP in its extended
receiver caps, and through a USB4 dock it does not sync without
enhanced framing. v1 kept the bit from the base caps. As Jani pointed
out, the spec says to enable enhanced framing for DPCD r1.2+ without
looking at the bit, so v2 does that in drm_dp_enhanced_frame_cap() and
converts the remaining direct users of DP_ENHANCED_FRAME_CAP.
amdgpu DC, mediatek and hibmc already enable enhanced framing always,
without checking the bit.
drm_dp_get_phy_test_pattern() still uses DP_ENHANCED_FRAME_CAP, but
there it is a bit in DP_TEST_LANE_COUNT, so it is left alone.
analogix_dp has its own copy of the check (DPCD_ENHANCED_FRAME_CAP()),
I left it out, can do it as a follow up.
Patch 1 is tested on i915 with the affected monitor, the rest is
compile tested only.
For nouveau I converted both dispnv50 and nvkm in one patch, so the
watermark calculation and the enable stay in sync. Happy to change it
if you prefer another way.
v2:
- Do it in drm_dp_enhanced_frame_cap() instead of patching the
extended caps (Jani)
- Convert cdns-mhdp8546, it6505, gma500 and nouveau
- Commit message: the sink only fails through the dock, directly
connected it works without enhanced framing
v1: https://lore.kernel.org/all/20261028162941.62762-1-dmitrymalovanyy@xxxxxxxxx/
Dmytro Malovanyi (5):
drm/dp: Always use enhanced framing for DPCD r1.2+
drm/bridge: cdns-mhdp8546: Use drm_dp_enhanced_frame_cap()
drm/bridge: it6505: Use drm_dp_enhanced_frame_cap()
drm/gma500: Use drm_dp_enhanced_frame_cap()
drm/nouveau: Use enhanced framing for DPCD r1.2+
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 2 +-
drivers/gpu/drm/bridge/ite-it6505.c | 2 +-
drivers/gpu/drm/gma500/cdv_intel_dp.c | 8 ++------
drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h | 11 +++++++++++
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c | 2 +-
include/drm/display/drm_dp_helper.h | 4 ++++
9 files changed, 23 insertions(+), 12 deletions(-)
base-commit: feaa32dc98090b2f45f7b6f179711a6640169c1a
--
2.50.1 (Apple Git-155)