mirror of https://github.com/torvalds/linux.git
ALSA: sis7019: Use guard() for spin locks
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
This commit is contained in:
parent
e7b99fdddf
commit
8e11f94ea1
|
|
@ -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 @@ static struct voice *__sis_alloc_playback_voice(struct sis7019 *sis)
|
|||
|
||||
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);
|
||||
scoped_guard(spinlock_irqsave, &sis->voice_lock) {
|
||||
voice->timing = __sis_alloc_playback_voice(sis);
|
||||
if (voice->timing)
|
||||
__sis_map_silence(sis);
|
||||
spin_unlock_irqrestore(&sis->voice_lock, flags);
|
||||
}
|
||||
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);
|
||||
scoped_guard(spinlock_irqsave, &sis->voice_lock) {
|
||||
if (voice->flags & VOICE_IN_USE)
|
||||
voice = NULL;
|
||||
else
|
||||
voice->flags |= VOICE_IN_USE;
|
||||
spin_unlock_irqrestore(&sis->voice_lock, flags);
|
||||
}
|
||||
|
||||
if (!voice)
|
||||
return -EAGAIN;
|
||||
|
|
|
|||
Loading…
Reference in New Issue