ASoC: codecs: wcd934x: handle channel mappping list correctly
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tue, 30 Nov 2021 16:05:04 +0000 (16:05 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Dec 2021 09:57:17 +0000 (10:57 +0100)
commit339ffb5b56005582aacc860524d2d208604049d1
tree29fcd26507c2b4f4dfa74b075ef8130143f27ae1
parent71272640d459c9efe2380d43d4d899782bb225a0
ASoC: codecs: wcd934x: handle channel mappping list correctly

commit 23ba28616d3063bd4c4953598ed5e439ca891101 upstream.

Currently each channel is added as list to dai channel list, however
there is danger of adding same channel to multiple dai channel list
which endups corrupting the other list where its already added.

This patch ensures that the channel is actually free before adding to
the dai channel list and also ensures that the channel is on the list
before deleting it.

This check was missing previously, and we did not hit this issue as
we were testing very simple usecases with sequence of amixer commands.

Fixes: a70d9245759a ("ASoC: wcd934x: add capture dapm widgets")
Fixes: dd9eb19b5673 ("ASoC: wcd934x: add playback dapm widgets")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20211130160507.22180-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/codecs/wcd934x.c