]> www.infradead.org Git - users/hch/misc.git/commitdiff
ALSA: msnd: Use guard() for spin locks
authorTakashi Iwai <tiwai@suse.de>
Fri, 29 Aug 2025 14:52:49 +0000 (16:52 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 1 Sep 2025 11:53:02 +0000 (13:53 +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/20250829145300.5460-10-tiwai@suse.de
sound/isa/msnd/msnd.c
sound/isa/msnd/msnd_pinnacle.c
sound/isa/msnd/msnd_pinnacle_mixer.c

index 8c1d2e27854bc800ab116c855861e863901fd6f8..5e350234d5726b6465885c89f71d09fc1b7b1b10 100644 (file)
@@ -76,15 +76,11 @@ static int snd_msnd_wait_HC0(struct snd_msnd *dev)
 
 int snd_msnd_send_dsp_cmd(struct snd_msnd *dev, u8 cmd)
 {
-       unsigned long flags;
-
-       spin_lock_irqsave(&dev->lock, flags);
+       guard(spinlock_irqsave)(&dev->lock);
        if (snd_msnd_wait_HC0(dev) == 0) {
                outb(cmd, dev->io + HP_CVR);
-               spin_unlock_irqrestore(&dev->lock, flags);
                return 0;
        }
-       spin_unlock_irqrestore(&dev->lock, flags);
 
        dev_dbg(dev->card->dev, LOGNAME ": Send DSP command timeout\n");
 
@@ -133,14 +129,12 @@ EXPORT_SYMBOL(snd_msnd_upload_host);
 
 int snd_msnd_enable_irq(struct snd_msnd *dev)
 {
-       unsigned long flags;
-
        if (dev->irq_ref++)
                return 0;
 
        dev_dbg(dev->card->dev, LOGNAME ": Enabling IRQ\n");
 
-       spin_lock_irqsave(&dev->lock, flags);
+       guard(spinlock_irqsave)(&dev->lock);
        if (snd_msnd_wait_TXDE(dev) == 0) {
                outb(inb(dev->io + HP_ICR) | HPICR_TREQ, dev->io + HP_ICR);
                if (dev->type == msndClassic)
@@ -151,10 +145,8 @@ int snd_msnd_enable_irq(struct snd_msnd *dev)
                enable_irq(dev->irq);
                snd_msnd_init_queue(dev->DSPQ, dev->dspq_data_buff,
                                    dev->dspq_buff_size);
-               spin_unlock_irqrestore(&dev->lock, flags);
                return 0;
        }
-       spin_unlock_irqrestore(&dev->lock, flags);
 
        dev_dbg(dev->card->dev, LOGNAME ": Enable IRQ failed\n");
 
@@ -164,8 +156,6 @@ EXPORT_SYMBOL(snd_msnd_enable_irq);
 
 int snd_msnd_disable_irq(struct snd_msnd *dev)
 {
-       unsigned long flags;
-
        if (--dev->irq_ref > 0)
                return 0;
 
@@ -175,16 +165,14 @@ int snd_msnd_disable_irq(struct snd_msnd *dev)
 
        dev_dbg(dev->card->dev, LOGNAME ": Disabling IRQ\n");
 
-       spin_lock_irqsave(&dev->lock, flags);
+       guard(spinlock_irqsave)(&dev->lock);
        if (snd_msnd_wait_TXDE(dev) == 0) {
                outb(inb(dev->io + HP_ICR) & ~HPICR_RREQ, dev->io + HP_ICR);
                if (dev->type == msndClassic)
                        outb(HPIRQ_NONE, dev->io + HP_IRQM);
                disable_irq(dev->irq);
-               spin_unlock_irqrestore(&dev->lock, flags);
                return 0;
        }
-       spin_unlock_irqrestore(&dev->lock, flags);
 
        dev_dbg(dev->card->dev, LOGNAME ": Disable IRQ failed\n");
 
@@ -376,7 +364,6 @@ static void snd_msnd_capture_reset_queue(struct snd_msnd *chip,
 {
        int             n;
        void            __iomem *pDAQ;
-       /* unsigned long        flags; */
 
        /* snd_msnd_init_queue(chip->DARQ, DARQ_DATA_BUFF, DARQ_BUFF_SIZE); */
 
@@ -388,11 +375,11 @@ static void snd_msnd_capture_reset_queue(struct snd_msnd *chip,
                chip->DARQ + JQS_wTail);
 
 #if 0 /* Critical section: bank 1 access. this is how the OSS driver does it:*/
-       spin_lock_irqsave(&chip->lock, flags);
-       outb(HPBLKSEL_1, chip->io + HP_BLKS);
-       memset_io(chip->mappedbase, 0, DAR_BUFF_SIZE * 3);
-       outb(HPBLKSEL_0, chip->io + HP_BLKS);
-       spin_unlock_irqrestore(&chip->lock, flags);
+       scoped_guard(spinlock_irqsave, &chip->lock) {
+               outb(HPBLKSEL_1, chip->io + HP_BLKS);
+               memset_io(chip->mappedbase, 0, DAR_BUFF_SIZE * 3);
+               outb(HPBLKSEL_0, chip->io + HP_BLKS);
+       }
 #endif
 
        chip->capturePeriodBytes = pcm_count;
index 969bbb18657b9934a31e8958f8aea20ec5173ec0..c4eec391cd298c3a64215be9fb46382c48f8e76f 100644 (file)
@@ -300,7 +300,6 @@ static int snd_msnd_init_sma(struct snd_msnd *chip)
 {
        static int initted;
        u16 mastVolLeft, mastVolRight;
-       unsigned long flags;
 
 #ifdef MSND_CLASSIC
        outb(chip->memid, chip->io + HP_MEMM);
@@ -317,11 +316,11 @@ static int snd_msnd_init_sma(struct snd_msnd *chip)
        memset_io(chip->mappedbase, 0, 0x8000);
 
        /* Critical section: bank 1 access */
-       spin_lock_irqsave(&chip->lock, flags);
-       outb(HPBLKSEL_1, chip->io + HP_BLKS);
-       memset_io(chip->mappedbase, 0, 0x8000);
-       outb(HPBLKSEL_0, chip->io + HP_BLKS);
-       spin_unlock_irqrestore(&chip->lock, flags);
+       scoped_guard(spinlock_irqsave, &chip->lock) {
+               outb(HPBLKSEL_1, chip->io + HP_BLKS);
+               memset_io(chip->mappedbase, 0, 0x8000);
+               outb(HPBLKSEL_0, chip->io + HP_BLKS);
+       }
 
        /* Digital audio play queue */
        chip->DAPQ = chip->mappedbase + DAPQ_OFFSET;
index 2f1bb5a2b376d57cf0acea48b959d5339a17a80d..ec354483b9f8257dcc3a95ea56435aeccdd8ccc5 100644 (file)
@@ -136,14 +136,12 @@ static int snd_msndmix_volume_get(struct snd_kcontrol *kcontrol,
 {
        struct snd_msnd *msnd = snd_kcontrol_chip(kcontrol);
        int addr = kcontrol->private_value;
-       unsigned long flags;
 
-       spin_lock_irqsave(&msnd->mixer_lock, flags);
+       guard(spinlock_irqsave)(&msnd->mixer_lock);
        ucontrol->value.integer.value[0] = msnd->left_levels[addr] * 100;
        ucontrol->value.integer.value[0] /= 0xFFFF;
        ucontrol->value.integer.value[1] = msnd->right_levels[addr] * 100;
        ucontrol->value.integer.value[1] /= 0xFFFF;
-       spin_unlock_irqrestore(&msnd->mixer_lock, flags);
        return 0;
 }
 
@@ -253,15 +251,13 @@ static int snd_msndmix_volume_put(struct snd_kcontrol *kcontrol,
        struct snd_msnd *msnd = snd_kcontrol_chip(kcontrol);
        int change, addr = kcontrol->private_value;
        int left, right;
-       unsigned long flags;
 
        left = ucontrol->value.integer.value[0] % 101;
        right = ucontrol->value.integer.value[1] % 101;
-       spin_lock_irqsave(&msnd->mixer_lock, flags);
+       guard(spinlock_irqsave)(&msnd->mixer_lock);
        change = msnd->left_levels[addr] != left
                || msnd->right_levels[addr] != right;
        snd_msndmix_set(msnd, addr, left, right);
-       spin_unlock_irqrestore(&msnd->mixer_lock, flags);
        return change;
 }