linux/sound
Mark Brown b4e82b5b78 ASoC: Check progress when reporting periods from i.MX FIQ handler
Currently the i.MX FIQ handler is reporting periods as elapsed based
purely on a timer running in the CPU. This means that any clock
mismatch between the CPU and the audio subsystem can result in the
status reported to applications drifting away from the actual status
of the hardware. This is particularly likely at present since the
SSI driver is only capable of operating in slave mode so it's very
likely that the interface will be clocked from a different source.

Instead check the offset reported by the FIQ and only notify when we
have transferred at least one period, re-firing the timer if we didn't
do so. Also factor out the calculation of the timer expiry time for
make it a bit easier to experiment with.

Note that this only improves the situation, problems can still be
triggered.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-02-25 15:25:07 +00:00
..
aoa ALSA: Don't assume i2c device probing always succeeds 2009-10-01 07:46:33 +02:00
arm ALSA: sound/arm: Fix build failure caused by missing struct aaci definition 2009-12-26 10:16:07 +01:00
atmel
core ALSA: Remove warning message for invalid OSS minor ranges 2010-01-18 14:18:55 +01:00
drivers Merge branch 'topic/beep-rename' into topic/core-change 2009-12-01 15:58:10 +01:00
i2c Merge branch 'topic/hda' into for-linus 2009-12-04 16:22:45 +01:00
isa sbawe: fix memory detection part 2 2010-01-08 09:27:23 +01:00
mips sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer 2009-12-18 12:53:17 +01:00
oss Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into fixes 2010-01-08 09:26:34 +01:00
parisc ALSA: sound/parisc: Move dereference after NULL test 2009-10-30 12:01:38 +01:00
pci ALSA: hda - Fix capture on Sony VAIO with single input 2010-01-17 13:09:33 +01:00
pcmcia sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer 2009-12-18 12:53:17 +01:00
ppc Merge branch 'topic/beep-rename' into topic/core-change 2009-12-01 15:58:10 +01:00
sh Merge branch 'topic/beep-rename' into topic/core-change 2009-12-01 15:58:10 +01:00
soc ASoC: Check progress when reporting periods from i.MX FIQ handler 2010-02-25 15:25:07 +00:00
sparc
spi
synth tree-wide: fix typos "couter" -> "counter" 2009-12-04 15:39:51 +01:00
usb ALSA: usb-audio - Avoid Oops after disconnect 2009-12-28 12:24:22 +01:00
ac97_bus.c
Kconfig tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
last.c
Makefile
sound_core.c ALSA: use subsys_initcall for sound core instead of module_init 2010-01-14 21:21:47 +01:00
sound_firmware.c