]> www.infradead.org Git - users/hch/misc.git/commitdiff
ALSA: atiixp: Use guard() for spin locks
authorTakashi Iwai <tiwai@suse.de>
Fri, 29 Aug 2025 14:42:46 +0000 (16:42 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 1 Sep 2025 11:52:39 +0000 (13:52 +0200)
Clean up the code using guard() for spin locks.

Merely code refactoring, and no behavior change.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250829144342.4290-12-tiwai@suse.de
sound/pci/atiixp.c
sound/pci/atiixp_modem.c

index 38c07f3de850211b732fa08381874098d0590c86..2a0c59d5afa58eb2a4dcff7e059f4aefe9acde66 100644 (file)
@@ -345,7 +345,6 @@ static int atiixp_build_dma_packets(struct atiixp *chip, struct atiixp_dma *dma,
 {
        unsigned int i;
        u32 addr, desc_addr;
-       unsigned long flags;
 
        if (periods > ATI_MAX_DESCRIPTORS)
                return -ENOMEM;
@@ -363,11 +362,11 @@ static int atiixp_build_dma_packets(struct atiixp *chip, struct atiixp_dma *dma,
                return 0;
 
        /* reset DMA before changing the descriptor table */
-       spin_lock_irqsave(&chip->reg_lock, flags);
-       writel(0, chip->remap_addr + dma->ops->llp_offset);
-       dma->ops->enable_dma(chip, 0);
-       dma->ops->enable_dma(chip, 1);
-       spin_unlock_irqrestore(&chip->reg_lock, flags);
+       scoped_guard(spinlock_irqsave, &chip->reg_lock) {
+               writel(0, chip->remap_addr + dma->ops->llp_offset);
+               dma->ops->enable_dma(chip, 0);
+               dma->ops->enable_dma(chip, 1);
+       }
 
        /* fill the entries */
        addr = (u32)substream->runtime->dma_addr;
@@ -711,7 +710,7 @@ static int snd_atiixp_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
                       !dma->ops->flush_dma))
                return -EINVAL;
 
-       spin_lock(&chip->reg_lock);
+       guard(spinlock)(&chip->reg_lock);
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
@@ -745,7 +744,6 @@ static int snd_atiixp_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
                        snd_atiixp_check_bus_busy(chip);
                }
        }
-       spin_unlock(&chip->reg_lock);
        return err;
 }
 
@@ -859,7 +857,7 @@ static int snd_atiixp_spdif_prepare(struct snd_pcm_substream *substream)
 {
        struct atiixp *chip = snd_pcm_substream_chip(substream);
 
-       spin_lock_irq(&chip->reg_lock);
+       guard(spinlock_irq)(&chip->reg_lock);
        if (chip->spdif_over_aclink) {
                unsigned int data;
                /* enable slots 10/11 */
@@ -877,7 +875,6 @@ static int snd_atiixp_spdif_prepare(struct snd_pcm_substream *substream)
                atiixp_update(chip, CMD, ATI_REG_CMD_SPDF_CONFIG_MASK, 0);
                atiixp_update(chip, CMD, ATI_REG_CMD_INTERLEAVE_SPDF, 0);
        }
-       spin_unlock_irq(&chip->reg_lock);
        return 0;
 }
 
@@ -887,7 +884,7 @@ static int snd_atiixp_playback_prepare(struct snd_pcm_substream *substream)
        struct atiixp *chip = snd_pcm_substream_chip(substream);
        unsigned int data;
 
-       spin_lock_irq(&chip->reg_lock);
+       guard(spinlock_irq)(&chip->reg_lock);
        data = atiixp_read(chip, OUT_DMA_SLOT) & ~ATI_REG_OUT_DMA_SLOT_MASK;
        switch (substream->runtime->channels) {
        case 8:
@@ -922,7 +919,6 @@ static int snd_atiixp_playback_prepare(struct snd_pcm_substream *substream)
        atiixp_update(chip, 6CH_REORDER, ATI_REG_6CH_REORDER_EN,
                      substream->runtime->channels >= 6 ? ATI_REG_6CH_REORDER_EN: 0);
     
-       spin_unlock_irq(&chip->reg_lock);
        return 0;
 }
 
@@ -931,11 +927,10 @@ static int snd_atiixp_capture_prepare(struct snd_pcm_substream *substream)
 {
        struct atiixp *chip = snd_pcm_substream_chip(substream);
 
-       spin_lock_irq(&chip->reg_lock);
+       guard(spinlock_irq)(&chip->reg_lock);
        atiixp_update(chip, CMD, ATI_REG_CMD_INTERLEAVE_IN,
                      substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE ?
                      ATI_REG_CMD_INTERLEAVE_IN : 0);
-       spin_unlock_irq(&chip->reg_lock);
        return 0;
 }
 
@@ -1043,9 +1038,9 @@ static int snd_atiixp_pcm_open(struct snd_pcm_substream *substream,
        runtime->private_data = dma;
 
        /* enable DMA bits */
-       spin_lock_irq(&chip->reg_lock);
-       dma->ops->enable_dma(chip, 1);
-       spin_unlock_irq(&chip->reg_lock);
+       scoped_guard(spinlock_irq, &chip->reg_lock) {
+               dma->ops->enable_dma(chip, 1);
+       }
        dma->opened = 1;
 
        return 0;
@@ -1058,9 +1053,9 @@ static int snd_atiixp_pcm_close(struct snd_pcm_substream *substream,
        /* disable DMA bits */
        if (snd_BUG_ON(!dma->ops || !dma->ops->enable_dma))
                return -EINVAL;
-       spin_lock_irq(&chip->reg_lock);
-       dma->ops->enable_dma(chip, 0);
-       spin_unlock_irq(&chip->reg_lock);
+       scoped_guard(spinlock_irq, &chip->reg_lock) {
+               dma->ops->enable_dma(chip, 0);
+       }
        dma->substream = NULL;
        dma->opened = 0;
        return 0;
@@ -1348,10 +1343,9 @@ static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id)
        if (status & CODEC_CHECK_BITS) {
                unsigned int detected;
                detected = status & CODEC_CHECK_BITS;
-               spin_lock(&chip->reg_lock);
+               guard(spinlock)(&chip->reg_lock);
                chip->codec_not_ready_bits |= detected;
                atiixp_update(chip, IER, detected, 0); /* disable the detected irqs */
-               spin_unlock(&chip->reg_lock);
        }
 
        /* ack */
index 81a53336699ed930a740f7860cebc1f923aa885e..91f31e2ad3d3b6b0aa315f79ce5bd8c9908d6c39 100644 (file)
@@ -314,7 +314,6 @@ static int atiixp_build_dma_packets(struct atiixp_modem *chip,
 {
        unsigned int i;
        u32 addr, desc_addr;
-       unsigned long flags;
 
        if (periods > ATI_MAX_DESCRIPTORS)
                return -ENOMEM;
@@ -330,11 +329,11 @@ static int atiixp_build_dma_packets(struct atiixp_modem *chip,
                return 0;
 
        /* reset DMA before changing the descriptor table */
-       spin_lock_irqsave(&chip->reg_lock, flags);
-       writel(0, chip->remap_addr + dma->ops->llp_offset);
-       dma->ops->enable_dma(chip, 0);
-       dma->ops->enable_dma(chip, 1);
-       spin_unlock_irqrestore(&chip->reg_lock, flags);
+       scoped_guard(spinlock_irqsave, &chip->reg_lock) {
+               writel(0, chip->remap_addr + dma->ops->llp_offset);
+               dma->ops->enable_dma(chip, 0);
+               dma->ops->enable_dma(chip, 1);
+       }
 
        /* fill the entries */
        addr = (u32)substream->runtime->dma_addr;
@@ -661,7 +660,7 @@ static int snd_atiixp_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
                       !dma->ops->flush_dma))
                return -EINVAL;
 
-       spin_lock(&chip->reg_lock);
+       guard(spinlock)(&chip->reg_lock);
        switch(cmd) {
        case SNDRV_PCM_TRIGGER_START:
                dma->ops->enable_transfer(chip, 1);
@@ -682,7 +681,6 @@ static int snd_atiixp_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
                snd_atiixp_check_bus_busy(chip);
        }
        }
-       spin_unlock(&chip->reg_lock);
        return err;
 }
 
@@ -753,13 +751,12 @@ static int snd_atiixp_playback_prepare(struct snd_pcm_substream *substream)
        struct atiixp_modem *chip = snd_pcm_substream_chip(substream);
        unsigned int data;
 
-       spin_lock_irq(&chip->reg_lock);
+       guard(spinlock_irq)(&chip->reg_lock);
        /* set output threshold */
        data = atiixp_read(chip, MODEM_OUT_FIFO);
        data &= ~ATI_REG_MODEM_OUT1_DMA_THRESHOLD_MASK;
        data |= 0x04 << ATI_REG_MODEM_OUT1_DMA_THRESHOLD_SHIFT;
        atiixp_write(chip, MODEM_OUT_FIFO, data);
-       spin_unlock_irq(&chip->reg_lock);
        return 0;
 }
 
@@ -864,9 +861,9 @@ static int snd_atiixp_pcm_open(struct snd_pcm_substream *substream,
        runtime->private_data = dma;
 
        /* enable DMA bits */
-       spin_lock_irq(&chip->reg_lock);
-       dma->ops->enable_dma(chip, 1);
-       spin_unlock_irq(&chip->reg_lock);
+       scoped_guard(spinlock_irq, &chip->reg_lock) {
+               dma->ops->enable_dma(chip, 1);
+       }
        dma->opened = 1;
 
        return 0;
@@ -879,9 +876,9 @@ static int snd_atiixp_pcm_close(struct snd_pcm_substream *substream,
        /* disable DMA bits */
        if (snd_BUG_ON(!dma->ops || !dma->ops->enable_dma))
                return -EINVAL;
-       spin_lock_irq(&chip->reg_lock);
-       dma->ops->enable_dma(chip, 0);
-       spin_unlock_irq(&chip->reg_lock);
+       scoped_guard(spinlock_irq, &chip->reg_lock) {
+               dma->ops->enable_dma(chip, 0);
+       }
        dma->substream = NULL;
        dma->opened = 0;
        return 0;
@@ -1013,10 +1010,9 @@ static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id)
        if (status & CODEC_CHECK_BITS) {
                unsigned int detected;
                detected = status & CODEC_CHECK_BITS;
-               spin_lock(&chip->reg_lock);
+               guard(spinlock)(&chip->reg_lock);
                chip->codec_not_ready_bits |= detected;
                atiixp_update(chip, IER, detected, 0); /* disable the detected irqs */
-               spin_unlock(&chip->reg_lock);
        }
 
        /* ack */