V4 - Link pcm control, defined in dai, to PCM device: Discard solution based on "pcm_new" ops for DAI initialisations replace it by an helper function that registers pcm control and links it to pcm device. - Define helpers function to handle 'IEC958 Playback Default' control . add snd_pcm_iec958_ctl_new helper for compatibility with snd_soc_add_dai_pcm_controls implementation . add substream parameter for snd_pcm_create_iec958_ctl function . fixes based on Takashi remarks.
V3: - Define helpers function to handle 'IEC958 Playback Default' control - add "pcm_new" ops for DAI initialisations that need pcm runtime context. This patchset is needed to be able to associate control to the PCM device. The iec control is linked to the DAI but also to the PCM device. Furthermore, some platforms like sti support both HDMI and SPDIF outputs in parallel. Logical way to differentiate them is to link them to pcm device index.
This patchset is extracted from following RFC http://permalink.gmane.org/gmane.linux.alsa.devel/149876 (sti: add audio interface to the hdmi driver)
Notice that "ASoC: hdmi-codec: add IEC control" patch depends on integration of the hdmi-codec driver
Patches update: - ALSA: pcm: add IEC958 channel status control helper - make mutex usage mandatory. - Set control index to pcm device id ( needed to be supported by iecset) - ASoC: core: add code to complete dai init after pcm creation - fix dai param of pcm_new ops for cpu dai. - ASoC: sti: use iec channel status control helper new patch: implementation of the helper for sti cpu-dai
V2: - patch: ALSA: pcm: add IEC958 channel status control helper - Return 1 instead of 0 in snd_pcm_iec958_put - Add .access field in control structure - I have kept condition on mutex for flexibility (but could be cleaned to force user to use a mutex)
V1: This RFC is the implementation of audio HDMI on sti platform based on generic hdmi-codec driver: https://patchwork.kernel.org/patch/7215271/ ("ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders")
Arnaud Pouliquen (5): ASoC: core: add snd_soc_add_dai_pcm_controls helper ASoC: sti: use snd_soc_add_dai_pcm_controls helper ALSA: pcm: add IEC958 channel status control helper ASoC: core: allow private data for snd_soc_add_dai_pcm_controls ASoC: sti: use iec channel status control helper
include/sound/hdmi-codec.h | 1 + include/sound/pcm_iec958.h | 21 +++++ include/sound/soc-dai.h | 1 + include/sound/soc.h | 3 + sound/core/pcm_iec958.c | 125 ++++++++++++++++++++++++++++++ sound/soc/codecs/hdmi-codec.c | 54 ++++++++++++++++++++++++++++++++----------- sound/soc/soc-core.c | 168 +++++++++++++++++++++++++++++++++++----- sound/soc/sti/Kconfig | 1 + sound/soc/sti/sti_uniperif.c | 57 +++++++------- sound/soc/sti/uniperif.h | 1 + sound/soc/sti/uniperif_player.c | 80 +++++-------------- 11 files changed, 386 insertions(+), 126 deletions(-)