ASoC: rsnd: Don't check SSISR::DIRQ when Capture
When stop case, it was Playback, it need to check all data were completely sent. But in Capture case, it might not receive data anymore. SSISR::DIRQ check is not need for Capture case. Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8fce974bc4
commit
ce54893120
|
@ -598,15 +598,18 @@ static int rsnd_ssi_stop(struct rsnd_mod *mod,
|
||||||
if (rsnd_ssi_is_parent(mod, io))
|
if (rsnd_ssi_is_parent(mod, io))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* disable all IRQ,
|
|
||||||
* and, wait all data was sent
|
|
||||||
*/
|
|
||||||
cr = ssi->cr_own |
|
cr = ssi->cr_own |
|
||||||
ssi->cr_clk;
|
ssi->cr_clk;
|
||||||
|
|
||||||
rsnd_mod_write(mod, SSICR, cr | EN);
|
/*
|
||||||
rsnd_ssi_status_check(mod, DIRQ);
|
* disable all IRQ,
|
||||||
|
* Playback: Wait all data was sent
|
||||||
|
* Capture: It might not receave data. Do nothing
|
||||||
|
*/
|
||||||
|
if (rsnd_io_is_play(io)) {
|
||||||
|
rsnd_mod_write(mod, SSICR, cr | EN);
|
||||||
|
rsnd_ssi_status_check(mod, DIRQ);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* disable SSI,
|
* disable SSI,
|
||||||
|
|
Loading…
Reference in New Issue