kernel-ark/sound/soc
Mark Brown c74184ed30 ASoC: core: Support transparent CODEC<->CODEC DAI links
Rather than having the user half start a stream but avoid any DMA to
trigger data flow on links which don't pass through the CPU create a
DAPM route between the two DAI widgets using a hw_params configuration
provided by the machine driver with the new 'params' member of the
dai_link struct.  If no configuration is provided in the dai_link then
use the old style even for CODEC<->CODEC links to avoid breaking
systems.

This greatly simplifies the userspace usage of such links, making them
as simple as analogue connections with the stream configuration being
completely transparent to them.

This is achieved by defining a new dai_link widget type which is created
when CODECs are linked and triggering the configuration of the link via
the normal PCM operations from there.  It is expected that the bias
level callbacks will be used for clock configuration.

Currently only the DAI format, rate and channel count can be configured
and currently the only DAI operations which can be called are hw_params
and digital_mute().  This corresponds well to the majority of CODEC
drivers which only use other callbacks for constraint setting but there
is obviously much room for extension here.  We can't simply call
hw_params() on startup as things like the system clocking configuration
may change at runtime and in future it will be desirable to offer some
configurability of the link parameters.

At present we are also restricted to a single DAPM link for the entire
DAI.  Once we have better support for channel mapping it would also be
desirable to extend this feature so that we can propagate per-channel
power state over the link.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-04-16 19:36:29 +01:00
..
atmel ASoC: Convert afeb9260 to table based DAPM init 2012-02-01 21:52:54 +00:00
au1x Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-01-14 13:05:21 -08:00
blackfin ASoC: blackfin: Use dai_fmt 2012-02-01 18:29:19 +00:00
codecs ASoC: wm9705: Fix build due to removal of 'runtime' definition 2012-04-11 11:43:19 +01:00
davinci ASoC: replace 0xffffffff with DMA_BIT_MASK macro 2012-01-20 13:58:26 +00:00
ep93xx ASoC: ep93xx-i2s: use devm_* helpers to cleanup probe 2012-04-01 11:28:29 +01:00
fsl Linux 3.4-rc2 2012-04-09 11:53:45 +01:00
generic ASoC: add generic simple-card support 2012-04-13 11:29:25 +01:00
jz4740 ASoC: JZ4740: Replaced comma operators with semicolons. 2012-04-06 18:22:05 +01:00
kirkwood ASoC: Convert kirkwood-openrd to use snd_soc_register_card() 2012-02-07 19:40:53 +00:00
mid-x86 ASoC: core: Add support for DAI and machine kcontrols. 2012-02-04 12:40:11 +00:00
mxs MTD merge for 3.4 2012-03-30 17:31:56 -07:00
nuc900 Merge branch 'master' into fixes 2012-01-13 15:00:22 +00:00
omap ARM: board specific updates 2012-03-27 16:27:28 -07:00
pxa ASoC: pxa2xx-i2s: Add clk_prepare/clk_unprepare calls 2012-04-01 11:28:23 +01:00
s6000 ASoC: use proper defines for stream directions in pcm engines 2012-01-20 13:58:25 +00:00
samsung ARM: global cleanups 2012-03-27 16:03:32 -07:00
sh ASoC: sh: fsi: select simple-card on Kconfig 2012-04-13 11:29:28 +01:00
tegra ASoC: convert Tegra20 DAS driver to regmap 2012-04-13 19:16:53 +01:00
txx9 dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
Kconfig ASoC: add generic simple-card support 2012-04-13 11:29:25 +01:00
Makefile ASoC: add generic simple-card support 2012-04-13 11:29:25 +01:00
soc-cache.c ASoC: Remove rbtree register cache 2011-12-13 00:20:28 +08:00
soc-core.c ASoC: core: Support transparent CODEC<->CODEC DAI links 2012-04-16 19:36:29 +01:00
soc-dapm.c ASoC: core: Support transparent CODEC<->CODEC DAI links 2012-04-16 19:36:29 +01:00
soc-dmaengine-pcm.c ASoC: dmaengine_pcm: use dmaengine cyclic wrapper 2012-03-26 18:28:11 +01:00
soc-io.c ASoC: io: Retrieve val_bytes from the regmap API 2012-02-21 19:34:47 +00:00
soc-jack.c ASoC: jack: Push locking for jacks down to the jack 2012-04-01 11:28:23 +01:00
soc-pcm.c ASoC: dapm: Add platform stream event support 2012-04-01 11:28:22 +01:00
soc-utils.c ASoC: utils - Add support for a dummy codec driver. 2012-01-20 13:58:27 +00:00