From: Kuninori Morimoto Date: Wed, 7 Dec 2016 02:05:22 +0000 (+0000) Subject: ASoC: rsnd: tidyup ssi->usrcnt counter check in hw_params X-Git-Tag: v4.10-rc1~121^2~3^2~14^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6bf66b1c35870e08359cb03c49a94e7fef529ef5;p=platform%2Fkernel%2Flinux-exynos.git 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 Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown --- diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index e23e07b..411bda2 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. */