Version 2: This version integrates missing features upgraded to be aligned when possible with patch set: [PATCH RFC v4 0/8] Implement generic ASoC HDMI codec and use it in tda998x
It does not support the abort callback, the mute and syclk ops. This could be added in V3 or separate patch if justified.
[RFC 1/5]video: hdmi: add help function for N and CTS - Replace real frequency value by enum in switch case Notice that this patch is independant from the rest of the implentation [RFC 2/5]drm: add helper functions to add audio capabilities for bridge - extend audio bridge ops [RFC 3/5]ASoC: codec: hdmi drm codec driver aligned when possible with hdmi-codec.c implementation . ELD management for alsa contraints . Support of SPDIF and I2S mode . hwparam ond set_fmt functions implemented [RFC 4/5]drm: sti: connect audio driver => Implementation for STI platform [RFC 5/5]DT: sti: add audio HDMI dai link in audio card => Devicetree example
Version 1:
This patch set is a tentative to implement a generic code for the HDMI audio. Main concept are aligned with solution proposeded for TI platform. - ASoC codec driver registered by DRM driver - ASOC driver is a generic driver. - compatible with simple card
Difference is that i propose a DRM generic interface based on bridge structure. Advantage is that all data exchanges are done through the DRM API.
I think also that some helper functions could been used for N and CTS parameters calculation, as suggested by Russell King in a previous mail.
I full aware that some features (like ELD and info frame) are partially or not implemented in my patches. This patch set is more a skeleton than a full implementation... I just post it to suggest a possible DRM API.
Arnaud Pouliquen (5): video: hdmi: add helper function for N and CTS drm: add helper function to add audio capabilities for bridge ASoC: codec: hdmi drm codec driver drm: sti: connect audio driver DT: sti: add audio HDMI dai link in audio card
arch/arm/boot/dts/stih410.dtsi | 6 +- arch/arm/boot/dts/stihxxx-b2120.dtsi | 21 ++ drivers/gpu/drm/drm_bridge.c | 137 +++++++++++++- drivers/gpu/drm/sti/sti_hdmi.c | 184 ++++++++++++++++-- drivers/gpu/drm/sti/sti_hdmi.h | 3 + drivers/video/hdmi.c | 147 ++++++++++++++ include/drm/drm_crtc.h | 62 ++++++ include/drm/drm_modes.h | 12 ++ include/linux/hdmi.h | 12 ++ include/sound/hdmi_drm.h | 15 ++ sound/soc/codecs/Kconfig | 8 +- sound/soc/codecs/Makefile | 2 + sound/soc/codecs/hdmi_drm.c | 358 +++++++++++++++++++++++++++++++++++ 13 files changed, 951 insertions(+), 16 deletions(-) create mode 100644 include/sound/hdmi_drm.h create mode 100644 sound/soc/codecs/hdmi_drm.c