Re: [PATCH] ASoC: meson: axg-tdm-formatter: Use guard() for mutex locks
From: Jerome Brunet
Date: Wed Jun 10 2026 - 08:59:08 EST
On mer. 10 juin 2026 at 17:21, phucduc.bui@xxxxxxxxx wrote:
> From: bui duc phuc <phucduc.bui@xxxxxxxxx>
>
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
I suppose it is OK but it does not seem to really clean anything and
make the code easier to follow in that instance, from my perspective at
least.
If there is policy to systematically use guard() whenever
possible then OK, otherwise it seems unnecessary.
>
> Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
> ---
> sound/soc/meson/axg-tdm-formatter.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
>
> diff --git a/sound/soc/meson/axg-tdm-formatter.c b/sound/soc/meson/axg-tdm-formatter.c
> index f451e4dce442..a6ba401104d5 100644
> --- a/sound/soc/meson/axg-tdm-formatter.c
> +++ b/sound/soc/meson/axg-tdm-formatter.c
> @@ -157,20 +157,19 @@ static int axg_tdm_formatter_attach(struct axg_tdm_formatter *formatter)
> struct axg_tdm_stream *ts = formatter->stream;
> int ret = 0;
>
> - mutex_lock(&ts->lock);
> + guard(mutex)(&ts->lock);
>
> /* Catch up if the stream is already running when we attach */
> if (ts->ready) {
> ret = axg_tdm_formatter_enable(formatter);
> if (ret) {
> pr_err("failed to enable formatter\n");
> - goto out;
> + return ret;
> }
> }
>
> list_add_tail(&formatter->list, &ts->formatter_list);
> -out:
> - mutex_unlock(&ts->lock);
> +
> return ret;
> }
>
> @@ -178,9 +177,8 @@ static void axg_tdm_formatter_dettach(struct axg_tdm_formatter *formatter)
> {
> struct axg_tdm_stream *ts = formatter->stream;
>
> - mutex_lock(&ts->lock);
> - list_del(&formatter->list);
> - mutex_unlock(&ts->lock);
> + scoped_guard(mutex, &ts->lock)
> + list_del(&formatter->list);
>
> axg_tdm_formatter_disable(formatter);
> }
> @@ -330,7 +328,7 @@ int axg_tdm_stream_start(struct axg_tdm_stream *ts)
> struct axg_tdm_formatter *formatter;
> int ret = 0;
>
> - mutex_lock(&ts->lock);
> + guard(mutex)(&ts->lock);
> ts->ready = true;
>
> /* Start all the formatters attached to the stream */
> @@ -338,12 +336,10 @@ int axg_tdm_stream_start(struct axg_tdm_stream *ts)
> ret = axg_tdm_formatter_enable(formatter);
> if (ret) {
> pr_err("failed to start tdm stream\n");
> - goto out;
> + return ret;
> }
> }
>
> -out:
> - mutex_unlock(&ts->lock);
> return ret;
> }
> EXPORT_SYMBOL_GPL(axg_tdm_stream_start);
> @@ -352,15 +348,13 @@ void axg_tdm_stream_stop(struct axg_tdm_stream *ts)
> {
> struct axg_tdm_formatter *formatter;
>
> - mutex_lock(&ts->lock);
> + guard(mutex)(&ts->lock);
> ts->ready = false;
>
> /* Stop all the formatters attached to the stream */
> list_for_each_entry(formatter, &ts->formatter_list, list) {
> axg_tdm_formatter_disable(formatter);
> }
> -
> - mutex_unlock(&ts->lock);
> }
> EXPORT_SYMBOL_GPL(axg_tdm_stream_stop);
--
Jerome