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 ROCK 5B device tree.
Based on Linus' master branch.
[1]: https://lore.kernel.org/all/20241224-drm-bridge-hdmi-connector-v10-0-dc89577cd438@linaro.org/
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 (1):
arm64: dts: rockchip: Add HDMI0 audio output on rock-5b
Sugar Zhang (1):
drm/bridge: synopsys: Add audio support for dw-hdmi-qp
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 1 +
.../boot/dts/rockchip/rk3588-rock-5b.dts | 19 +
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 497 ++++++++++++++++++
3 files changed, 517 insertions(+)
--
2.48.1