ALSA: als300: 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-8-tiwai@suse.depull/476/head
parent
d062d6977e
commit
f28745ab9f
|
|
@ -402,7 +402,7 @@ static int snd_als300_playback_prepare(struct snd_pcm_substream *substream)
|
||||||
unsigned short period_bytes = snd_pcm_lib_period_bytes(substream);
|
unsigned short period_bytes = snd_pcm_lib_period_bytes(substream);
|
||||||
unsigned short buffer_bytes = snd_pcm_lib_buffer_bytes(substream);
|
unsigned short buffer_bytes = snd_pcm_lib_buffer_bytes(substream);
|
||||||
|
|
||||||
spin_lock_irq(&chip->reg_lock);
|
guard(spinlock_irq)(&chip->reg_lock);
|
||||||
tmp = snd_als300_gcr_read(chip->port, PLAYBACK_CONTROL);
|
tmp = snd_als300_gcr_read(chip->port, PLAYBACK_CONTROL);
|
||||||
tmp &= ~TRANSFER_START;
|
tmp &= ~TRANSFER_START;
|
||||||
|
|
||||||
|
|
@ -419,7 +419,6 @@ static int snd_als300_playback_prepare(struct snd_pcm_substream *substream)
|
||||||
runtime->dma_addr);
|
runtime->dma_addr);
|
||||||
snd_als300_gcr_write(chip->port, PLAYBACK_END,
|
snd_als300_gcr_write(chip->port, PLAYBACK_END,
|
||||||
runtime->dma_addr + buffer_bytes - 1);
|
runtime->dma_addr + buffer_bytes - 1);
|
||||||
spin_unlock_irq(&chip->reg_lock);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -431,7 +430,7 @@ static int snd_als300_capture_prepare(struct snd_pcm_substream *substream)
|
||||||
unsigned short period_bytes = snd_pcm_lib_period_bytes(substream);
|
unsigned short period_bytes = snd_pcm_lib_period_bytes(substream);
|
||||||
unsigned short buffer_bytes = snd_pcm_lib_buffer_bytes(substream);
|
unsigned short buffer_bytes = snd_pcm_lib_buffer_bytes(substream);
|
||||||
|
|
||||||
spin_lock_irq(&chip->reg_lock);
|
guard(spinlock_irq)(&chip->reg_lock);
|
||||||
tmp = snd_als300_gcr_read(chip->port, RECORD_CONTROL);
|
tmp = snd_als300_gcr_read(chip->port, RECORD_CONTROL);
|
||||||
tmp &= ~TRANSFER_START;
|
tmp &= ~TRANSFER_START;
|
||||||
|
|
||||||
|
|
@ -448,7 +447,6 @@ static int snd_als300_capture_prepare(struct snd_pcm_substream *substream)
|
||||||
runtime->dma_addr);
|
runtime->dma_addr);
|
||||||
snd_als300_gcr_write(chip->port, RECORD_END,
|
snd_als300_gcr_write(chip->port, RECORD_END,
|
||||||
runtime->dma_addr + buffer_bytes - 1);
|
runtime->dma_addr + buffer_bytes - 1);
|
||||||
spin_unlock_irq(&chip->reg_lock);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -463,7 +461,7 @@ static int snd_als300_trigger(struct snd_pcm_substream *substream, int cmd)
|
||||||
data = substream->runtime->private_data;
|
data = substream->runtime->private_data;
|
||||||
reg = data->control_register;
|
reg = data->control_register;
|
||||||
|
|
||||||
spin_lock(&chip->reg_lock);
|
guard(spinlock)(&chip->reg_lock);
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case SNDRV_PCM_TRIGGER_START:
|
case SNDRV_PCM_TRIGGER_START:
|
||||||
case SNDRV_PCM_TRIGGER_RESUME:
|
case SNDRV_PCM_TRIGGER_RESUME:
|
||||||
|
|
@ -492,7 +490,6 @@ static int snd_als300_trigger(struct snd_pcm_substream *substream, int cmd)
|
||||||
snd_als300_dbgplay("TRIGGER INVALID\n");
|
snd_als300_dbgplay("TRIGGER INVALID\n");
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
}
|
}
|
||||||
spin_unlock(&chip->reg_lock);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -506,10 +503,10 @@ static snd_pcm_uframes_t snd_als300_pointer(struct snd_pcm_substream *substream)
|
||||||
data = substream->runtime->private_data;
|
data = substream->runtime->private_data;
|
||||||
period_bytes = snd_pcm_lib_period_bytes(substream);
|
period_bytes = snd_pcm_lib_period_bytes(substream);
|
||||||
|
|
||||||
spin_lock(&chip->reg_lock);
|
scoped_guard(spinlock, &chip->reg_lock) {
|
||||||
current_ptr = (u16) snd_als300_gcr_read(chip->port,
|
current_ptr = (u16) snd_als300_gcr_read(chip->port,
|
||||||
data->block_counter_register) + 4;
|
data->block_counter_register) + 4;
|
||||||
spin_unlock(&chip->reg_lock);
|
}
|
||||||
if (current_ptr > period_bytes)
|
if (current_ptr > period_bytes)
|
||||||
current_ptr = 0;
|
current_ptr = 0;
|
||||||
else
|
else
|
||||||
|
|
@ -563,10 +560,9 @@ static int snd_als300_new_pcm(struct snd_als300 *chip)
|
||||||
|
|
||||||
static void snd_als300_init(struct snd_als300 *chip)
|
static void snd_als300_init(struct snd_als300 *chip)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
spin_lock_irqsave(&chip->reg_lock, flags);
|
guard(spinlock_irqsave)(&chip->reg_lock);
|
||||||
chip->revision = (snd_als300_gcr_read(chip->port, MISC_CONTROL) >> 16)
|
chip->revision = (snd_als300_gcr_read(chip->port, MISC_CONTROL) >> 16)
|
||||||
& 0x0000000F;
|
& 0x0000000F;
|
||||||
/* Setup DRAM */
|
/* Setup DRAM */
|
||||||
|
|
@ -591,7 +587,6 @@ static void snd_als300_init(struct snd_als300 *chip)
|
||||||
tmp = snd_als300_gcr_read(chip->port, PLAYBACK_CONTROL);
|
tmp = snd_als300_gcr_read(chip->port, PLAYBACK_CONTROL);
|
||||||
snd_als300_gcr_write(chip->port, PLAYBACK_CONTROL,
|
snd_als300_gcr_write(chip->port, PLAYBACK_CONTROL,
|
||||||
tmp & ~TRANSFER_START);
|
tmp & ~TRANSFER_START);
|
||||||
spin_unlock_irqrestore(&chip->reg_lock, flags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int snd_als300_create(struct snd_card *card,
|
static int snd_als300_create(struct snd_card *card,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue