Skip to content

Commit

Permalink
ASoC: rsnd: call rsnd_dai_pointer_update() from outside of lock
Browse files Browse the repository at this point in the history
rsnd_soc_dai_trigger() will be called
after rsnd_dai_pointer_update() function
which is using rsnd_lock().
Thus, it should be called from outside of rsnd_lock().
Kernel will be hangup without this patch.
Special thanks to Kataoka-san

Reported-by: Ryo Kataoka <ryo.kataoka.wt@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed Apr 23, 2014
1 parent 79861bb commit 836b31f
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions sound/soc/sh/rcar/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -197,13 +197,12 @@ static void rsnd_dma_complete(void *data)
* rsnd_dai_pointer_update() will be called twice,
* ant it will breaks io->byte_pos
*/

rsnd_dai_pointer_update(io, io->byte_per_period);

if (dma->submit_loop)
rsnd_dma_continue(dma);

rsnd_unlock(priv, flags);

rsnd_dai_pointer_update(io, io->byte_per_period);
}

static void __rsnd_dma_start(struct rsnd_dma *dma)
Expand Down

0 comments on commit 836b31f

Please sign in to comment.