diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2016-12-07 02:05:22 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-12-07 15:47:44 +0000 |
commit | 6bf66b1c35870e08359cb03c49a94e7fef529ef5 (patch) | |
tree | 028e2b30c8d6e61af5a60c9cbc85b44dd090036a | |
parent | 3ce2959d162a8f2d69a83582df619a20ff3f6645 (diff) |
ASoC: rsnd: tidyup ssi->usrcnt counter check in hw_params
ssi->usrcnt will be updated on snd_soc_dai_ops::trigger,
but snd_pcm_ops::hw_params will be called *before* it.
Thus, ssi->usrcnt is still 0 when 1st call.
rsnd_ssi_hw_params() needs to check its called count, this means
trigger should be if (ssi->usrcnt) instead of if (ssi->usrcnt > 1).
Reported-by: Nguyen Viet Dung <nv-dung@jinso.co.jp>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/sh/rcar/ssi.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index e23e07b54d8c..411bda2387ad 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -417,11 +417,14 @@ static int rsnd_ssi_hw_params(struct rsnd_mod *mod, int chan = params_channels(params); /* - * Already working. - * It will happen if SSI has parent/child connection. + * snd_pcm_ops::hw_params will be called *before* + * snd_soc_dai_ops::trigger. Thus, ssi->usrcnt is 0 + * in 1st call. */ - if (ssi->usrcnt > 1) { + if (ssi->usrcnt) { /* + * Already working. + * It will happen if SSI has parent/child connection. * it is error if child <-> parent SSI uses * different channels. */ |