[PATCH 06/24] ASoC: codecs: aw88081: Use guard() for mutex locks

From: phucduc . bui

Date: Fri Jun 26 2026 - 02:17:04 EST


From: bui duc phuc <phucduc.bui@xxxxxxxxx>

Clean up the code using guard() for mutex locks.
Merely code refactoring, and no behavior change.

Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
---
sound/soc/codecs/aw88081.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/sound/soc/codecs/aw88081.c b/sound/soc/codecs/aw88081.c
index d5e886a8f106..a3cc027de606 100644
--- a/sound/soc/codecs/aw88081.c
+++ b/sound/soc/codecs/aw88081.c
@@ -7,6 +7,7 @@
// Author: Weidong Wang <wangweidong.a@xxxxxxxxxx>
//

+#include <linux/cleanup.h>
#include <linux/firmware.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
@@ -763,9 +764,8 @@ static void aw88081_startup_work(struct work_struct *work)
struct aw88081 *aw88081 =
container_of(work, struct aw88081, start_work.work);

- mutex_lock(&aw88081->lock);
+ guard(mutex)(&aw88081->lock);
aw88081_start_pa(aw88081);
- mutex_unlock(&aw88081->lock);
}

static void aw88081_start(struct aw88081 *aw88081, bool sync_start)
@@ -942,11 +942,10 @@ static int aw88081_profile_set(struct snd_kcontrol *kcontrol,
int ret;

/* pa stop or stopping just set profile */
- mutex_lock(&aw88081->lock);
+ guard(mutex)(&aw88081->lock);
ret = aw88081_dev_set_profile_index(aw88081->aw_pa, ucontrol->value.integer.value[0]);
if (ret) {
dev_dbg(codec->dev, "profile index does not change");
- mutex_unlock(&aw88081->lock);
return 0;
}

@@ -955,8 +954,6 @@ static int aw88081_profile_set(struct snd_kcontrol *kcontrol,
aw88081_start(aw88081, AW88081_SYNC_START);
}

- mutex_unlock(&aw88081->lock);
-
return 1;
}

@@ -1165,11 +1162,9 @@ static int aw88081_request_firmware_file(struct aw88081 *aw88081)
if (ret)
return ret;

- mutex_lock(&aw88081->lock);
- ret = aw88081_dev_init(aw88081, aw88081->aw_cfg);
- mutex_unlock(&aw88081->lock);
+ guard(mutex)(&aw88081->lock);

- return ret;
+ return aw88081_dev_init(aw88081, aw88081->aw_cfg);
}

static int aw88081_playback_event(struct snd_soc_dapm_widget *w,
@@ -1178,7 +1173,7 @@ static int aw88081_playback_event(struct snd_soc_dapm_widget *w,
struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
struct aw88081 *aw88081 = snd_soc_component_get_drvdata(component);

- mutex_lock(&aw88081->lock);
+ guard(mutex)(&aw88081->lock);
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
aw88081_start(aw88081, AW88081_ASYNC_START);
@@ -1189,7 +1184,6 @@ static int aw88081_playback_event(struct snd_soc_dapm_widget *w,
default:
break;
}
- mutex_unlock(&aw88081->lock);

return 0;
}
--
2.43.0