[PATCH 17/78] ASoC: codecs: cs43130: Use guard() for mutex locks

From: phucduc . bui

Date: Wed Jun 17 2026 - 06:54:57 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/cs43130.c | 96 +++++++++++++++++++-------------------
1 file changed, 47 insertions(+), 49 deletions(-)

diff --git a/sound/soc/codecs/cs43130.c b/sound/soc/codecs/cs43130.c
index e7b06f962790..5e7472e9e107 100644
--- a/sound/soc/codecs/cs43130.c
+++ b/sound/soc/codecs/cs43130.c
@@ -818,26 +818,26 @@ static int cs43130_dsd_hw_params(struct snd_pcm_substream *substream,
unsigned int required_clk;
u8 dsd_speed;

- mutex_lock(&cs43130->clk_mutex);
- if (!cs43130->clk_req) {
- /* no DAI is currently using clk */
- if (!(CS43130_MCLK_22M % params_rate(params)))
- required_clk = CS43130_MCLK_22M;
- else
- required_clk = CS43130_MCLK_24M;
+ scoped_guard(mutex, &cs43130->clk_mutex) {
+ if (!cs43130->clk_req) {
+ /* no DAI is currently using clk */
+ if (!(CS43130_MCLK_22M % params_rate(params)))
+ required_clk = CS43130_MCLK_22M;
+ else
+ required_clk = CS43130_MCLK_24M;
+
+ cs43130_set_pll(component, 0, 0, cs43130->mclk, required_clk);
+ if (cs43130->pll_bypass)
+ cs43130_change_clksrc(component, CS43130_MCLK_SRC_EXT);
+ else
+ cs43130_change_clksrc(component, CS43130_MCLK_SRC_PLL);
+ }

- cs43130_set_pll(component, 0, 0, cs43130->mclk, required_clk);
- if (cs43130->pll_bypass)
- cs43130_change_clksrc(component, CS43130_MCLK_SRC_EXT);
- else
- cs43130_change_clksrc(component, CS43130_MCLK_SRC_PLL);
+ cs43130->clk_req++;
+ if (cs43130->clk_req == 2)
+ cs43130_pcm_dsd_mix(true, cs43130->regmap);
}

- cs43130->clk_req++;
- if (cs43130->clk_req == 2)
- cs43130_pcm_dsd_mix(true, cs43130->regmap);
- mutex_unlock(&cs43130->clk_mutex);
-
switch (params_rate(params)) {
case 176400:
dsd_speed = 0;
@@ -881,26 +881,26 @@ static int cs43130_hw_params(struct snd_pcm_substream *substream,
unsigned int required_clk;
u8 dsd_speed;

- mutex_lock(&cs43130->clk_mutex);
- if (!cs43130->clk_req) {
- /* no DAI is currently using clk */
- if (!(CS43130_MCLK_22M % params_rate(params)))
- required_clk = CS43130_MCLK_22M;
- else
- required_clk = CS43130_MCLK_24M;
+ scoped_guard(mutex, &cs43130->clk_mutex) {
+ if (!cs43130->clk_req) {
+ /* no DAI is currently using clk */
+ if (!(CS43130_MCLK_22M % params_rate(params)))
+ required_clk = CS43130_MCLK_22M;
+ else
+ required_clk = CS43130_MCLK_24M;
+
+ cs43130_set_pll(component, 0, 0, cs43130->mclk, required_clk);
+ if (cs43130->pll_bypass)
+ cs43130_change_clksrc(component, CS43130_MCLK_SRC_EXT);
+ else
+ cs43130_change_clksrc(component, CS43130_MCLK_SRC_PLL);
+ }

- cs43130_set_pll(component, 0, 0, cs43130->mclk, required_clk);
- if (cs43130->pll_bypass)
- cs43130_change_clksrc(component, CS43130_MCLK_SRC_EXT);
- else
- cs43130_change_clksrc(component, CS43130_MCLK_SRC_PLL);
+ cs43130->clk_req++;
+ if (cs43130->clk_req == 2)
+ cs43130_pcm_dsd_mix(true, cs43130->regmap);
}

- cs43130->clk_req++;
- if (cs43130->clk_req == 2)
- cs43130_pcm_dsd_mix(true, cs43130->regmap);
- mutex_unlock(&cs43130->clk_mutex);
-
switch (dai->id) {
case CS43130_ASP_DOP_DAI:
case CS43130_XSP_DOP_DAI:
@@ -988,14 +988,13 @@ static int cs43130_hw_free(struct snd_pcm_substream *substream,
struct snd_soc_component *component = dai->component;
struct cs43130_private *cs43130 = snd_soc_component_get_drvdata(component);

- mutex_lock(&cs43130->clk_mutex);
+ guard(mutex)(&cs43130->clk_mutex);
cs43130->clk_req--;
if (!cs43130->clk_req) {
/* no DAI is currently using clk */
cs43130_change_clksrc(component, CS43130_MCLK_SRC_RCO);
cs43130_pcm_dsd_mix(false, cs43130->regmap);
}
- mutex_unlock(&cs43130->clk_mutex);

return 0;
}
@@ -2132,18 +2131,18 @@ static void cs43130_imp_meas(struct work_struct *wk)

cs43130->hpload_done = false;

- mutex_lock(&cs43130->clk_mutex);
- if (!cs43130->clk_req) {
- /* clk not in use */
- cs43130_set_pll(component, 0, 0, cs43130->mclk, CS43130_MCLK_22M);
- if (cs43130->pll_bypass)
- cs43130_change_clksrc(component, CS43130_MCLK_SRC_EXT);
- else
- cs43130_change_clksrc(component, CS43130_MCLK_SRC_PLL);
- }
+ scoped_guard(mutex, &cs43130->clk_mutex) {
+ if (!cs43130->clk_req) {
+ /* clk not in use */
+ cs43130_set_pll(component, 0, 0, cs43130->mclk, CS43130_MCLK_22M);
+ if (cs43130->pll_bypass)
+ cs43130_change_clksrc(component, CS43130_MCLK_SRC_EXT);
+ else
+ cs43130_change_clksrc(component, CS43130_MCLK_SRC_PLL);
+ }

- cs43130->clk_req++;
- mutex_unlock(&cs43130->clk_mutex);
+ cs43130->clk_req++;
+ }

regmap_read(cs43130->regmap, CS43130_INT_STATUS_4, &reg);

@@ -2215,12 +2214,11 @@ static void cs43130_imp_meas(struct work_struct *wk)
regmap_multi_reg_write(cs43130->regmap, hp_cln_seq,
ARRAY_SIZE(hp_cln_seq));

- mutex_lock(&cs43130->clk_mutex);
+ guard(mutex)(&cs43130->clk_mutex);
cs43130->clk_req--;
/* clk not in use */
if (!cs43130->clk_req)
cs43130_change_clksrc(component, CS43130_MCLK_SRC_RCO);
- mutex_unlock(&cs43130->clk_mutex);
}

static irqreturn_t cs43130_irq_thread(int irq, void *data)
--
2.43.0