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/[email protected]/ 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)
