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

ALSA: mts64: 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/20250829150026.6379-12-tiwai@suse.de

+19 -38
+19 -38
sound/drivers/mts64.c
··· 432 432 { 433 433 struct mts64 *mts = snd_kcontrol_chip(kctl); 434 434 435 - spin_lock_irq(&mts->lock); 435 + guard(spinlock_irq)(&mts->lock); 436 436 uctl->value.integer.value[0] = mts->smpte_switch; 437 - spin_unlock_irq(&mts->lock); 438 437 439 438 return 0; 440 439 } ··· 444 445 struct snd_ctl_elem_value *uctl) 445 446 { 446 447 struct mts64 *mts = snd_kcontrol_chip(kctl); 447 - int changed = 0; 448 448 int val = !!uctl->value.integer.value[0]; 449 449 450 - spin_lock_irq(&mts->lock); 450 + guard(spinlock_irq)(&mts->lock); 451 451 if (mts->smpte_switch == val) 452 - goto __out; 452 + return 0; 453 453 454 - changed = 1; 455 454 mts->smpte_switch = val; 456 455 if (mts->smpte_switch) { 457 456 mts64_smpte_start(mts->pardev->port, ··· 459 462 } else { 460 463 mts64_smpte_stop(mts->pardev->port); 461 464 } 462 - __out: 463 - spin_unlock_irq(&mts->lock); 464 - return changed; 465 + return 1; 465 466 } 466 467 467 468 static const struct snd_kcontrol_new mts64_ctl_smpte_switch = { ··· 510 515 struct mts64 *mts = snd_kcontrol_chip(kctl); 511 516 int idx = kctl->private_value; 512 517 513 - spin_lock_irq(&mts->lock); 518 + guard(spinlock_irq)(&mts->lock); 514 519 uctl->value.integer.value[0] = mts->time[idx]; 515 - spin_unlock_irq(&mts->lock); 516 520 517 521 return 0; 518 522 } ··· 522 528 struct mts64 *mts = snd_kcontrol_chip(kctl); 523 529 int idx = kctl->private_value; 524 530 unsigned int time = uctl->value.integer.value[0] % 60; 525 - int changed = 0; 526 531 527 - spin_lock_irq(&mts->lock); 532 + guard(spinlock_irq)(&mts->lock); 528 533 if (mts->time[idx] != time) { 529 - changed = 1; 530 534 mts->time[idx] = time; 535 + return 1; 531 536 } 532 - spin_unlock_irq(&mts->lock); 533 537 534 - return changed; 538 + return 0; 535 539 } 536 540 537 541 static const struct snd_kcontrol_new mts64_ctl_smpte_time_hours = { ··· 592 600 { 593 601 struct mts64 *mts = snd_kcontrol_chip(kctl); 594 602 595 - spin_lock_irq(&mts->lock); 603 + guard(spinlock_irq)(&mts->lock); 596 604 uctl->value.enumerated.item[0] = mts->fps; 597 - spin_unlock_irq(&mts->lock); 598 605 599 606 return 0; 600 607 } ··· 602 611 struct snd_ctl_elem_value *uctl) 603 612 { 604 613 struct mts64 *mts = snd_kcontrol_chip(kctl); 605 - int changed = 0; 606 614 607 615 if (uctl->value.enumerated.item[0] >= 5) 608 616 return -EINVAL; 609 - spin_lock_irq(&mts->lock); 617 + guard(spinlock_irq)(&mts->lock); 610 618 if (mts->fps != uctl->value.enumerated.item[0]) { 611 - changed = 1; 612 619 mts->fps = uctl->value.enumerated.item[0]; 620 + return 1; 613 621 } 614 - spin_unlock_irq(&mts->lock); 615 622 616 - return changed; 623 + return 0; 617 624 } 618 625 619 626 static const struct snd_kcontrol_new mts64_ctl_smpte_fps = { ··· 676 687 static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream) 677 688 { 678 689 struct mts64 *mts = substream->rmidi->private_data; 679 - unsigned long flags; 680 690 681 691 --(mts->open_count); 682 692 if (mts->open_count == 0) { 683 693 /* We need the spinlock_irqsave here because we can still 684 694 have IRQs at this point */ 685 - spin_lock_irqsave(&mts->lock, flags); 686 - mts64_device_close(mts); 687 - spin_unlock_irqrestore(&mts->lock, flags); 695 + scoped_guard(spinlock_irqsave, &mts->lock) { 696 + mts64_device_close(mts); 697 + } 688 698 689 699 msleep(500); 690 700 ··· 698 710 { 699 711 struct mts64 *mts = substream->rmidi->private_data; 700 712 u8 data; 701 - unsigned long flags; 702 713 703 - spin_lock_irqsave(&mts->lock, flags); 714 + guard(spinlock_irqsave)(&mts->lock); 704 715 while (snd_rawmidi_transmit_peek(substream, &data, 1) == 1) { 705 716 mts64_write_midi(mts, data, substream->number+1); 706 717 snd_rawmidi_transmit_ack(substream, 1); 707 718 } 708 - spin_unlock_irqrestore(&mts->lock, flags); 709 719 } 710 720 711 721 static void snd_mts64_rawmidi_input_trigger(struct snd_rawmidi_substream *substream, 712 722 int up) 713 723 { 714 724 struct mts64 *mts = substream->rmidi->private_data; 715 - unsigned long flags; 716 725 717 - spin_lock_irqsave(&mts->lock, flags); 726 + guard(spinlock_irqsave)(&mts->lock); 718 727 if (up) 719 728 mts->mode[substream->number] |= MTS64_MODE_INPUT_TRIGGERED; 720 729 else 721 730 mts->mode[substream->number] &= ~MTS64_MODE_INPUT_TRIGGERED; 722 - 723 - spin_unlock_irqrestore(&mts->lock, flags); 724 731 } 725 732 726 733 static const struct snd_rawmidi_ops snd_mts64_rawmidi_output_ops = { ··· 802 819 if (!mts) 803 820 return; 804 821 805 - spin_lock(&mts->lock); 822 + guard(spinlock)(&mts->lock); 806 823 ret = mts64_read(mts->pardev->port); 807 824 data = ret & 0x00ff; 808 825 status = ret >> 8; ··· 811 828 mts->current_midi_input_port = mts64_map_midi_input(data); 812 829 } else { 813 830 if (mts->current_midi_input_port == -1) 814 - goto __out; 831 + return; 815 832 substream = mts->midi_input_substream[mts->current_midi_input_port]; 816 833 if (mts->mode[substream->number] & MTS64_MODE_INPUT_TRIGGERED) 817 834 snd_rawmidi_receive(substream, &data, 1); 818 835 } 819 - __out: 820 - spin_unlock(&mts->lock); 821 836 } 822 837 823 838 static void snd_mts64_attach(struct parport *p)