mirror of https://github.com/torvalds/linux.git
ALSA: als4000: 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-9-tiwai@suse.de
This commit is contained in:
parent
f28745ab9f
commit
fe0f9c2e72
|
|
@ -369,14 +369,14 @@ static int snd_als4000_capture_prepare(struct snd_pcm_substream *substream)
|
||||||
count >>= 1;
|
count >>= 1;
|
||||||
count--;
|
count--;
|
||||||
|
|
||||||
spin_lock_irq(&chip->reg_lock);
|
scoped_guard(spinlock_irq, &chip->reg_lock) {
|
||||||
snd_als4000_set_rate(chip, runtime->rate);
|
snd_als4000_set_rate(chip, runtime->rate);
|
||||||
snd_als4000_set_capture_dma(chip, runtime->dma_addr, size);
|
snd_als4000_set_capture_dma(chip, runtime->dma_addr, size);
|
||||||
spin_unlock_irq(&chip->reg_lock);
|
}
|
||||||
spin_lock_irq(&chip->mixer_lock);
|
scoped_guard(spinlock_irq, &chip->mixer_lock) {
|
||||||
snd_als4_cr_write(chip, ALS4K_CR1C_FIFO2_BLOCK_LENGTH_LO, count & 0xff);
|
snd_als4_cr_write(chip, ALS4K_CR1C_FIFO2_BLOCK_LENGTH_LO, count & 0xff);
|
||||||
snd_als4_cr_write(chip, ALS4K_CR1D_FIFO2_BLOCK_LENGTH_HI, count >> 8);
|
snd_als4_cr_write(chip, ALS4K_CR1D_FIFO2_BLOCK_LENGTH_HI, count >> 8);
|
||||||
spin_unlock_irq(&chip->mixer_lock);
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -402,7 +402,7 @@ static int snd_als4000_playback_prepare(struct snd_pcm_substream *substream)
|
||||||
* reordering, ...). Something seems to get enabled on playback
|
* reordering, ...). Something seems to get enabled on playback
|
||||||
* that I haven't found out how to disable again, which then causes
|
* that I haven't found out how to disable again, which then causes
|
||||||
* the switching pops to reach the speakers the next time here. */
|
* the switching pops to reach the speakers the next time here. */
|
||||||
spin_lock_irq(&chip->reg_lock);
|
guard(spinlock_irq)(&chip->reg_lock);
|
||||||
snd_als4000_set_rate(chip, runtime->rate);
|
snd_als4000_set_rate(chip, runtime->rate);
|
||||||
snd_als4000_set_playback_dma(chip, runtime->dma_addr, size);
|
snd_als4000_set_playback_dma(chip, runtime->dma_addr, size);
|
||||||
|
|
||||||
|
|
@ -413,7 +413,6 @@ static int snd_als4000_playback_prepare(struct snd_pcm_substream *substream)
|
||||||
snd_sbdsp_command(chip, count & 0xff);
|
snd_sbdsp_command(chip, count & 0xff);
|
||||||
snd_sbdsp_command(chip, count >> 8);
|
snd_sbdsp_command(chip, count >> 8);
|
||||||
snd_sbdsp_command(chip, playback_cmd(chip).dma_off);
|
snd_sbdsp_command(chip, playback_cmd(chip).dma_off);
|
||||||
spin_unlock_irq(&chip->reg_lock);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -429,7 +428,7 @@ static int snd_als4000_capture_trigger(struct snd_pcm_substream *substream, int
|
||||||
Probably need to take reg_lock as outer (or inner??) lock, too.
|
Probably need to take reg_lock as outer (or inner??) lock, too.
|
||||||
(or serialize both lock operations? probably not, though... - racy?)
|
(or serialize both lock operations? probably not, though... - racy?)
|
||||||
*/
|
*/
|
||||||
spin_lock(&chip->mixer_lock);
|
guard(spinlock)(&chip->mixer_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:
|
||||||
|
|
@ -447,7 +446,6 @@ static int snd_als4000_capture_trigger(struct snd_pcm_substream *substream, int
|
||||||
result = -EINVAL;
|
result = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
spin_unlock(&chip->mixer_lock);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -456,7 +454,7 @@ static int snd_als4000_playback_trigger(struct snd_pcm_substream *substream, int
|
||||||
struct snd_sb *chip = snd_pcm_substream_chip(substream);
|
struct snd_sb *chip = snd_pcm_substream_chip(substream);
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
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:
|
||||||
|
|
@ -472,7 +470,6 @@ static int snd_als4000_playback_trigger(struct snd_pcm_substream *substream, int
|
||||||
result = -EINVAL;
|
result = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
spin_unlock(&chip->reg_lock);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -481,9 +478,9 @@ static snd_pcm_uframes_t snd_als4000_capture_pointer(struct snd_pcm_substream *s
|
||||||
struct snd_sb *chip = snd_pcm_substream_chip(substream);
|
struct snd_sb *chip = snd_pcm_substream_chip(substream);
|
||||||
unsigned int result;
|
unsigned int result;
|
||||||
|
|
||||||
spin_lock(&chip->reg_lock);
|
scoped_guard(spinlock, &chip->reg_lock) {
|
||||||
result = snd_als4k_gcr_read(chip, ALS4K_GCRA4_FIFO2_CURRENT_ADDR);
|
result = snd_als4k_gcr_read(chip, ALS4K_GCRA4_FIFO2_CURRENT_ADDR);
|
||||||
spin_unlock(&chip->reg_lock);
|
}
|
||||||
result &= 0xffff;
|
result &= 0xffff;
|
||||||
return bytes_to_frames( substream->runtime, result );
|
return bytes_to_frames( substream->runtime, result );
|
||||||
}
|
}
|
||||||
|
|
@ -493,9 +490,9 @@ static snd_pcm_uframes_t snd_als4000_playback_pointer(struct snd_pcm_substream *
|
||||||
struct snd_sb *chip = snd_pcm_substream_chip(substream);
|
struct snd_sb *chip = snd_pcm_substream_chip(substream);
|
||||||
unsigned result;
|
unsigned result;
|
||||||
|
|
||||||
spin_lock(&chip->reg_lock);
|
scoped_guard(spinlock, &chip->reg_lock) {
|
||||||
result = snd_als4k_gcr_read(chip, ALS4K_GCRA0_FIFO1_CURRENT_ADDR);
|
result = snd_als4k_gcr_read(chip, ALS4K_GCRA0_FIFO1_CURRENT_ADDR);
|
||||||
spin_unlock(&chip->reg_lock);
|
}
|
||||||
result &= 0xffff;
|
result &= 0xffff;
|
||||||
return bytes_to_frames( substream->runtime, result );
|
return bytes_to_frames( substream->runtime, result );
|
||||||
}
|
}
|
||||||
|
|
@ -536,10 +533,10 @@ static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id)
|
||||||
snd_als4k_iobase_writeb(chip->alt_port,
|
snd_als4k_iobase_writeb(chip->alt_port,
|
||||||
ALS4K_IOB_0E_IRQTYPE_SB_CR1E_MPU, pci_irqstatus);
|
ALS4K_IOB_0E_IRQTYPE_SB_CR1E_MPU, pci_irqstatus);
|
||||||
|
|
||||||
spin_lock(&chip->mixer_lock);
|
scoped_guard(spinlock, &chip->mixer_lock) {
|
||||||
/* SPECS_PAGE: 20 */
|
/* SPECS_PAGE: 20 */
|
||||||
sb_irqstatus = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS);
|
sb_irqstatus = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS);
|
||||||
spin_unlock(&chip->mixer_lock);
|
}
|
||||||
|
|
||||||
if (sb_irqstatus & SB_IRQTYPE_8BIT)
|
if (sb_irqstatus & SB_IRQTYPE_8BIT)
|
||||||
snd_sb_ack_8bit(chip);
|
snd_sb_ack_8bit(chip);
|
||||||
|
|
@ -709,7 +706,7 @@ static void snd_als4000_configure(struct snd_sb *chip)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* do some more configuration */
|
/* do some more configuration */
|
||||||
spin_lock_irq(&chip->mixer_lock);
|
scoped_guard(spinlock_irq, &chip->mixer_lock) {
|
||||||
tmp = snd_als4_cr_read(chip, ALS4K_CR0_SB_CONFIG);
|
tmp = snd_als4_cr_read(chip, ALS4K_CR0_SB_CONFIG);
|
||||||
snd_als4_cr_write(chip, ALS4K_CR0_SB_CONFIG,
|
snd_als4_cr_write(chip, ALS4K_CR0_SB_CONFIG,
|
||||||
tmp|ALS4K_CR0_MX80_81_REG_WRITE_ENABLE);
|
tmp|ALS4K_CR0_MX80_81_REG_WRITE_ENABLE);
|
||||||
|
|
@ -718,9 +715,9 @@ static void snd_als4000_configure(struct snd_sb *chip)
|
||||||
snd_sbmixer_write(chip, SB_DSP4_DMASETUP, SB_DMASETUP_DMA0);
|
snd_sbmixer_write(chip, SB_DSP4_DMASETUP, SB_DMASETUP_DMA0);
|
||||||
snd_als4_cr_write(chip, ALS4K_CR0_SB_CONFIG,
|
snd_als4_cr_write(chip, ALS4K_CR0_SB_CONFIG,
|
||||||
tmp & ~ALS4K_CR0_MX80_81_REG_WRITE_ENABLE);
|
tmp & ~ALS4K_CR0_MX80_81_REG_WRITE_ENABLE);
|
||||||
spin_unlock_irq(&chip->mixer_lock);
|
}
|
||||||
|
|
||||||
spin_lock_irq(&chip->reg_lock);
|
guard(spinlock_irq)(&chip->reg_lock);
|
||||||
/* enable interrupts */
|
/* enable interrupts */
|
||||||
snd_als4k_gcr_write(chip, ALS4K_GCR8C_MISC_CTRL,
|
snd_als4k_gcr_write(chip, ALS4K_GCR8C_MISC_CTRL,
|
||||||
ALS4K_GCR8C_IRQ_MASK_CTRL_ENABLE);
|
ALS4K_GCR8C_IRQ_MASK_CTRL_ENABLE);
|
||||||
|
|
@ -731,7 +728,6 @@ static void snd_als4000_configure(struct snd_sb *chip)
|
||||||
/* enable burst mode to prevent dropouts during high PCI bus usage */
|
/* enable burst mode to prevent dropouts during high PCI bus usage */
|
||||||
snd_als4k_gcr_write(chip, ALS4K_GCR99_DMA_EMULATION_CTRL,
|
snd_als4k_gcr_write(chip, ALS4K_GCR99_DMA_EMULATION_CTRL,
|
||||||
(snd_als4k_gcr_read(chip, ALS4K_GCR99_DMA_EMULATION_CTRL) & ~0x07) | 0x04);
|
(snd_als4k_gcr_read(chip, ALS4K_GCR99_DMA_EMULATION_CTRL) & ~0x07) | 0x04);
|
||||||
spin_unlock_irq(&chip->reg_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SUPPORT_JOYSTICK
|
#ifdef SUPPORT_JOYSTICK
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue