| From 759d45bc106a2893d09473b28490572eca053354 Mon Sep 17 00:00:00 2001 |
| From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Date: Wed, 7 Dec 2016 02:05:22 +0000 |
| Subject: [PATCH 080/299] 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> |
| (cherry picked from commit 6bf66b1c35870e08359cb03c49a94e7fef529ef5) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| sound/soc/sh/rcar/ssi.c | 9 ++++++--- |
| 1 file changed, 6 insertions(+), 3 deletions(-) |
| |
| --- 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 rsn |
| 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. |
| */ |