summaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorFei Shao <fshao@chromium.org>2022-06-17 19:10:04 +0800
committerMark Brown <broonie@kernel.org>2022-06-17 18:25:24 +0100
commit6c9e9046e1ff356bda66661213735d33c6cfea53 (patch)
tree2ec7bc83ba21653f8703e9e08ece5af02da28c6f /sound/soc
parent442302003bd2b151e12d52b0af9a7dac131bf931 (diff)
downloadlinux-stable-6c9e9046e1ff356bda66661213735d33c6cfea53.tar.gz
linux-stable-6c9e9046e1ff356bda66661213735d33c6cfea53.tar.bz2
linux-stable-6c9e9046e1ff356bda66661213735d33c6cfea53.zip
ASoC: mediatek: mt8186: Fix mutex double unlock in GPIO request
The lockdep mechanism revealed an unbalanced unlocking on MT8186: [ 2.993966] WARNING: bad unlock balance detected! [ 2.993978] ------------------------------------- [ 2.993983] kworker/u16:1/10 is trying to release lock (gpio_request_mutex) at: [ 2.993994] [<ffffffdcd9adebf8>] mt8186_afe_gpio_request+0xf8/0x210 [ 2.994012] but there are no more locks to release! The cause is that the mutex will be double unlocked if dai is unknown during GPIO selection, and this patch fixes it. Fixes: cfa9a966f12a ("ASoC: mediatek: mt8186: support gpio control in platform driver") Signed-off-by: Fei Shao <fshao@chromium.org> Link: https://lore.kernel.org/r/20220617111003.2014395-1-fshao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/mediatek/mt8186/mt8186-afe-gpio.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c b/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c
index 255ffba637d3..274c0c8ec2f2 100644
--- a/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c
+++ b/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c
@@ -230,7 +230,6 @@ int mt8186_afe_gpio_request(struct device *dev, bool enable,
sel = enable ? MT8186_AFE_GPIO_PCM_ON : MT8186_AFE_GPIO_PCM_OFF;
break;
default:
- mutex_unlock(&gpio_request_mutex);
dev_err(dev, "%s(), invalid dai %d\n", __func__, dai);
goto unlock;
}