Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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.de

+8 -13
+8 -13
sound/pci/als300.c
··· 402 402 unsigned short period_bytes = snd_pcm_lib_period_bytes(substream); 403 403 unsigned short buffer_bytes = snd_pcm_lib_buffer_bytes(substream); 404 404 405 - spin_lock_irq(&chip->reg_lock); 405 + guard(spinlock_irq)(&chip->reg_lock); 406 406 tmp = snd_als300_gcr_read(chip->port, PLAYBACK_CONTROL); 407 407 tmp &= ~TRANSFER_START; 408 408 ··· 419 419 runtime->dma_addr); 420 420 snd_als300_gcr_write(chip->port, PLAYBACK_END, 421 421 runtime->dma_addr + buffer_bytes - 1); 422 - spin_unlock_irq(&chip->reg_lock); 423 422 return 0; 424 423 } 425 424 ··· 430 431 unsigned short period_bytes = snd_pcm_lib_period_bytes(substream); 431 432 unsigned short buffer_bytes = snd_pcm_lib_buffer_bytes(substream); 432 433 433 - spin_lock_irq(&chip->reg_lock); 434 + guard(spinlock_irq)(&chip->reg_lock); 434 435 tmp = snd_als300_gcr_read(chip->port, RECORD_CONTROL); 435 436 tmp &= ~TRANSFER_START; 436 437 ··· 447 448 runtime->dma_addr); 448 449 snd_als300_gcr_write(chip->port, RECORD_END, 449 450 runtime->dma_addr + buffer_bytes - 1); 450 - spin_unlock_irq(&chip->reg_lock); 451 451 return 0; 452 452 } 453 453 ··· 461 463 data = substream->runtime->private_data; 462 464 reg = data->control_register; 463 465 464 - spin_lock(&chip->reg_lock); 466 + guard(spinlock)(&chip->reg_lock); 465 467 switch (cmd) { 466 468 case SNDRV_PCM_TRIGGER_START: 467 469 case SNDRV_PCM_TRIGGER_RESUME: ··· 490 492 snd_als300_dbgplay("TRIGGER INVALID\n"); 491 493 ret = -EINVAL; 492 494 } 493 - spin_unlock(&chip->reg_lock); 494 495 return ret; 495 496 } 496 497 ··· 503 506 data = substream->runtime->private_data; 504 507 period_bytes = snd_pcm_lib_period_bytes(substream); 505 508 506 - spin_lock(&chip->reg_lock); 507 - current_ptr = (u16) snd_als300_gcr_read(chip->port, 508 - data->block_counter_register) + 4; 509 - spin_unlock(&chip->reg_lock); 509 + scoped_guard(spinlock, &chip->reg_lock) { 510 + current_ptr = (u16) snd_als300_gcr_read(chip->port, 511 + data->block_counter_register) + 4; 512 + } 510 513 if (current_ptr > period_bytes) 511 514 current_ptr = 0; 512 515 else ··· 560 563 561 564 static void snd_als300_init(struct snd_als300 *chip) 562 565 { 563 - unsigned long flags; 564 566 u32 tmp; 565 567 566 - spin_lock_irqsave(&chip->reg_lock, flags); 568 + guard(spinlock_irqsave)(&chip->reg_lock); 567 569 chip->revision = (snd_als300_gcr_read(chip->port, MISC_CONTROL) >> 16) 568 570 & 0x0000000F; 569 571 /* Setup DRAM */ ··· 587 591 tmp = snd_als300_gcr_read(chip->port, PLAYBACK_CONTROL); 588 592 snd_als300_gcr_write(chip->port, PLAYBACK_CONTROL, 589 593 tmp & ~TRANSFER_START); 590 - spin_unlock_irqrestore(&chip->reg_lock, flags); 591 594 } 592 595 593 596 static int snd_als300_create(struct snd_card *card,