linux/sound/soc/imx
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
..
Kconfig ASoC: Typo. s/Freecale/Freescale/ 2010-02-10 11:14:42 +00:00
Makefile ASoC: add phycore-ac97 sound support 2010-02-10 10:42:33 +00:00
imx-pcm-dma-mx2.c ASoC: Add a new imx-ssi sound driver 2010-01-17 11:09:46 +00:00
imx-pcm-fiq.c ASoC: Check progress when reporting periods from i.MX FIQ handler 2010-02-25 15:25:07 +00:00
imx-ssi.c ASoC: i.MX SSI driver does not yet support master mode 2010-01-17 11:10:02 +00:00
imx-ssi.h ASoC: Convert new i.MX SSI driver to use static DAI array 2010-01-17 11:10:01 +00:00
phycore-ac97.c ASoC: add phycore-ac97 sound support 2010-02-10 10:42:33 +00:00