mirror of
https://github.com/torvalds/linux.git
synced 2026-10-12 13:27:02 +02:00
ASoC: codecs: cs43130: Use guard() for mutex locks
Clean up the code using guard() for mutex locks. Merely code refactoring, and no behavior change. Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260708125002.202515-18-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
2f952d2ff5
commit
e6eb5e269d
|
|
@ -6,6 +6,7 @@
|
|||
*
|
||||
* Authors: Li Xu <li.xu@cirrus.com>
|
||||
*/
|
||||
#include <linux/cleanup.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
@ -818,26 +819,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 +882,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 +989,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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user