2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-07 21:24:00 +08:00
linux-next/sound/soc
Lars-Peter Clausen d714f97c5b ASoC: dapm: Add demux support
A demux is conceptually similar to a mux. Where a mux has multiple input
and one output and selects one of the inputs to be connected to the output,
the demux has one input and multiple outputs and selects one of the outputs
to which the input gets connected.

This similarity makes it straight forward to support them in DAPM using the
existing mux support, we only need to swap sinks and sources when initially
setting up the paths.

The only slightly tricky part is that there can only be one control per
path. Since mixers/muxes are at the sink of a path and a demux is at the
source and both types want a control it is not possible to directly connect
a demux output to a mixer/mux input. The patch adds some sanity checks to
make sure that this does not happen.

Drivers who want to model hardware which directly connects a demux output
to a mixer/mux input can do this by inserting a dummy widget between the
two. E.g.:

	{ "Dummy", "Demux Control", "Demux" },
	{ "Mixer", "Mixer Control", "Dummy" },

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-05-06 17:31:02 +01:00
..
adi ASoC: adi: Add missing return statement. 2015-01-05 20:16:20 +00:00
atmel Merge remote-tracking branches 'asoc/topic/4554', 'asoc/topic/ab8500', 'asoc/topic/ak4642', 'asoc/topic/arizona' and 'asoc/topic/atmel' into asoc-next 2015-04-12 19:48:51 +01:00
au1x Merge remote-tracking branches 'asoc/topic/cs42l73', 'asoc/topic/dai' and 'asoc/topic/davinci' into asoc-next 2015-02-09 15:10:14 +08:00
bcm ASoC: bcm: drop owner assignment from platform_drivers 2014-10-20 16:22:04 +02:00
blackfin Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
cirrus ASoC: cirrus: tlv320aic23 needs I2C 2015-02-21 18:36:27 +09:00
codecs ASoC: ssm2518: fix simple_return.cocci warnings 2015-04-30 21:24:46 +01:00
davinci Merge remote-tracking branches 'asoc/topic/cx20442' and 'asoc/topic/davinci' into asoc-next 2015-04-12 19:48:56 +01:00
dwc Merge remote-tracking branches 'asoc/topic/doc', 'asoc/topic/dwc', 'asoc/topic/fsi', 'asoc/topic/fsl' and 'asoc/topic/fsl-asrc' into asoc-next 2015-02-09 15:10:17 +08:00
fsl Merge remote-tracking branches 'asoc/topic/jack', 'asoc/topic/jz4740' and 'asoc/topic/kirkwood' into asoc-next 2015-04-12 19:49:03 +01:00
generic Merge remote-tracking branches 'asoc/topic/rt5641', 'asoc/topic/rt5677' and 'asoc/topic/sh-cleanup' into asoc-next 2015-04-12 19:49:17 +01:00
intel Merge remote-tracking branch 'asoc/topic/intel' into asoc-next 2015-04-12 19:48:33 +01:00
jz4740 ASoC: jz4740: Add jz4780 support 2015-03-09 18:10:17 +00:00
kirkwood Merge remote-tracking branches 'asoc/topic/jack', 'asoc/topic/jz4740' and 'asoc/topic/kirkwood' into asoc-next 2015-04-12 19:49:03 +01:00
mxs Merge remote-tracking branches 'asoc/topic/mxs-saif' and 'asoc/topic/nuc900' into asoc-next 2015-02-09 15:10:23 +08:00
nuc900 ASoC: nuc900: No need to track the dma buffer in the driver state struct 2015-03-16 11:40:52 +00:00
omap Merge remote-tracking branches 'asoc/topic/omap', 'asoc/topic/qcom', 'asoc/topic/rcar' and 'asoc/topic/rt286' into asoc-next 2015-04-12 19:49:11 +01:00
pxa ASoC: z2: Register jacks at the card level 2015-03-04 17:10:43 +00:00
qcom ASoC: qcom: Add ability to build QCOM drivers 2015-03-16 11:24:47 +00:00
rockchip ASoC: Updates for v3.20 2015-02-09 15:09:48 +08:00
samsung Merge branch 'topic/jack' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel 2015-03-17 12:16:27 +00:00
sh Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
sirf ASoC: sirf: drop owner assignment from platform_drivers 2014-10-20 16:22:14 +02:00
spear ASoC: spear: drop owner assignment from platform_drivers 2014-10-20 16:22:14 +02:00
tegra ASoC: tegra_wm9712: Use card DAPM context to access widgets 2015-04-08 21:10:01 +01:00
txx9 ASoC: txx9: Remove unnecessary snd_pcm_lib_preallocate_free_for_all() 2015-01-05 21:30:20 +00:00
ux500 ASoC: mop500_ab8500: Use card DAPM context to access widgets 2015-04-12 12:43:58 +01:00
xtensa ASoC: add xtensa xtfpga I2S interface and platform 2015-01-08 19:52:11 +00:00
Kconfig ASoC: Allow for building QCOM drivers 2015-03-16 11:24:47 +00:00
Makefile ASoC: Allow for building QCOM drivers 2015-03-16 11:24:47 +00:00
soc-ac97.c ASoC: Add support for allocating AC'97 device before registering it 2015-01-26 19:14:20 +00:00
soc-cache.c ASoC: Remove snd_soc_cache_sync() implementation 2014-11-09 09:06:30 +00:00
soc-compress.c ASoC: soc-compress.c: fix NULL dereference 2015-01-15 15:54:04 +00:00
soc-core.c sound updates for 4.1-rc1 2015-04-15 15:41:41 -07:00
soc-dapm.c ASoC: dapm: Add demux support 2015-05-06 17:31:02 +01:00
soc-devres.c ASoC: Fix warning with make xmldocs caused by soc-devres.c 2015-01-28 11:36:03 +00:00
soc-generic-dmaengine-pcm.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-02-18 08:49:20 -08:00
soc-io.c ASoC: Automatically initialize regmap for all components 2014-08-19 10:59:47 -05:00
soc-jack.c ASoC: Allow to register jacks at the card level 2015-03-04 17:09:51 +00:00
soc-ops.c ASoC: core: Split ops out of soc-core.c 2014-10-29 11:15:10 +00:00
soc-pcm.c Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-04-12 19:48:30 +01:00
soc-utils.c ASoC: : drop owner assignment from platform_drivers 2014-10-20 16:22:02 +02:00