]> www.infradead.org Git - users/hch/misc.git/commitdiff
ALSA: dummy: Use guard() for spin locks
authorTakashi Iwai <tiwai@suse.de>
Fri, 29 Aug 2025 15:00:19 +0000 (17:00 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 1 Sep 2025 11:53:34 +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/20250829150026.6379-9-tiwai@suse.de
sound/drivers/dummy.c

index 6dac0b2523c11d49be42420732450d1270c73670..1860ff75fe159b7e8206bfb24fd38fc993052718 100644 (file)
@@ -269,19 +269,19 @@ static void dummy_systimer_update(struct dummy_systimer_pcm *dpcm)
 static int dummy_systimer_start(struct snd_pcm_substream *substream)
 {
        struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
-       spin_lock(&dpcm->lock);
+
+       guard(spinlock)(&dpcm->lock);
        dpcm->base_time = jiffies;
        dummy_systimer_rearm(dpcm);
-       spin_unlock(&dpcm->lock);
        return 0;
 }
 
 static int dummy_systimer_stop(struct snd_pcm_substream *substream)
 {
        struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
-       spin_lock(&dpcm->lock);
+
+       guard(spinlock)(&dpcm->lock);
        timer_delete(&dpcm->timer);
-       spin_unlock(&dpcm->lock);
        return 0;
 }
 
@@ -303,15 +303,14 @@ static int dummy_systimer_prepare(struct snd_pcm_substream *substream)
 static void dummy_systimer_callback(struct timer_list *t)
 {
        struct dummy_systimer_pcm *dpcm = timer_container_of(dpcm, t, timer);
-       unsigned long flags;
        int elapsed = 0;
 
-       spin_lock_irqsave(&dpcm->lock, flags);
-       dummy_systimer_update(dpcm);
-       dummy_systimer_rearm(dpcm);
-       elapsed = dpcm->elapsed;
-       dpcm->elapsed = 0;
-       spin_unlock_irqrestore(&dpcm->lock, flags);
+       scoped_guard(spinlock_irqsave, &dpcm->lock) {
+               dummy_systimer_update(dpcm);
+               dummy_systimer_rearm(dpcm);
+               elapsed = dpcm->elapsed;
+               dpcm->elapsed = 0;
+       }
        if (elapsed)
                snd_pcm_period_elapsed(dpcm->substream);
 }
@@ -320,13 +319,10 @@ static snd_pcm_uframes_t
 dummy_systimer_pointer(struct snd_pcm_substream *substream)
 {
        struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
-       snd_pcm_uframes_t pos;
 
-       spin_lock(&dpcm->lock);
+       guard(spinlock)(&dpcm->lock);
        dummy_systimer_update(dpcm);
-       pos = dpcm->frac_pos / HZ;
-       spin_unlock(&dpcm->lock);
-       return pos;
+       return dpcm->frac_pos / HZ;
 }
 
 static int dummy_systimer_create(struct snd_pcm_substream *substream)
@@ -724,10 +720,9 @@ static int snd_dummy_volume_get(struct snd_kcontrol *kcontrol,
        struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
        int addr = kcontrol->private_value;
 
-       spin_lock_irq(&dummy->mixer_lock);
+       guard(spinlock_irq)(&dummy->mixer_lock);
        ucontrol->value.integer.value[0] = dummy->mixer_volume[addr][0];
        ucontrol->value.integer.value[1] = dummy->mixer_volume[addr][1];
-       spin_unlock_irq(&dummy->mixer_lock);
        return 0;
 }
 
@@ -748,12 +743,11 @@ static int snd_dummy_volume_put(struct snd_kcontrol *kcontrol,
                right = mixer_volume_level_min;
        if (right > mixer_volume_level_max)
                right = mixer_volume_level_max;
-       spin_lock_irq(&dummy->mixer_lock);
+       guard(spinlock_irq)(&dummy->mixer_lock);
        change = dummy->mixer_volume[addr][0] != left ||
                 dummy->mixer_volume[addr][1] != right;
        dummy->mixer_volume[addr][0] = left;
        dummy->mixer_volume[addr][1] = right;
-       spin_unlock_irq(&dummy->mixer_lock);
        return change;
 }
 
@@ -773,10 +767,9 @@ static int snd_dummy_capsrc_get(struct snd_kcontrol *kcontrol,
        struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
        int addr = kcontrol->private_value;
 
-       spin_lock_irq(&dummy->mixer_lock);
+       guard(spinlock_irq)(&dummy->mixer_lock);
        ucontrol->value.integer.value[0] = dummy->capture_source[addr][0];
        ucontrol->value.integer.value[1] = dummy->capture_source[addr][1];
-       spin_unlock_irq(&dummy->mixer_lock);
        return 0;
 }
 
@@ -788,12 +781,11 @@ static int snd_dummy_capsrc_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
 
        left = ucontrol->value.integer.value[0] & 1;
        right = ucontrol->value.integer.value[1] & 1;
-       spin_lock_irq(&dummy->mixer_lock);
+       guard(spinlock_irq)(&dummy->mixer_lock);
        change = dummy->capture_source[addr][0] != left &&
                 dummy->capture_source[addr][1] != right;
        dummy->capture_source[addr][0] = left;
        dummy->capture_source[addr][1] = right;
-       spin_unlock_irq(&dummy->mixer_lock);
        return change;
 }