• Jarkko Nikula's avatar
    ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is active · 34c86985
    Jarkko Nikula authored
    Attempt to change McBSP CLKS source while another stream is active is not
    safe after commit d1358657 ("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 e2fa61d4 ("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: default avatarJarkko Nikula <jarkko.nikula@bitmer.com>
    Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    Cc: stable@kernel.org
    34c86985
omap-mcbsp.c 21.7 KB