]> www.infradead.org Git - users/hch/misc.git/commitdiff
ALSA: sis7019: Use guard() for spin locks
authorTakashi Iwai <tiwai@suse.de>
Fri, 29 Aug 2025 14:43:30 +0000 (16:43 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 1 Sep 2025 11:52:42 +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-56-tiwai@suse.de
sound/pci/sis7019.c

index a1341af8c41feb696666dbbe2bd05db769b10d18..4be085d27712ec86069e9eb71c096b59f93359ca 100644 (file)
@@ -383,9 +383,7 @@ static void __sis_unmap_silence(struct sis7019 *sis)
 
 static void sis_free_voice(struct sis7019 *sis, struct voice *voice)
 {
-       unsigned long flags;
-
-       spin_lock_irqsave(&sis->voice_lock, flags);
+       guard(spinlock_irqsave)(&sis->voice_lock);
        if (voice->timing) {
                __sis_unmap_silence(sis);
                voice->timing->flags &= ~(VOICE_IN_USE | VOICE_SSO_TIMING |
@@ -393,7 +391,6 @@ static void sis_free_voice(struct sis7019 *sis, struct voice *voice)
                voice->timing = NULL;
        }
        voice->flags &= ~(VOICE_IN_USE | VOICE_SSO_TIMING | VOICE_SYNC_TIMING);
-       spin_unlock_irqrestore(&sis->voice_lock, flags);
 }
 
 static struct voice *__sis_alloc_playback_voice(struct sis7019 *sis)
@@ -417,14 +414,8 @@ found_one:
 
 static struct voice *sis_alloc_playback_voice(struct sis7019 *sis)
 {
-       struct voice *voice;
-       unsigned long flags;
-
-       spin_lock_irqsave(&sis->voice_lock, flags);
-       voice = __sis_alloc_playback_voice(sis);
-       spin_unlock_irqrestore(&sis->voice_lock, flags);
-
-       return voice;
+       guard(spinlock_irqsave)(&sis->voice_lock);
+       return __sis_alloc_playback_voice(sis);
 }
 
 static int sis_alloc_timing_voice(struct snd_pcm_substream *substream,
@@ -434,7 +425,6 @@ static int sis_alloc_timing_voice(struct snd_pcm_substream *substream,
        struct snd_pcm_runtime *runtime = substream->runtime;
        struct voice *voice = runtime->private_data;
        unsigned int period_size, buffer_size;
-       unsigned long flags;
        int needed;
 
        /* If there are one or two periods per buffer, we don't need a
@@ -447,11 +437,11 @@ static int sis_alloc_timing_voice(struct snd_pcm_substream *substream,
                        period_size != (buffer_size / 2));
 
        if (needed && !voice->timing) {
-               spin_lock_irqsave(&sis->voice_lock, flags);
-               voice->timing = __sis_alloc_playback_voice(sis);
-               if (voice->timing)
-                       __sis_map_silence(sis);
-               spin_unlock_irqrestore(&sis->voice_lock, flags);
+               scoped_guard(spinlock_irqsave, &sis->voice_lock) {
+                       voice->timing = __sis_alloc_playback_voice(sis);
+                       if (voice->timing)
+                               __sis_map_silence(sis);
+               }
                if (!voice->timing)
                        return -ENOMEM;
                voice->timing->substream = substream;
@@ -645,17 +635,16 @@ static int sis_capture_open(struct snd_pcm_substream *substream)
        struct sis7019 *sis = snd_pcm_substream_chip(substream);
        struct snd_pcm_runtime *runtime = substream->runtime;
        struct voice *voice = &sis->capture_voice;
-       unsigned long flags;
 
        /* FIXME: The driver only supports recording from one channel
         * at the moment, but it could support more.
         */
-       spin_lock_irqsave(&sis->voice_lock, flags);
-       if (voice->flags & VOICE_IN_USE)
-               voice = NULL;
-       else
-               voice->flags |= VOICE_IN_USE;
-       spin_unlock_irqrestore(&sis->voice_lock, flags);
+       scoped_guard(spinlock_irqsave, &sis->voice_lock) {
+               if (voice->flags & VOICE_IN_USE)
+                       voice = NULL;
+               else
+                       voice->flags |= VOICE_IN_USE;
+       }
 
        if (!voice)
                return -EAGAIN;