ASoC: fsl_audmix: Add spin lock to protect tdms
authorShengjiu Wang <shengjiu.wang@nxp.com>
Mon, 11 Nov 2019 07:50:48 +0000 (15:50 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Dec 2019 19:07:47 +0000 (20:07 +0100)
commit89ce5f8081470f19afe1f21a64ced11e7dc25349
tree32df37ca219855da2840a6b845464da39399c4ed
parentcf20f0a42417e313e70fb93e332507adbc1ec25f
ASoC: fsl_audmix: Add spin lock to protect tdms

commit fe965096c9495ddcf78ec163348105e2baf8d185 upstream.

Audmix support two substream, When two substream start
to run, the trigger function may be called by two substream
in same time, that the priv->tdms may be updated wrongly.

The expected priv->tdms is 0x3, but sometimes the
result is 0x2, or 0x1.

Fixes: be1df61cf06e ("ASoC: fsl: Add Audio Mixer CPU DAI driver")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://lore.kernel.org/r/1e706afe53fdd1fbbbc79277c48a98f8416ba873.1573458378.git.shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/fsl/fsl_audmix.c
sound/soc/fsl/fsl_audmix.h