[PATCH v3 0/9] drm/vc4: hdmi: Convert to common HDMI 2.0 scrambling infrastructure

From: Cristian Ciocaltea

Date: Tue Oct 13 2026 - 21:03:38 EST


This series includes patches 42-48 from "[PATCH v11 00/74] Add HDMI 2.0
support to DW HDMI QP TX" [1], which convert the VC4 HDMI driver to the
common HDMI 2.0 scrambling infrastructure as a proof of concept for
reusing the shared code. It adopts the shared TMDS character rate
constants, switches to drm_hdmi_mode_needs_scrambling() and force_ctx(),
fixes -EDEADLK handling, and replaces the driver-local scrambling
implementation with the common SCDC scrambling helpers.

The infrastructure patches have been merged and there are no remaining
dependencies, so the vc4 patches are now sent as a separate series,
rebased on top of the latest drm-misc-next.

Tested on a Raspberry Pi 5 Model B Rev 1.1 (BCM2712 D0).

[1] https://lore.kernel.org/all/20260901-dw-hdmi-qp-scramb-v11-0-bc12954a0688@xxxxxxxxxxxxx/

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx>
---
Changes in v3:
- Added new patch "Clamp CEC clock divider to its register field width"
to prevent CEC register corruption after raising the BCM2835 max
pixel clock to 165 MHz (Sashiko)
- Moved these new patches towards the end of the series to make them
easier to revert if necessary
- Link to v2: https://patch.msgid.link/20261013-vc4-common-scramb-v2-0-a41d15e131ad@xxxxxxxxxxxxx

Changes in v2:
- Added new patch "Bump BCM2835 max pixel clock to 165 MHz" (Dave)
- Simplified the last patch "Defer pixel clock validation to HDMI
helpers" by dropping the now unneeded adjustment of
supported_tmds_char_rate in vc4_hdmi_connector_funcs_hdmi12
- Rebased series onto latest drm-misc-next
- Link to v1: https://patch.msgid.link/20261001-vc4-common-scramb-v1-0-51280460194b@xxxxxxxxxxxxx

---
Cristian Ciocaltea (9):
drm/vc4: hdmi: Use common TMDS char rate constants
drm/vc4: hdmi: Switch to drm_hdmi_mode_needs_scrambling()
drm/vc4: hdmi: Switch to .force_ctx() connector helper
drm/vc4: hdmi: Propagate -EDEADLK to the top level
drm/vc4: hdmi: Convert to drmm_connector_hdmi_init()
drm/vc4: hdmi: Convert to common HDMI 2.0 scrambling infrastructure
drm/vc4: hdmi: Clamp CEC clock divider to its register field width
drm/vc4: hdmi: Bump BCM2835 max pixel clock to 165 MHz
drm/vc4: hdmi: Defer pixel clock validation to HDMI helpers

drivers/gpu/drm/vc4/vc4_hdmi.c | 369 +++++++++++------------------------------
drivers/gpu/drm/vc4/vc4_hdmi.h | 30 +---
2 files changed, 96 insertions(+), 303 deletions(-)
---
base-commit: 3e32932d3626d0279f9b3531bd648f8c0a16cb08
change-id: 20261001-vc4-common-scramb-798b2580fa81