]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/6.6.26/asoc-rt711-sdw-fix-locking-sequence.patch
Linux 6.6.26
[thirdparty/kernel/stable-queue.git] / releases / 6.6.26 / asoc-rt711-sdw-fix-locking-sequence.patch
CommitLineData
ea78042b
SL
1From 10f70959e2f3b4cb550f5b7eda4a4e2b28cdcf51 Mon Sep 17 00:00:00 2001
2From: Sasha Levin <sashal@kernel.org>
3Date: Mon, 25 Mar 2024 17:18:14 -0500
4Subject: ASoC: rt711-sdw: fix locking sequence
5
6From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
7
8[ Upstream commit aae86cfd8790bcc7693a5a0894df58de5cb5128c ]
9
10The disable_irq_lock protects the 'disable_irq' value, we need to lock
11before testing it.
12
13Fixes: b69de265bd0e ("ASoC: rt711: fix for JD event handling in ClockStop Mode0")
14Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
15Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
16Reviewed-by: Chao Song <chao.song@linux.intel.com>
17Link: https://msgid.link/r/20240325221817.206465-4-pierre-louis.bossart@linux.intel.com
18Signed-off-by: Mark Brown <broonie@kernel.org>
19Signed-off-by: Sasha Levin <sashal@kernel.org>
20---
21 sound/soc/codecs/rt711-sdw.c | 4 ++--
22 1 file changed, 2 insertions(+), 2 deletions(-)
23
24diff --git a/sound/soc/codecs/rt711-sdw.c b/sound/soc/codecs/rt711-sdw.c
25index 3f5773310ae8c..988451f24a756 100644
26--- a/sound/soc/codecs/rt711-sdw.c
27+++ b/sound/soc/codecs/rt711-sdw.c
28@@ -536,12 +536,12 @@ static int __maybe_unused rt711_dev_resume(struct device *dev)
29 return 0;
30
31 if (!slave->unattach_request) {
32+ mutex_lock(&rt711->disable_irq_lock);
33 if (rt711->disable_irq == true) {
34- mutex_lock(&rt711->disable_irq_lock);
35 sdw_write_no_pm(slave, SDW_SCP_INTMASK1, SDW_SCP_INT1_IMPL_DEF);
36 rt711->disable_irq = false;
37- mutex_unlock(&rt711->disable_irq_lock);
38 }
39+ mutex_unlock(&rt711->disable_irq_lock);
40 goto regmap_sync;
41 }
42
43--
442.43.0
45