ALSA: spi/at73c213: 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>
This commit is contained in:
Takashi Iwai 2025-09-17 13:12:49 +02:00
parent 9fc4a3da9a
commit 7e18682bdb
1 changed files with 21 additions and 25 deletions

View File

@ -273,9 +273,8 @@ static int snd_at73c213_pcm_trigger(struct snd_pcm_substream *substream,
int cmd) int cmd)
{ {
struct snd_at73c213 *chip = snd_pcm_substream_chip(substream); struct snd_at73c213 *chip = snd_pcm_substream_chip(substream);
int retval = 0;
spin_lock(&chip->lock); guard(spinlock)(&chip->lock);
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
@ -288,13 +287,11 @@ static int snd_at73c213_pcm_trigger(struct snd_pcm_substream *substream,
break; break;
default: default:
dev_dbg(&chip->spi->dev, "spurious command %x\n", cmd); dev_dbg(&chip->spi->dev, "spurious command %x\n", cmd);
retval = -EINVAL; return -EINVAL;
break; break;
} }
spin_unlock(&chip->lock); return 0;
return retval;
} }
static snd_pcm_uframes_t static snd_pcm_uframes_t
@ -358,31 +355,30 @@ static irqreturn_t snd_at73c213_interrupt(int irq, void *dev_id)
int next_period; int next_period;
int retval = IRQ_NONE; int retval = IRQ_NONE;
spin_lock(&chip->lock); scoped_guard(spinlock, &chip->lock) {
block_size = frames_to_bytes(runtime, runtime->period_size);
status = ssc_readl(chip->ssc->regs, IMR);
block_size = frames_to_bytes(runtime, runtime->period_size); if (status & SSC_BIT(IMR_ENDTX)) {
status = ssc_readl(chip->ssc->regs, IMR); chip->period++;
if (chip->period == runtime->periods)
chip->period = 0;
next_period = chip->period + 1;
if (next_period == runtime->periods)
next_period = 0;
if (status & SSC_BIT(IMR_ENDTX)) { offset = block_size * next_period;
chip->period++;
if (chip->period == runtime->periods)
chip->period = 0;
next_period = chip->period + 1;
if (next_period == runtime->periods)
next_period = 0;
offset = block_size * next_period; ssc_writel(chip->ssc->regs, PDC_TNPR,
(long)runtime->dma_addr + offset);
ssc_writel(chip->ssc->regs, PDC_TNCR,
runtime->period_size * runtime->channels);
retval = IRQ_HANDLED;
}
ssc_writel(chip->ssc->regs, PDC_TNPR, ssc_readl(chip->ssc->regs, IMR);
(long)runtime->dma_addr + offset);
ssc_writel(chip->ssc->regs, PDC_TNCR,
runtime->period_size * runtime->channels);
retval = IRQ_HANDLED;
} }
ssc_readl(chip->ssc->regs, IMR);
spin_unlock(&chip->lock);
if (status & SSC_BIT(IMR_ENDTX)) if (status & SSC_BIT(IMR_ENDTX))
snd_pcm_period_elapsed(chip->substream); snd_pcm_period_elapsed(chip->substream);