ASoC: fsl_easrc: Use guard() for spin locks

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

Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260615093824.115751-4-phucduc.bui@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
bui duc phuc 2026-06-15 16:38:16 +07:00 committed by Mark Brown
parent 58712476de
commit 48d84310be
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -1025,7 +1025,6 @@ static int fsl_easrc_config_context(struct fsl_asrc *easrc, unsigned int ctx_id)
struct fsl_easrc_ctx_priv *ctx_priv; struct fsl_easrc_ctx_priv *ctx_priv;
struct fsl_asrc_pair *ctx; struct fsl_asrc_pair *ctx;
struct device *dev; struct device *dev;
unsigned long lock_flags;
int ret; int ret;
if (!easrc) if (!easrc)
@ -1053,9 +1052,8 @@ static int fsl_easrc_config_context(struct fsl_asrc *easrc, unsigned int ctx_id)
if (ret) if (ret)
return ret; return ret;
spin_lock_irqsave(&easrc->lock, lock_flags); scoped_guard(spinlock_irqsave, &easrc->lock)
ret = fsl_easrc_config_slot(easrc, ctx->index); ret = fsl_easrc_config_slot(easrc, ctx->index);
spin_unlock_irqrestore(&easrc->lock, lock_flags);
if (ret) if (ret)
return ret; return ret;
@ -1301,13 +1299,12 @@ static int fsl_easrc_request_context(int channels, struct fsl_asrc_pair *ctx)
enum asrc_pair_index index = ASRC_INVALID_PAIR; enum asrc_pair_index index = ASRC_INVALID_PAIR;
struct fsl_asrc *easrc = ctx->asrc; struct fsl_asrc *easrc = ctx->asrc;
struct device *dev; struct device *dev;
unsigned long lock_flags;
int ret = 0; int ret = 0;
int i; int i;
dev = &easrc->pdev->dev; dev = &easrc->pdev->dev;
spin_lock_irqsave(&easrc->lock, lock_flags); guard(spinlock_irqsave)(&easrc->lock);
for (i = ASRC_PAIR_A; i < EASRC_CTX_MAX_NUM; i++) { for (i = ASRC_PAIR_A; i < EASRC_CTX_MAX_NUM; i++) {
if (easrc->pair[i]) if (easrc->pair[i])
@ -1331,8 +1328,6 @@ static int fsl_easrc_request_context(int channels, struct fsl_asrc_pair *ctx)
easrc->channel_avail -= channels; easrc->channel_avail -= channels;
} }
spin_unlock_irqrestore(&easrc->lock, lock_flags);
return ret; return ret;
} }
@ -1343,7 +1338,6 @@ static int fsl_easrc_request_context(int channels, struct fsl_asrc_pair *ctx)
*/ */
static void fsl_easrc_release_context(struct fsl_asrc_pair *ctx) static void fsl_easrc_release_context(struct fsl_asrc_pair *ctx)
{ {
unsigned long lock_flags;
struct fsl_asrc *easrc; struct fsl_asrc *easrc;
if (!ctx) if (!ctx)
@ -1351,14 +1345,12 @@ static void fsl_easrc_release_context(struct fsl_asrc_pair *ctx)
easrc = ctx->asrc; easrc = ctx->asrc;
spin_lock_irqsave(&easrc->lock, lock_flags); guard(spinlock_irqsave)(&easrc->lock);
fsl_easrc_release_slot(easrc, ctx->index); fsl_easrc_release_slot(easrc, ctx->index);
easrc->channel_avail += ctx->channels; easrc->channel_avail += ctx->channels;
easrc->pair[ctx->index] = NULL; easrc->pair[ctx->index] = NULL;
spin_unlock_irqrestore(&easrc->lock, lock_flags);
} }
/* /*
@ -2292,15 +2284,13 @@ static int fsl_easrc_runtime_suspend(struct device *dev)
{ {
struct fsl_asrc *easrc = dev_get_drvdata(dev); struct fsl_asrc *easrc = dev_get_drvdata(dev);
struct fsl_easrc_priv *easrc_priv = easrc->private; struct fsl_easrc_priv *easrc_priv = easrc->private;
unsigned long lock_flags;
regcache_cache_only(easrc->regmap, true); regcache_cache_only(easrc->regmap, true);
clk_disable_unprepare(easrc->mem_clk); clk_disable_unprepare(easrc->mem_clk);
spin_lock_irqsave(&easrc->lock, lock_flags); scoped_guard(spinlock_irqsave, &easrc->lock)
easrc_priv->firmware_loaded = 0; easrc_priv->firmware_loaded = 0;
spin_unlock_irqrestore(&easrc->lock, lock_flags);
return 0; return 0;
} }
@ -2311,7 +2301,6 @@ static int fsl_easrc_runtime_resume(struct device *dev)
struct fsl_easrc_priv *easrc_priv = easrc->private; struct fsl_easrc_priv *easrc_priv = easrc->private;
struct fsl_easrc_ctx_priv *ctx_priv; struct fsl_easrc_ctx_priv *ctx_priv;
struct fsl_asrc_pair *ctx; struct fsl_asrc_pair *ctx;
unsigned long lock_flags;
int ret; int ret;
int i; int i;
@ -2323,13 +2312,11 @@ static int fsl_easrc_runtime_resume(struct device *dev)
regcache_mark_dirty(easrc->regmap); regcache_mark_dirty(easrc->regmap);
regcache_sync(easrc->regmap); regcache_sync(easrc->regmap);
spin_lock_irqsave(&easrc->lock, lock_flags); scoped_guard(spinlock_irqsave, &easrc->lock) {
if (easrc_priv->firmware_loaded) { if (easrc_priv->firmware_loaded)
spin_unlock_irqrestore(&easrc->lock, lock_flags); return 0;
goto skip_load; easrc_priv->firmware_loaded = 1;
} }
easrc_priv->firmware_loaded = 1;
spin_unlock_irqrestore(&easrc->lock, lock_flags);
ret = fsl_easrc_get_firmware(easrc); ret = fsl_easrc_get_firmware(easrc);
if (ret) { if (ret) {
@ -2377,9 +2364,6 @@ static int fsl_easrc_runtime_resume(struct device *dev)
goto disable_mem_clk; goto disable_mem_clk;
} }
skip_load:
return 0;
disable_mem_clk: disable_mem_clk:
clk_disable_unprepare(easrc->mem_clk); clk_disable_unprepare(easrc->mem_clk);
return ret; return ret;