linux/sound
Bard Liao ac950278b0
ASoC: add N cpus to M codecs dai link support
Currently, ASoC supports dailinks with the following mappings:
1 cpu DAI to N codec DAIs
N cpu DAIs to N codec DAIs
But the mapping between N cpu DAIs and M codec DAIs is not supported.
The reason is that we didn't have a mechanism to map cpu and codec DAIs

This patch suggests a new snd_soc_dai_link_codec_ch_map struct in
struct snd_soc_dai_link{} which provides codec DAI to cpu DAI mapping
information used to implement N cpu DAIs to M codec DAIs
support.

When a dailink contains two or more cpu DAIs, we should set channel
number of cpus based on its channel mask. The new struct also provides
channel mask information for each codec and we can construct the cpu
channel mask by combining all codec channel masks which map to the cpu.

The N:M mapping is however restricted to the N <= M case due to physical
restrictions on a time-multiplexed bus such as I2S/TDM, AC97, SoundWire
and HDaudio.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20230607031242.1032060-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-13 12:11:15 +01:00
..
ac97
aoa Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
arm ALSA: pxa2xx: Convert to platform remove callback returning void 2023-03-20 13:07:00 +00:00
atmel ALSA: atmel: ac97: Convert to platform remove callback returning void 2023-03-20 13:07:01 +00:00
core ALSA: oss: avoid missing-prototype warnings 2023-05-17 16:56:09 +02:00
drivers ASoC: Updates for v6.4 2023-04-24 15:15:31 +02:00
firewire ALSA: firewire-digi00x: prevent potential use after free 2023-05-12 10:18:05 +02:00
hda ASoC: do not include pm_runtime.h if not used 2023-05-23 13:55:55 +01:00
i2c ALSA: i2c/cs8427: fix iec958 mixer control deactivation 2023-04-06 08:09:36 +02:00
isa
mips ALSA: mips/sgio2audio: Convert to platform remove callback returning void 2023-03-20 13:07:05 +00:00
oss
parisc
pci ES8316 audio codec fixes on Rock5B 2023-05-30 20:41:29 +01:00
pcmcia
ppc ASoC: Updates for v6.4 2023-04-24 15:15:31 +02:00
sh ALSA: sh_dac_audio: Convert to platform remove callback returning void 2023-03-20 13:07:08 +00:00
soc ASoC: add N cpus to M codecs dai link support 2023-06-13 12:11:15 +01:00
sparc ALSA: sparc/dbri: Convert to platform remove callback returning void 2023-03-20 13:09:37 +00:00
spi
synth ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control() 2023-02-07 14:32:33 +01:00
usb ALSA: usb-audio: Add a sample rate workaround for Line6 Pod Go 2023-05-12 10:19:55 +02:00
virtio
x86
xen
ac97_bus.c ALSA: ac97: Remove redundant driver match function 2023-03-20 08:50:02 +01:00
Kconfig mfd: remove ucb1400 support 2023-02-01 17:23:38 +01:00
last.c
Makefile
sound_core.c driver core: class: remove module * from class_create() 2023-03-17 15:16:33 +01:00