ALSA: cs5535audio: 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-22-tiwai@suse.de
pull/476/head
Takashi Iwai 2025-08-29 16:42:56 +02:00
parent 0ba9da2d6f
commit e8eca9fec2
2 changed files with 12 additions and 14 deletions

View File

@ -176,9 +176,10 @@ static int snd_cs5535audio_mixer(struct cs5535audio *cs5535au)
static void process_bm0_irq(struct cs5535audio *cs5535au) static void process_bm0_irq(struct cs5535audio *cs5535au)
{ {
u8 bm_stat; u8 bm_stat;
spin_lock(&cs5535au->reg_lock);
bm_stat = cs_readb(cs5535au, ACC_BM0_STATUS); scoped_guard(spinlock, &cs5535au->reg_lock) {
spin_unlock(&cs5535au->reg_lock); bm_stat = cs_readb(cs5535au, ACC_BM0_STATUS);
}
if (bm_stat & EOP) { if (bm_stat & EOP) {
snd_pcm_period_elapsed(cs5535au->playback_substream); snd_pcm_period_elapsed(cs5535au->playback_substream);
} else { } else {
@ -191,9 +192,10 @@ static void process_bm0_irq(struct cs5535audio *cs5535au)
static void process_bm1_irq(struct cs5535audio *cs5535au) static void process_bm1_irq(struct cs5535audio *cs5535au)
{ {
u8 bm_stat; u8 bm_stat;
spin_lock(&cs5535au->reg_lock);
bm_stat = cs_readb(cs5535au, ACC_BM1_STATUS); scoped_guard(spinlock, &cs5535au->reg_lock) {
spin_unlock(&cs5535au->reg_lock); bm_stat = cs_readb(cs5535au, ACC_BM1_STATUS);
}
if (bm_stat & EOP) if (bm_stat & EOP)
snd_pcm_period_elapsed(cs5535au->capture_substream); snd_pcm_period_elapsed(cs5535au->capture_substream);
} }

View File

@ -150,10 +150,9 @@ static int cs5535audio_build_dma_packets(struct cs5535audio *cs5535au,
dma->substream = substream; dma->substream = substream;
dma->period_bytes = period_bytes; dma->period_bytes = period_bytes;
dma->periods = periods; dma->periods = periods;
spin_lock_irq(&cs5535au->reg_lock); guard(spinlock_irq)(&cs5535au->reg_lock);
dma->ops->disable_dma(cs5535au); dma->ops->disable_dma(cs5535au);
dma->ops->setup_prd(cs5535au, jmpprd_addr); dma->ops->setup_prd(cs5535au, jmpprd_addr);
spin_unlock_irq(&cs5535au->reg_lock);
return 0; return 0;
} }
@ -276,9 +275,8 @@ static int snd_cs5535audio_trigger(struct snd_pcm_substream *substream, int cmd)
{ {
struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream);
struct cs5535audio_dma *dma = substream->runtime->private_data; struct cs5535audio_dma *dma = substream->runtime->private_data;
int err = 0;
spin_lock(&cs5535au->reg_lock); guard(spinlock)(&cs5535au->reg_lock);
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
dma->ops->pause_dma(cs5535au); dma->ops->pause_dma(cs5535au);
@ -300,11 +298,9 @@ static int snd_cs5535audio_trigger(struct snd_pcm_substream *substream, int cmd)
break; break;
default: default:
dev_err(cs5535au->card->dev, "unhandled trigger\n"); dev_err(cs5535au->card->dev, "unhandled trigger\n");
err = -EINVAL; return -EINVAL;
break;
} }
spin_unlock(&cs5535au->reg_lock); return 0;
return err;
} }
static snd_pcm_uframes_t snd_cs5535audio_pcm_pointer(struct snd_pcm_substream static snd_pcm_uframes_t snd_cs5535audio_pcm_pointer(struct snd_pcm_substream