]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is active
authorJarkko Nikula <jarkko.nikula@bitmer.com>
Fri, 23 Sep 2011 08:19:13 +0000 (11:19 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 23 Sep 2011 10:48:55 +0000 (11:48 +0100)
commit0bb9dcc24dc5da1019fa4af31934dd26896636f7
treed8f1414858a151d174083d9c1e1280559c33d683
parent48a7b8a650cc3869e2e4531b404726f1608857cf
ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is active

Attempt to change McBSP CLKS source while another stream is active is not
safe after commit 9b5e00e ("OMAP: McBSP: implement functional clock
switching via clock framework") in 2.6.37.

CLKS parent clock switching using clock framework have to idle the McBSP
before switching and then activate it again. This short break can cause a
DMA transaction error to already running stream which halts and recovers
only by closing and restarting the stream.

This goes more fatal after commit f41c27a ("OMAP3: l3: Introduce
l3-interconnect error handling driver") in 2.6.39 where l3 driver detects a
severe timeout error and does BUG_ON().

Fix this by not changing any configuration in omap_mcbsp_dai_set_dai_sysclk
if the McBSP is already active. This test should have been here just from
the beginning anyway.

Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
sound/soc/omap/omap-mcbsp.c