[PATCH v7 0/3] Add HDMI audio on the rk3588 SoC
Detlev Casanova
detlev.casanova at collabora.com
Mon Feb 17 13:47:39 PST 2025
To support HDMI audio on the rk3588 based devices, the generic HDMI
Codec framework is used in the dw-hdmi-qp DRM bridge driver.
The implementation is mainly based on the downstream driver, ported to the
generic HDMI Codec framework [1] recently merged in the master branch.
The parameters computation has been kept as is and the data stored in the
dw_hdmi_qp struct as been cleaned up.
The table for the N values has been edited to reflect N recommended values
as well as CTS recommended values.
The downstream kernel also implements a machine driver for HDMI audio but
it is doing exactly what the simple-audio-card driver does, so use that
instead in the RK3588 SoC device tree.
This adds HDMI audio support for both HDMI TX ports.
*** Dependencies ***
Based on Linus' master branch, but also needs Cristian's dts patches for HDMI1
support [2], which depends on Heiko's patchset for
phy-rockchip-samsung-hdptx [3]. Patches will apply without [3], but HDMI will
not work (at all).
[1]: https://lore.kernel.org/all/20241224-drm-bridge-hdmi-connector-v10-0-dc89577cd438@linaro.org
[2]: https://lore.kernel.org/linux-rockchip/20241211-rk3588-hdmi1-v2-0-02cdca22ff68@collabora.com
[3]: https://lore.kernel.org/lkml/20241206103401.1780416-3-heiko@sntech.de/
Changes since v6:
- Fix arguments alignement (checkpatch --strict warnings)
- Add hdmi1 audio support too
- Move hdmi0_sound node under hdmi0_out_con
Changes since v5:
- Simplify audio math computation for N
- Move hdmi0-sound node up with other address-less nodes
Changes since v4:
- Moved hdmi0_audio node the rk3588-base.dtsi
- Enable hdmi0_audio in rk3588-rock-5b.dts
Changes since v3:
- Renamed function to start with dw_hdmi_qp
Changes since v2:
- Also clear the audio infoframe
- Write AUDI_CONTENTS0 to its default value in case it gets overwritten.
- Store tmds_char_rate in the dw_hdmi_qp struct in atomic_enable
- Clear tmds_char_rate in atomic_disable and only write registers when
tmds_char_rate is not 0.
- Do not use connector_state duplicates
Changes since v1:
- Remove useless audio_mutex (was used downstream for multiple drivers access
to audio functions)
- Let hdmi_codec build and setup audio infoframes
- Only access audio registers when connector is connected
- Rebased on master branch
Detlev Casanova (2):
arm64: dts: rockchip: Add HDMI audio outputs for rk3588 SoC
arm64: dts: rockchip: Enable HDMI audio outputs for Rock 5B
Sugar Zhang (1):
drm/bridge: synopsys: Add audio support for dw-hdmi-qp
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 17 +
.../arm64/boot/dts/rockchip/rk3588-extra.dtsi | 17 +
.../boot/dts/rockchip/rk3588-rock-5b.dts | 16 +
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 489 ++++++++++++++++++
4 files changed, 539 insertions(+)
--
2.48.1
More information about the Linux-rockchip
mailing list