linux/sound/soc
Daniel Mack 273b72c8ce ASoC: pxa-ssp: atomically set stream active masks
PXA's SSP engine fails to take its current channel phase into account
when enabling a stream while the engine is already running. This
results in randomly swapped left/right channels on either the record
or the playback side, depending on which one was enabled first.

The following patch fixes this by factoring out the bit field
modifications in question to a separate function that pauses the
engine temporarily, modifies the bits and kicks it off again
afterwards. Appearantly, a transition of SSCR0_SSE syncs both
directions properly.

The patch has been rolled out to quite a number of devices over the
last weeks and seems to fix the issue reliably.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-03-19 12:47:25 +00: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: wm8996: Add 44.1kHz support 2012-03-14 20:37:29 +00:00
davinci ASoC: replace 0xffffffff with DMA_BIT_MASK macro 2012-01-20 13:58:26 +00:00
ep93xx ASoC: ep93xx-pcm: Use dmaengine PCM helper functions 2012-03-12 19:03:39 +00:00
fsl ASoC: fsl: p1022ds: tell the WM8776 codec driver that it's the master 2012-03-17 21:11:16 +00:00
imx ASoC: mx27vis-aic32x4: Convert it to platform driver 2012-03-13 23:09:59 +00:00
jz4740 ASoC: jz4740: Convert qi_lb60 to use snd_soc_register_card() 2012-01-20 13:58:29 +00: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 ASoC: mxs-pcm: Use dmaengine PCM helper functions 2012-03-02 13:47:36 +00:00
nuc900 Merge branch 'master' into fixes 2012-01-13 15:00:22 +00:00
omap This has been a very active release for ASoC, as well as the usual raft 2012-03-05 15:07:33 +01:00
pxa ASoC: pxa-ssp: atomically set stream active masks 2012-03-19 12:47:25 +00:00
s6000 ASoC: use proper defines for stream directions in pcm engines 2012-01-20 13:58:25 +00:00
samsung ASoC: Samsung: Added to support mono recording 2012-03-16 18:50:41 +00:00
sh ASoC: fsi: Add DMAEngine support 2012-02-19 18:36:16 -08:00
tegra ASoC: tegra: Remove unused variable 2012-03-06 20:06:59 +00:00
txx9 Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
Kconfig ASoC: Add dmaengine PCM helper functions 2012-03-02 13:47:25 +00:00
Makefile ASoC: Add dmaengine PCM helper functions 2012-03-02 13:47:25 +00:00
soc-cache.c ASoC: Remove rbtree register cache 2011-12-13 00:20:28 +08:00
soc-core.c ASoC: core: Fix obscure leak of runtime array 2012-03-15 14:28:25 +00:00
soc-dapm.c ASoC: Revert widget I/O locking for 3.4 2012-03-12 10:37:23 +00:00
soc-dmaengine-pcm.c ASoC: dmaengine_pcm: Reset pointer position when starting a stream 2012-03-12 19:03:22 +00: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: Remove ifdefs for GPIO_SYSFS 2011-12-21 00:12:28 +00:00
soc-pcm.c ASoC: dapm: Supply the DAI and substream when calling stream events 2012-02-17 08:10:01 -08:00
soc-utils.c ASoC: utils - Add support for a dummy codec driver. 2012-01-20 13:58:27 +00:00