linux/sound/soc
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
..
atmel ASoC: at91sam9g20ek_2mmc board uses same audio connexion as at91sam9g20ek 2009-10-09 12:41:55 +01:00
au1x ASoC: au1x: dbdma2: plug memleak in pcm device creation error path 2009-12-03 10:49:55 +00:00
blackfin ASoC: Fix continuation line formats 2010-02-01 14:35:23 +00:00
codecs ASoC: tlv320dac33: Correct the OSCSET calculation 2010-02-16 19:14:53 +00:00
davinci ASoC: DaVinci: Fix stream restart error 2010-01-26 11:55:54 +00:00
fsl ASoC: mpc5200: remove duplicate identical IRQ handler 2009-11-10 13:02:01 +00:00
imx ASoC: Check progress when reporting periods from i.MX FIQ handler 2010-02-25 15:25:07 +00:00
omap Add ASoC support for Devkit8000 2010-02-11 19:49:48 +00:00
pxa ASoC: fix PXA SSP port resume 2010-02-02 11:41:53 +00:00
s3c24xx ASoC: Fix continuation line formats 2010-02-02 11:41:47 +00:00
s6000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
sh ASoC: fix compile breakage if CONFIG_SH_DMA_API=y && CONFIG_SND_SIU_MIGOR!=n 2010-02-12 10:18:52 +00:00
txx9 ASoC: txx9aclc: dynamically allocate dmaengine devname 2009-06-25 21:06:30 +01:00
Kconfig ASoC: Hook i.MX into build 2009-08-15 11:37:30 +01:00
Makefile ASoC: Add bit clock rate calculator utility functions 2009-11-12 16:45:48 +00:00
soc-cache.c ASoC: Add a cache_sync bit to the CODEC structure 2010-02-04 10:40:45 +00:00
soc-core.c ASoC: Make pmdown_time runtime configurable 2010-02-16 19:14:52 +00:00
soc-dapm.c ASoC: Support turning off bias when the CODEC is idle 2010-01-21 12:04:08 +00:00
soc-jack.c ASoC: Add jack_status_check callback function for GPIO jacks 2009-11-12 16:45:53 +00:00
soc-utils.c ASoC: Add BCLK calculation utility for TDM mode too 2009-11-25 19:55:46 +00:00