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

ALSA: korg1212: 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-39-tiwai@suse.de

+58 -110
+58 -110
sound/pci/korg1212/korg1212.c
··· 568 568 569 569 static void snd_korg1212_SendStopAndWait(struct snd_korg1212 *korg1212) 570 570 { 571 - unsigned long flags; 572 - spin_lock_irqsave(&korg1212->lock, flags); 573 - snd_korg1212_SendStop(korg1212); 574 - spin_unlock_irqrestore(&korg1212->lock, flags); 571 + scoped_guard(spinlock_irqsave, &korg1212->lock) { 572 + snd_korg1212_SendStop(korg1212); 573 + } 575 574 wait_event_timeout(korg1212->wait, !korg1212->dsp_stop_processing, HZ); 576 575 } 577 576 578 577 static int snd_korg1212_TurnOnIdleMonitor(struct snd_korg1212 *korg1212) 579 578 { 580 - unsigned long flags; 581 - int rc; 582 - 583 579 udelay(INTERCOMMAND_DELAY); 584 - spin_lock_irqsave(&korg1212->lock, flags); 580 + guard(spinlock_irqsave)(&korg1212->lock); 585 581 korg1212->idleMonitorOn = 1; 586 - rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, 587 - K1212_MODE_MonitorOn, 0, 0, 0); 588 - spin_unlock_irqrestore(&korg1212->lock, flags); 589 - return rc; 582 + return snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, 583 + K1212_MODE_MonitorOn, 0, 0, 0); 590 584 } 591 585 592 586 static void snd_korg1212_TurnOffIdleMonitor(struct snd_korg1212 *korg1212) ··· 832 838 u16 controlValue; // this keeps the current value to be written to 833 839 // the card's eeprom control register. 834 840 u16 count; 835 - unsigned long flags; 836 841 837 842 K1212_DEBUG_PRINTK("K1212_DEBUG: WriteADCSensivity [%s]\n", 838 843 stateName[korg1212->cardState]); ··· 852 859 } else 853 860 monModeSet = 0; 854 861 855 - spin_lock_irqsave(&korg1212->lock, flags); 862 + guard(spinlock_irqsave)(&korg1212->lock); 856 863 857 864 // ---------------------------------------------------------------------------- 858 865 // we are about to send new values to the card, so clear the new values queued ··· 961 968 rc, stateName[korg1212->cardState]); 962 969 } 963 970 964 - spin_unlock_irqrestore(&korg1212->lock, flags); 965 - 966 971 return 1; 967 972 } 968 973 ··· 1052 1061 if (!doorbellValue) 1053 1062 return IRQ_NONE; 1054 1063 1055 - spin_lock(&korg1212->lock); 1064 + guard(spinlock)(&korg1212->lock); 1056 1065 1057 1066 writel(doorbellValue, korg1212->inDoorbellPtr); 1058 1067 ··· 1129 1138 } 1130 1139 1131 1140 korg1212->inIRQ--; 1132 - 1133 - spin_unlock(&korg1212->lock); 1134 1141 1135 1142 return IRQ_HANDLED; 1136 1143 } ··· 1315 1326 1316 1327 static int snd_korg1212_playback_open(struct snd_pcm_substream *substream) 1317 1328 { 1318 - unsigned long flags; 1319 1329 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); 1320 1330 struct snd_pcm_runtime *runtime = substream->runtime; 1321 1331 ··· 1326 1338 runtime->hw = snd_korg1212_playback_info; 1327 1339 snd_pcm_set_runtime_buffer(substream, korg1212->dma_play); 1328 1340 1329 - spin_lock_irqsave(&korg1212->lock, flags); 1330 - 1331 - korg1212->playback_substream = substream; 1332 - korg1212->playback_pid = current->pid; 1333 - korg1212->periodsize = K1212_PERIODS; 1334 - korg1212->channels = K1212_CHANNELS; 1335 - korg1212->errorcnt = 0; 1336 - 1337 - spin_unlock_irqrestore(&korg1212->lock, flags); 1341 + scoped_guard(spinlock_irqsave, &korg1212->lock) { 1342 + korg1212->playback_substream = substream; 1343 + korg1212->playback_pid = current->pid; 1344 + korg1212->periodsize = K1212_PERIODS; 1345 + korg1212->channels = K1212_CHANNELS; 1346 + korg1212->errorcnt = 0; 1347 + } 1338 1348 1339 1349 snd_pcm_hw_constraint_single(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 1340 1350 kPlayBufferFrames); ··· 1343 1357 1344 1358 static int snd_korg1212_capture_open(struct snd_pcm_substream *substream) 1345 1359 { 1346 - unsigned long flags; 1347 1360 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); 1348 1361 struct snd_pcm_runtime *runtime = substream->runtime; 1349 1362 ··· 1354 1369 runtime->hw = snd_korg1212_capture_info; 1355 1370 snd_pcm_set_runtime_buffer(substream, korg1212->dma_rec); 1356 1371 1357 - spin_lock_irqsave(&korg1212->lock, flags); 1358 - 1359 - korg1212->capture_substream = substream; 1360 - korg1212->capture_pid = current->pid; 1361 - korg1212->periodsize = K1212_PERIODS; 1362 - korg1212->channels = K1212_CHANNELS; 1363 - 1364 - spin_unlock_irqrestore(&korg1212->lock, flags); 1372 + scoped_guard(spinlock_irqsave, &korg1212->lock) { 1373 + korg1212->capture_substream = substream; 1374 + korg1212->capture_pid = current->pid; 1375 + korg1212->periodsize = K1212_PERIODS; 1376 + korg1212->channels = K1212_CHANNELS; 1377 + } 1365 1378 1366 1379 snd_pcm_hw_constraint_single(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 1367 1380 kPlayBufferFrames); ··· 1368 1385 1369 1386 static int snd_korg1212_playback_close(struct snd_pcm_substream *substream) 1370 1387 { 1371 - unsigned long flags; 1372 1388 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); 1373 1389 1374 1390 K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_close [%s]\n", ··· 1375 1393 1376 1394 snd_korg1212_silence(korg1212, 0, K1212_MAX_SAMPLES, 0, korg1212->channels * 2); 1377 1395 1378 - spin_lock_irqsave(&korg1212->lock, flags); 1379 - 1380 - korg1212->playback_pid = -1; 1381 - korg1212->playback_substream = NULL; 1382 - korg1212->periodsize = 0; 1383 - 1384 - spin_unlock_irqrestore(&korg1212->lock, flags); 1396 + scoped_guard(spinlock_irqsave, &korg1212->lock) { 1397 + korg1212->playback_pid = -1; 1398 + korg1212->playback_substream = NULL; 1399 + korg1212->periodsize = 0; 1400 + } 1385 1401 1386 1402 snd_korg1212_CloseCard(korg1212); 1387 1403 return 0; ··· 1387 1407 1388 1408 static int snd_korg1212_capture_close(struct snd_pcm_substream *substream) 1389 1409 { 1390 - unsigned long flags; 1391 1410 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); 1392 1411 1393 1412 K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_close [%s]\n", 1394 1413 stateName[korg1212->cardState]); 1395 1414 1396 - spin_lock_irqsave(&korg1212->lock, flags); 1397 - 1398 - korg1212->capture_pid = -1; 1399 - korg1212->capture_substream = NULL; 1400 - korg1212->periodsize = 0; 1401 - 1402 - spin_unlock_irqrestore(&korg1212->lock, flags); 1415 + scoped_guard(spinlock_irqsave, &korg1212->lock) { 1416 + korg1212->capture_pid = -1; 1417 + korg1212->capture_substream = NULL; 1418 + korg1212->periodsize = 0; 1419 + } 1403 1420 1404 1421 snd_korg1212_CloseCard(korg1212); 1405 1422 return 0; ··· 1422 1445 static int snd_korg1212_hw_params(struct snd_pcm_substream *substream, 1423 1446 struct snd_pcm_hw_params *params) 1424 1447 { 1425 - unsigned long flags; 1426 1448 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); 1427 1449 int err; 1428 1450 pid_t this_pid; ··· 1430 1454 K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_hw_params [%s]\n", 1431 1455 stateName[korg1212->cardState]); 1432 1456 1433 - spin_lock_irqsave(&korg1212->lock, flags); 1457 + guard(spinlock_irqsave)(&korg1212->lock); 1434 1458 1435 1459 if (substream->pstr->stream == SNDRV_PCM_STREAM_PLAYBACK) { 1436 1460 this_pid = korg1212->playback_pid; ··· 1448 1472 */ 1449 1473 1450 1474 if ((int)params_rate(params) != korg1212->clkRate) { 1451 - spin_unlock_irqrestore(&korg1212->lock, flags); 1452 1475 _snd_pcm_hw_param_setempty(params, SNDRV_PCM_HW_PARAM_RATE); 1453 1476 return -EBUSY; 1454 1477 } 1455 1478 1456 - spin_unlock_irqrestore(&korg1212->lock, flags); 1457 1479 return 0; 1458 1480 } 1459 1481 1460 1482 err = snd_korg1212_SetRate(korg1212, params_rate(params)); 1461 - if (err < 0) { 1462 - spin_unlock_irqrestore(&korg1212->lock, flags); 1483 + if (err < 0) 1463 1484 return err; 1464 - } 1465 1485 1466 1486 korg1212->channels = params_channels(params); 1467 1487 korg1212->periodsize = K1212_PERIOD_BYTES; 1468 - 1469 - spin_unlock_irqrestore(&korg1212->lock, flags); 1470 1488 1471 1489 return 0; 1472 1490 } ··· 1481 1511 K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare [%s]\n", 1482 1512 stateName[korg1212->cardState]); 1483 1513 1484 - spin_lock_irq(&korg1212->lock); 1514 + guard(spinlock_irq)(&korg1212->lock); 1485 1515 korg1212->dsp_stop_processing = 0; 1486 1516 1487 1517 rc = snd_korg1212_SetupForPlay(korg1212); 1488 1518 1489 1519 korg1212->currentBuffer = 0; 1490 - 1491 - spin_unlock_irq(&korg1212->lock); 1492 1520 1493 1521 return rc ? -EINVAL : 0; 1494 1522 } ··· 1500 1532 K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger [%s] cmd=%d\n", 1501 1533 stateName[korg1212->cardState], cmd); 1502 1534 1503 - spin_lock(&korg1212->lock); 1535 + guard(spinlock)(&korg1212->lock); 1504 1536 switch (cmd) { 1505 1537 case SNDRV_PCM_TRIGGER_START: 1506 1538 /* ··· 1528 1560 rc = 1; 1529 1561 break; 1530 1562 } 1531 - spin_unlock(&korg1212->lock); 1532 1563 return rc ? -EINVAL : 0; 1533 1564 } 1534 1565 ··· 1627 1660 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); 1628 1661 int i = kcontrol->private_value; 1629 1662 1630 - spin_lock_irq(&korg1212->lock); 1663 + guard(spinlock_irq)(&korg1212->lock); 1631 1664 1632 1665 u->value.integer.value[0] = korg1212->volumePhase[i]; 1633 1666 1634 1667 if (i >= 8) 1635 1668 u->value.integer.value[1] = korg1212->volumePhase[i+1]; 1636 - 1637 - spin_unlock_irq(&korg1212->lock); 1638 1669 1639 1670 return 0; 1640 1671 } ··· 1644 1679 int change = 0; 1645 1680 int i, val; 1646 1681 1647 - spin_lock_irq(&korg1212->lock); 1682 + guard(spinlock_irq)(&korg1212->lock); 1648 1683 1649 1684 i = kcontrol->private_value; 1650 1685 ··· 1670 1705 } 1671 1706 } 1672 1707 1673 - spin_unlock_irq(&korg1212->lock); 1674 - 1675 1708 return change; 1676 1709 } 1677 1710 ··· 1689 1726 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); 1690 1727 int i; 1691 1728 1692 - spin_lock_irq(&korg1212->lock); 1729 + guard(spinlock_irq)(&korg1212->lock); 1693 1730 1694 1731 i = kcontrol->private_value; 1695 1732 u->value.integer.value[0] = abs(korg1212->sharedBufferPtr->volumeData[i]); 1696 1733 1697 1734 if (i >= 8) 1698 1735 u->value.integer.value[1] = abs(korg1212->sharedBufferPtr->volumeData[i+1]); 1699 - 1700 - spin_unlock_irq(&korg1212->lock); 1701 1736 1702 1737 return 0; 1703 1738 } ··· 1708 1747 int i; 1709 1748 int val; 1710 1749 1711 - spin_lock_irq(&korg1212->lock); 1750 + guard(spinlock_irq)(&korg1212->lock); 1712 1751 1713 1752 i = kcontrol->private_value; 1714 1753 ··· 1734 1773 } 1735 1774 } 1736 1775 1737 - spin_unlock_irq(&korg1212->lock); 1738 - 1739 1776 return change; 1740 1777 } 1741 1778 ··· 1751 1792 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); 1752 1793 int i; 1753 1794 1754 - spin_lock_irq(&korg1212->lock); 1795 + guard(spinlock_irq)(&korg1212->lock); 1755 1796 1756 1797 i = kcontrol->private_value; 1757 1798 u->value.enumerated.item[0] = korg1212->sharedBufferPtr->routeData[i]; 1758 1799 1759 1800 if (i >= 8) 1760 1801 u->value.enumerated.item[1] = korg1212->sharedBufferPtr->routeData[i+1]; 1761 - 1762 - spin_unlock_irq(&korg1212->lock); 1763 1802 1764 1803 return 0; 1765 1804 } ··· 1768 1811 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); 1769 1812 int change = 0, i; 1770 1813 1771 - spin_lock_irq(&korg1212->lock); 1814 + guard(spinlock_irq)(&korg1212->lock); 1772 1815 1773 1816 i = kcontrol->private_value; 1774 1817 ··· 1788 1831 } 1789 1832 } 1790 1833 1791 - spin_unlock_irq(&korg1212->lock); 1792 - 1793 1834 return change; 1794 1835 } 1795 1836 ··· 1806 1851 { 1807 1852 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); 1808 1853 1809 - spin_lock_irq(&korg1212->lock); 1854 + guard(spinlock_irq)(&korg1212->lock); 1810 1855 1811 1856 u->value.integer.value[0] = korg1212->leftADCInSens; 1812 1857 u->value.integer.value[1] = korg1212->rightADCInSens; 1813 - 1814 - spin_unlock_irq(&korg1212->lock); 1815 1858 1816 1859 return 0; 1817 1860 } ··· 1820 1867 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); 1821 1868 int change = 0; 1822 1869 1823 - spin_lock_irq(&korg1212->lock); 1824 - 1825 - if (u->value.integer.value[0] >= k1212MinADCSens && 1826 - u->value.integer.value[0] <= k1212MaxADCSens && 1827 - u->value.integer.value[0] != korg1212->leftADCInSens) { 1828 - korg1212->leftADCInSens = u->value.integer.value[0]; 1829 - change = 1; 1830 - } 1831 - if (u->value.integer.value[1] >= k1212MinADCSens && 1832 - u->value.integer.value[1] <= k1212MaxADCSens && 1833 - u->value.integer.value[1] != korg1212->rightADCInSens) { 1834 - korg1212->rightADCInSens = u->value.integer.value[1]; 1835 - change = 1; 1836 - } 1837 - 1838 - spin_unlock_irq(&korg1212->lock); 1870 + scoped_guard(spinlock_irq, &korg1212->lock) { 1871 + if (u->value.integer.value[0] >= k1212MinADCSens && 1872 + u->value.integer.value[0] <= k1212MaxADCSens && 1873 + u->value.integer.value[0] != korg1212->leftADCInSens) { 1874 + korg1212->leftADCInSens = u->value.integer.value[0]; 1875 + change = 1; 1876 + } 1877 + if (u->value.integer.value[1] >= k1212MinADCSens && 1878 + u->value.integer.value[1] <= k1212MaxADCSens && 1879 + u->value.integer.value[1] != korg1212->rightADCInSens) { 1880 + korg1212->rightADCInSens = u->value.integer.value[1]; 1881 + change = 1; 1882 + } 1883 + } 1839 1884 1840 1885 if (change) 1841 1886 snd_korg1212_WriteADCSensitivity(korg1212); ··· 1852 1901 { 1853 1902 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); 1854 1903 1855 - spin_lock_irq(&korg1212->lock); 1904 + guard(spinlock_irq)(&korg1212->lock); 1856 1905 1857 1906 ucontrol->value.enumerated.item[0] = korg1212->clkSource; 1858 - 1859 - spin_unlock_irq(&korg1212->lock); 1860 1907 return 0; 1861 1908 } 1862 1909 ··· 1866 1917 int change; 1867 1918 1868 1919 val = ucontrol->value.enumerated.item[0] % 3; 1869 - spin_lock_irq(&korg1212->lock); 1920 + guard(spinlock_irq)(&korg1212->lock); 1870 1921 change = val != korg1212->clkSource; 1871 1922 snd_korg1212_SetClockSource(korg1212, val); 1872 - spin_unlock_irq(&korg1212->lock); 1873 1923 return change; 1874 1924 } 1875 1925