ASoC: OMAP: Fix capture pointer handling for OMAP1510 to work correctly with recent...
authorJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Sun, 28 Mar 2010 20:29:29 +0000 (22:29 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 2 Apr 2010 16:10:25 +0000 (17:10 +0100)
commitb5442a75deee293d10c2ab8f4a77013973c4c9e0
tree5741e9c0cb9f8e71b3f92b1145e166716579155a
parentfb48e3c6a4d8888aff61fbf567aadac7d206e973
ASoC: OMAP: Fix capture pointer handling for OMAP1510 to work correctly with recent ALSA PCM code

With recent (2.6.34) chnages in PCM handling, capture stopped working on my
OMAP1510 based Amstrad Delta videophone.

Using 2.6.34-rc2, I was able to correct the problem in 3 different ways:

1. reverting commit 7b3a177b0d4f92b3431b8dca777313a07533a710,
2. enabling additional jiffies check with
echo 4 >/proc/asound/card0/pcm0c0/xrun_debug
3. applying the patch below.

Since I wasn't able to reproduce the problem on my i686 PC, I guess the
problem is probably machine specific.

The patch reuses the method for software emulation of missing hardware
pointer, already implemented for playback on OMAP1510. It's possible that
event if a hardware pointer is available for capture on this machine, its
behaviour may be not compatible with what upper layer expects.

If you think the problem may be more general and should be solved differently,
on a higher level, I can try to work more on it if you give me a hint.

If the patch gets accepted, I suggest it goes as a fix in the current release
cycle.

Created and tested against linux-2.6.34-rc2.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/omap/omap-pcm.c