]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: samsung: spdif: Use guard() for spin locks
authorbui duc phuc <phucduc.bui@gmail.com>
Thu, 23 Apr 2026 12:56:46 +0000 (19:56 +0700)
committerMark Brown <broonie@kernel.org>
Sun, 26 Apr 2026 23:28:19 +0000 (08:28 +0900)
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>
Link: https://patch.msgid.link/20260423125646.156599-6-phucduc.bui@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/samsung/spdif.c

index fb30f6b637a0d3f63d4b91c4a45fb5f839465e59..7fc46d55c522ae896b5d4cea3e18507731589208 100644 (file)
@@ -143,7 +143,6 @@ static int spdif_trigger(struct snd_pcm_substream *substream, int cmd,
 {
        struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
        struct samsung_spdif_info *spdif = to_info(snd_soc_rtd_to_cpu(rtd, 0));
-       unsigned long flags;
 
        dev_dbg(spdif->dev, "Entered %s\n", __func__);
 
@@ -151,16 +150,14 @@ static int spdif_trigger(struct snd_pcm_substream *substream, int cmd,
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_RESUME:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-               spin_lock_irqsave(&spdif->lock, flags);
-               spdif_snd_txctrl(spdif, 1);
-               spin_unlock_irqrestore(&spdif->lock, flags);
+               scoped_guard(spinlock_irqsave, &spdif->lock)
+                       spdif_snd_txctrl(spdif, 1);
                break;
        case SNDRV_PCM_TRIGGER_STOP:
        case SNDRV_PCM_TRIGGER_SUSPEND:
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-               spin_lock_irqsave(&spdif->lock, flags);
-               spdif_snd_txctrl(spdif, 0);
-               spin_unlock_irqrestore(&spdif->lock, flags);
+               scoped_guard(spinlock_irqsave, &spdif->lock)
+                       spdif_snd_txctrl(spdif, 0);
                break;
        default:
                return -EINVAL;
@@ -182,7 +179,6 @@ static int spdif_hw_params(struct snd_pcm_substream *substream,
        void __iomem *regs = spdif->regs;
        struct snd_dmaengine_dai_dma_data *dma_data;
        u32 con, clkcon, cstas;
-       unsigned long flags;
        int i, ratio;
 
        dev_dbg(spdif->dev, "Entered %s\n", __func__);
@@ -196,7 +192,7 @@ static int spdif_hw_params(struct snd_pcm_substream *substream,
 
        snd_soc_dai_set_dma_data(snd_soc_rtd_to_cpu(rtd, 0), substream, dma_data);
 
-       spin_lock_irqsave(&spdif->lock, flags);
+       guard(spinlock_irqsave)(&spdif->lock);
 
        con = readl(regs + CON) & CON_MASK;
        cstas = readl(regs + CSTAS) & CSTAS_MASK;
@@ -214,7 +210,7 @@ static int spdif_hw_params(struct snd_pcm_substream *substream,
                break;
        default:
                dev_err(spdif->dev, "Unsupported data size.\n");
-               goto err;
+               return -EINVAL;
        }
 
        ratio = spdif->clk_rate / params_rate(params);
@@ -224,7 +220,7 @@ static int spdif_hw_params(struct snd_pcm_substream *substream,
        if (i == ARRAY_SIZE(spdif_sysclk_ratios)) {
                dev_err(spdif->dev, "Invalid clock ratio %ld/%d\n",
                                spdif->clk_rate, params_rate(params));
-               goto err;
+               return -EINVAL;
        }
 
        con &= ~CON_MCLKDIV_MASK;
@@ -257,7 +253,7 @@ static int spdif_hw_params(struct snd_pcm_substream *substream,
        default:
                dev_err(spdif->dev, "Invalid sampling rate %d\n",
                                params_rate(params));
-               goto err;
+               return -EINVAL;
        }
 
        cstas &= ~CSTAS_CATEGORY_MASK;
@@ -268,12 +264,7 @@ static int spdif_hw_params(struct snd_pcm_substream *substream,
        writel(cstas, regs + CSTAS);
        writel(clkcon, regs + CLKCON);
 
-       spin_unlock_irqrestore(&spdif->lock, flags);
-
        return 0;
-err:
-       spin_unlock_irqrestore(&spdif->lock, flags);
-       return -EINVAL;
 }
 
 static void spdif_shutdown(struct snd_pcm_substream *substream,