Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 836b31fe authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: rsnd: call rsnd_dai_pointer_update() from outside of lock



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: default avatarRyo Kataoka <ryo.kataoka.wt@renesas.com>
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 79861bbb
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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)