]>
Commit | Line | Data |
---|---|---|
ea78042b SL |
1 | From 10f70959e2f3b4cb550f5b7eda4a4e2b28cdcf51 Mon Sep 17 00:00:00 2001 |
2 | From: Sasha Levin <sashal@kernel.org> | |
3 | Date: Mon, 25 Mar 2024 17:18:14 -0500 | |
4 | Subject: ASoC: rt711-sdw: fix locking sequence | |
5 | ||
6 | From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | |
7 | ||
8 | [ Upstream commit aae86cfd8790bcc7693a5a0894df58de5cb5128c ] | |
9 | ||
10 | The disable_irq_lock protects the 'disable_irq' value, we need to lock | |
11 | before testing it. | |
12 | ||
13 | Fixes: b69de265bd0e ("ASoC: rt711: fix for JD event handling in ClockStop Mode0") | |
14 | Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | |
15 | Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> | |
16 | Reviewed-by: Chao Song <chao.song@linux.intel.com> | |
17 | Link: https://msgid.link/r/20240325221817.206465-4-pierre-louis.bossart@linux.intel.com | |
18 | Signed-off-by: Mark Brown <broonie@kernel.org> | |
19 | Signed-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 | ||
24 | diff --git a/sound/soc/codecs/rt711-sdw.c b/sound/soc/codecs/rt711-sdw.c | |
25 | index 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 | -- | |
44 | 2.43.0 | |
45 |