diff options
| -rw-r--r-- | sound/pci/ice1712/aureon.c | 104 | ||||
| -rw-r--r-- | sound/pci/ice1712/phase.c | 39 | ||||
| -rw-r--r-- | sound/pci/ice1712/pontis.c | 9 | ||||
| -rw-r--r-- | sound/pci/ice1712/prodigy192.c | 14 |
4 files changed, 139 insertions, 27 deletions
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c index 9492f3d2455b..9e76cebd2d22 100644 --- a/sound/pci/ice1712/aureon.c +++ b/sound/pci/ice1712/aureon.c | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | #include "ice1712.h" | 60 | #include "ice1712.h" |
| 61 | #include "envy24ht.h" | 61 | #include "envy24ht.h" |
| 62 | #include "aureon.h" | 62 | #include "aureon.h" |
| 63 | #include <sound/tlv.h> | ||
| 63 | 64 | ||
| 64 | /* WM8770 registers */ | 65 | /* WM8770 registers */ |
| 65 | #define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */ | 66 | #define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */ |
| @@ -660,6 +661,12 @@ static int aureon_ac97_mmute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_e | |||
| 660 | return change; | 661 | return change; |
| 661 | } | 662 | } |
| 662 | 663 | ||
| 664 | static DECLARE_TLV_DB_SCALE(db_scale_wm_dac, -12700, 100, 1); | ||
| 665 | static DECLARE_TLV_DB_SCALE(db_scale_wm_pcm, -6400, 50, 1); | ||
| 666 | static DECLARE_TLV_DB_SCALE(db_scale_wm_adc, -1200, 100, 0); | ||
| 667 | static DECLARE_TLV_DB_SCALE(db_scale_ac97_master, -4650, 150, 0); | ||
| 668 | static DECLARE_TLV_DB_SCALE(db_scale_ac97_gain, -3450, 150, 0); | ||
| 669 | |||
| 663 | /* | 670 | /* |
| 664 | * Logarithmic volume values for WM8770 | 671 | * Logarithmic volume values for WM8770 |
| 665 | * Computed as 20 * Log10(255 / x) | 672 | * Computed as 20 * Log10(255 / x) |
| @@ -1409,10 +1416,13 @@ static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = { | |||
| 1409 | }, | 1416 | }, |
| 1410 | { | 1417 | { |
| 1411 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1418 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1419 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1420 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1412 | .name = "Master Playback Volume", | 1421 | .name = "Master Playback Volume", |
| 1413 | .info = wm_master_vol_info, | 1422 | .info = wm_master_vol_info, |
| 1414 | .get = wm_master_vol_get, | 1423 | .get = wm_master_vol_get, |
| 1415 | .put = wm_master_vol_put | 1424 | .put = wm_master_vol_put, |
| 1425 | .tlv = { .p = db_scale_wm_dac } | ||
| 1416 | }, | 1426 | }, |
| 1417 | { | 1427 | { |
| 1418 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1428 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1424,11 +1434,14 @@ static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = { | |||
| 1424 | }, | 1434 | }, |
| 1425 | { | 1435 | { |
| 1426 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1436 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1437 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1438 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1427 | .name = "Front Playback Volume", | 1439 | .name = "Front Playback Volume", |
| 1428 | .info = wm_vol_info, | 1440 | .info = wm_vol_info, |
| 1429 | .get = wm_vol_get, | 1441 | .get = wm_vol_get, |
| 1430 | .put = wm_vol_put, | 1442 | .put = wm_vol_put, |
| 1431 | .private_value = (2 << 8) | 0 | 1443 | .private_value = (2 << 8) | 0, |
| 1444 | .tlv = { .p = db_scale_wm_dac } | ||
| 1432 | }, | 1445 | }, |
| 1433 | { | 1446 | { |
| 1434 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1447 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1440,11 +1453,14 @@ static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = { | |||
| 1440 | }, | 1453 | }, |
| 1441 | { | 1454 | { |
| 1442 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1455 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1456 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1457 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1443 | .name = "Rear Playback Volume", | 1458 | .name = "Rear Playback Volume", |
| 1444 | .info = wm_vol_info, | 1459 | .info = wm_vol_info, |
| 1445 | .get = wm_vol_get, | 1460 | .get = wm_vol_get, |
| 1446 | .put = wm_vol_put, | 1461 | .put = wm_vol_put, |
| 1447 | .private_value = (2 << 8) | 2 | 1462 | .private_value = (2 << 8) | 2, |
| 1463 | .tlv = { .p = db_scale_wm_dac } | ||
| 1448 | }, | 1464 | }, |
| 1449 | { | 1465 | { |
| 1450 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1466 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1456,11 +1472,14 @@ static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = { | |||
| 1456 | }, | 1472 | }, |
| 1457 | { | 1473 | { |
| 1458 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1474 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1475 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1476 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1459 | .name = "Center Playback Volume", | 1477 | .name = "Center Playback Volume", |
| 1460 | .info = wm_vol_info, | 1478 | .info = wm_vol_info, |
| 1461 | .get = wm_vol_get, | 1479 | .get = wm_vol_get, |
| 1462 | .put = wm_vol_put, | 1480 | .put = wm_vol_put, |
| 1463 | .private_value = (1 << 8) | 4 | 1481 | .private_value = (1 << 8) | 4, |
| 1482 | .tlv = { .p = db_scale_wm_dac } | ||
| 1464 | }, | 1483 | }, |
| 1465 | { | 1484 | { |
| 1466 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1485 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1472,11 +1491,14 @@ static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = { | |||
| 1472 | }, | 1491 | }, |
| 1473 | { | 1492 | { |
| 1474 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1493 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1494 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1495 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1475 | .name = "LFE Playback Volume", | 1496 | .name = "LFE Playback Volume", |
| 1476 | .info = wm_vol_info, | 1497 | .info = wm_vol_info, |
| 1477 | .get = wm_vol_get, | 1498 | .get = wm_vol_get, |
| 1478 | .put = wm_vol_put, | 1499 | .put = wm_vol_put, |
| 1479 | .private_value = (1 << 8) | 5 | 1500 | .private_value = (1 << 8) | 5, |
| 1501 | .tlv = { .p = db_scale_wm_dac } | ||
| 1480 | }, | 1502 | }, |
| 1481 | { | 1503 | { |
| 1482 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1504 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1488,11 +1510,14 @@ static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = { | |||
| 1488 | }, | 1510 | }, |
| 1489 | { | 1511 | { |
| 1490 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1512 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1513 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1514 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1491 | .name = "Side Playback Volume", | 1515 | .name = "Side Playback Volume", |
| 1492 | .info = wm_vol_info, | 1516 | .info = wm_vol_info, |
| 1493 | .get = wm_vol_get, | 1517 | .get = wm_vol_get, |
| 1494 | .put = wm_vol_put, | 1518 | .put = wm_vol_put, |
| 1495 | .private_value = (2 << 8) | 6 | 1519 | .private_value = (2 << 8) | 6, |
| 1520 | .tlv = { .p = db_scale_wm_dac } | ||
| 1496 | } | 1521 | } |
| 1497 | }; | 1522 | }; |
| 1498 | 1523 | ||
| @@ -1506,10 +1531,13 @@ static struct snd_kcontrol_new wm_controls[] __devinitdata = { | |||
| 1506 | }, | 1531 | }, |
| 1507 | { | 1532 | { |
| 1508 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1533 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1534 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1535 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1509 | .name = "PCM Playback Volume", | 1536 | .name = "PCM Playback Volume", |
| 1510 | .info = wm_pcm_vol_info, | 1537 | .info = wm_pcm_vol_info, |
| 1511 | .get = wm_pcm_vol_get, | 1538 | .get = wm_pcm_vol_get, |
| 1512 | .put = wm_pcm_vol_put | 1539 | .put = wm_pcm_vol_put, |
| 1540 | .tlv = { .p = db_scale_wm_pcm } | ||
| 1513 | }, | 1541 | }, |
| 1514 | { | 1542 | { |
| 1515 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1543 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1520,10 +1548,13 @@ static struct snd_kcontrol_new wm_controls[] __devinitdata = { | |||
| 1520 | }, | 1548 | }, |
| 1521 | { | 1549 | { |
| 1522 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1550 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1551 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1552 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1523 | .name = "Capture Volume", | 1553 | .name = "Capture Volume", |
| 1524 | .info = wm_adc_vol_info, | 1554 | .info = wm_adc_vol_info, |
| 1525 | .get = wm_adc_vol_get, | 1555 | .get = wm_adc_vol_get, |
| 1526 | .put = wm_adc_vol_put | 1556 | .put = wm_adc_vol_put, |
| 1557 | .tlv = { .p = db_scale_wm_adc } | ||
| 1527 | }, | 1558 | }, |
| 1528 | { | 1559 | { |
| 1529 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1560 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1567,11 +1598,14 @@ static struct snd_kcontrol_new ac97_controls[] __devinitdata = { | |||
| 1567 | }, | 1598 | }, |
| 1568 | { | 1599 | { |
| 1569 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1600 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1601 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1602 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1570 | .name = "AC97 Playback Volume", | 1603 | .name = "AC97 Playback Volume", |
| 1571 | .info = aureon_ac97_vol_info, | 1604 | .info = aureon_ac97_vol_info, |
| 1572 | .get = aureon_ac97_vol_get, | 1605 | .get = aureon_ac97_vol_get, |
| 1573 | .put = aureon_ac97_vol_put, | 1606 | .put = aureon_ac97_vol_put, |
| 1574 | .private_value = AC97_MASTER|AUREON_AC97_STEREO | 1607 | .private_value = AC97_MASTER|AUREON_AC97_STEREO, |
| 1608 | .tlv = { .p = db_scale_ac97_master } | ||
| 1575 | }, | 1609 | }, |
| 1576 | { | 1610 | { |
| 1577 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1611 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1583,11 +1617,14 @@ static struct snd_kcontrol_new ac97_controls[] __devinitdata = { | |||
| 1583 | }, | 1617 | }, |
| 1584 | { | 1618 | { |
| 1585 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1619 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1620 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1621 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1586 | .name = "CD Playback Volume", | 1622 | .name = "CD Playback Volume", |
| 1587 | .info = aureon_ac97_vol_info, | 1623 | .info = aureon_ac97_vol_info, |
| 1588 | .get = aureon_ac97_vol_get, | 1624 | .get = aureon_ac97_vol_get, |
| 1589 | .put = aureon_ac97_vol_put, | 1625 | .put = aureon_ac97_vol_put, |
| 1590 | .private_value = AC97_CD|AUREON_AC97_STEREO | 1626 | .private_value = AC97_CD|AUREON_AC97_STEREO, |
| 1627 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1591 | }, | 1628 | }, |
| 1592 | { | 1629 | { |
| 1593 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1630 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1599,11 +1636,14 @@ static struct snd_kcontrol_new ac97_controls[] __devinitdata = { | |||
| 1599 | }, | 1636 | }, |
| 1600 | { | 1637 | { |
| 1601 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1638 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1639 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1640 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1602 | .name = "Aux Playback Volume", | 1641 | .name = "Aux Playback Volume", |
| 1603 | .info = aureon_ac97_vol_info, | 1642 | .info = aureon_ac97_vol_info, |
| 1604 | .get = aureon_ac97_vol_get, | 1643 | .get = aureon_ac97_vol_get, |
| 1605 | .put = aureon_ac97_vol_put, | 1644 | .put = aureon_ac97_vol_put, |
| 1606 | .private_value = AC97_AUX|AUREON_AC97_STEREO | 1645 | .private_value = AC97_AUX|AUREON_AC97_STEREO, |
| 1646 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1607 | }, | 1647 | }, |
| 1608 | { | 1648 | { |
| 1609 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1649 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1615,11 +1655,14 @@ static struct snd_kcontrol_new ac97_controls[] __devinitdata = { | |||
| 1615 | }, | 1655 | }, |
| 1616 | { | 1656 | { |
| 1617 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1657 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1658 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1659 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1618 | .name = "Line Playback Volume", | 1660 | .name = "Line Playback Volume", |
| 1619 | .info = aureon_ac97_vol_info, | 1661 | .info = aureon_ac97_vol_info, |
| 1620 | .get = aureon_ac97_vol_get, | 1662 | .get = aureon_ac97_vol_get, |
| 1621 | .put = aureon_ac97_vol_put, | 1663 | .put = aureon_ac97_vol_put, |
| 1622 | .private_value = AC97_LINE|AUREON_AC97_STEREO | 1664 | .private_value = AC97_LINE|AUREON_AC97_STEREO, |
| 1665 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1623 | }, | 1666 | }, |
| 1624 | { | 1667 | { |
| 1625 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1668 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1631,11 +1674,14 @@ static struct snd_kcontrol_new ac97_controls[] __devinitdata = { | |||
| 1631 | }, | 1674 | }, |
| 1632 | { | 1675 | { |
| 1633 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1676 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1677 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1678 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1634 | .name = "Mic Playback Volume", | 1679 | .name = "Mic Playback Volume", |
| 1635 | .info = aureon_ac97_vol_info, | 1680 | .info = aureon_ac97_vol_info, |
| 1636 | .get = aureon_ac97_vol_get, | 1681 | .get = aureon_ac97_vol_get, |
| 1637 | .put = aureon_ac97_vol_put, | 1682 | .put = aureon_ac97_vol_put, |
| 1638 | .private_value = AC97_MIC | 1683 | .private_value = AC97_MIC, |
| 1684 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1639 | }, | 1685 | }, |
| 1640 | { | 1686 | { |
| 1641 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1687 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1657,11 +1703,14 @@ static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = { | |||
| 1657 | }, | 1703 | }, |
| 1658 | { | 1704 | { |
| 1659 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1705 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1706 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1707 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1660 | .name = "AC97 Playback Volume", | 1708 | .name = "AC97 Playback Volume", |
| 1661 | .info = aureon_ac97_vol_info, | 1709 | .info = aureon_ac97_vol_info, |
| 1662 | .get = aureon_ac97_vol_get, | 1710 | .get = aureon_ac97_vol_get, |
| 1663 | .put = aureon_ac97_vol_put, | 1711 | .put = aureon_ac97_vol_put, |
| 1664 | .private_value = AC97_MASTER|AUREON_AC97_STEREO | 1712 | .private_value = AC97_MASTER|AUREON_AC97_STEREO, |
| 1713 | .tlv = { .p = db_scale_ac97_master } | ||
| 1665 | }, | 1714 | }, |
| 1666 | { | 1715 | { |
| 1667 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1716 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1673,11 +1722,14 @@ static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = { | |||
| 1673 | }, | 1722 | }, |
| 1674 | { | 1723 | { |
| 1675 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1724 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1725 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1726 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1676 | .name = "CD Playback Volume", | 1727 | .name = "CD Playback Volume", |
| 1677 | .info = aureon_ac97_vol_info, | 1728 | .info = aureon_ac97_vol_info, |
| 1678 | .get = aureon_ac97_vol_get, | 1729 | .get = aureon_ac97_vol_get, |
| 1679 | .put = aureon_ac97_vol_put, | 1730 | .put = aureon_ac97_vol_put, |
| 1680 | .private_value = AC97_AUX|AUREON_AC97_STEREO | 1731 | .private_value = AC97_AUX|AUREON_AC97_STEREO, |
| 1732 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1681 | }, | 1733 | }, |
| 1682 | { | 1734 | { |
| 1683 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1735 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1685,15 +1737,18 @@ static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = { | |||
| 1685 | .info = aureon_ac97_mute_info, | 1737 | .info = aureon_ac97_mute_info, |
| 1686 | .get = aureon_ac97_mute_get, | 1738 | .get = aureon_ac97_mute_get, |
| 1687 | .put = aureon_ac97_mute_put, | 1739 | .put = aureon_ac97_mute_put, |
| 1688 | .private_value = AC97_CD, | 1740 | .private_value = AC97_CD |
| 1689 | }, | 1741 | }, |
| 1690 | { | 1742 | { |
| 1691 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1743 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1744 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1745 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1692 | .name = "Phono Playback Volume", | 1746 | .name = "Phono Playback Volume", |
| 1693 | .info = aureon_ac97_vol_info, | 1747 | .info = aureon_ac97_vol_info, |
| 1694 | .get = aureon_ac97_vol_get, | 1748 | .get = aureon_ac97_vol_get, |
| 1695 | .put = aureon_ac97_vol_put, | 1749 | .put = aureon_ac97_vol_put, |
| 1696 | .private_value = AC97_CD|AUREON_AC97_STEREO | 1750 | .private_value = AC97_CD|AUREON_AC97_STEREO, |
| 1751 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1697 | }, | 1752 | }, |
| 1698 | { | 1753 | { |
| 1699 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1754 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1705,11 +1760,14 @@ static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = { | |||
| 1705 | }, | 1760 | }, |
| 1706 | { | 1761 | { |
| 1707 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1762 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1763 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1764 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1708 | .name = "Line Playback Volume", | 1765 | .name = "Line Playback Volume", |
| 1709 | .info = aureon_ac97_vol_info, | 1766 | .info = aureon_ac97_vol_info, |
| 1710 | .get = aureon_ac97_vol_get, | 1767 | .get = aureon_ac97_vol_get, |
| 1711 | .put = aureon_ac97_vol_put, | 1768 | .put = aureon_ac97_vol_put, |
| 1712 | .private_value = AC97_LINE|AUREON_AC97_STEREO | 1769 | .private_value = AC97_LINE|AUREON_AC97_STEREO, |
| 1770 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1713 | }, | 1771 | }, |
| 1714 | { | 1772 | { |
| 1715 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1773 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1721,11 +1779,14 @@ static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = { | |||
| 1721 | }, | 1779 | }, |
| 1722 | { | 1780 | { |
| 1723 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1781 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1782 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1783 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1724 | .name = "Mic Playback Volume", | 1784 | .name = "Mic Playback Volume", |
| 1725 | .info = aureon_ac97_vol_info, | 1785 | .info = aureon_ac97_vol_info, |
| 1726 | .get = aureon_ac97_vol_get, | 1786 | .get = aureon_ac97_vol_get, |
| 1727 | .put = aureon_ac97_vol_put, | 1787 | .put = aureon_ac97_vol_put, |
| 1728 | .private_value = AC97_MIC | 1788 | .private_value = AC97_MIC, |
| 1789 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1729 | }, | 1790 | }, |
| 1730 | { | 1791 | { |
| 1731 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1792 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -1744,11 +1805,14 @@ static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = { | |||
| 1744 | }, | 1805 | }, |
| 1745 | { | 1806 | { |
| 1746 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1807 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 1808 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 1809 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 1747 | .name = "Aux Playback Volume", | 1810 | .name = "Aux Playback Volume", |
| 1748 | .info = aureon_ac97_vol_info, | 1811 | .info = aureon_ac97_vol_info, |
| 1749 | .get = aureon_ac97_vol_get, | 1812 | .get = aureon_ac97_vol_get, |
| 1750 | .put = aureon_ac97_vol_put, | 1813 | .put = aureon_ac97_vol_put, |
| 1751 | .private_value = AC97_VIDEO|AUREON_AC97_STEREO | 1814 | .private_value = AC97_VIDEO|AUREON_AC97_STEREO, |
| 1815 | .tlv = { .p = db_scale_ac97_gain } | ||
| 1752 | }, | 1816 | }, |
| 1753 | { | 1817 | { |
| 1754 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1818 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
diff --git a/sound/pci/ice1712/phase.c b/sound/pci/ice1712/phase.c index 502da1c8b5f7..e08d73f4ff85 100644 --- a/sound/pci/ice1712/phase.c +++ b/sound/pci/ice1712/phase.c | |||
| @@ -46,6 +46,7 @@ | |||
| 46 | #include "ice1712.h" | 46 | #include "ice1712.h" |
| 47 | #include "envy24ht.h" | 47 | #include "envy24ht.h" |
| 48 | #include "phase.h" | 48 | #include "phase.h" |
| 49 | #include <sound/tlv.h> | ||
| 49 | 50 | ||
| 50 | /* WM8770 registers */ | 51 | /* WM8770 registers */ |
| 51 | #define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */ | 52 | #define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */ |
| @@ -696,6 +697,9 @@ static int phase28_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ct | |||
| 696 | return 0; | 697 | return 0; |
| 697 | } | 698 | } |
| 698 | 699 | ||
| 700 | static DECLARE_TLV_DB_SCALE(db_scale_wm_dac, -12700, 100, 1); | ||
| 701 | static DECLARE_TLV_DB_SCALE(db_scale_wm_pcm, -6400, 50, 1); | ||
| 702 | |||
| 699 | static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { | 703 | static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { |
| 700 | { | 704 | { |
| 701 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 705 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -706,10 +710,13 @@ static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { | |||
| 706 | }, | 710 | }, |
| 707 | { | 711 | { |
| 708 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 712 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 713 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 714 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 709 | .name = "Master Playback Volume", | 715 | .name = "Master Playback Volume", |
| 710 | .info = wm_master_vol_info, | 716 | .info = wm_master_vol_info, |
| 711 | .get = wm_master_vol_get, | 717 | .get = wm_master_vol_get, |
| 712 | .put = wm_master_vol_put | 718 | .put = wm_master_vol_put, |
| 719 | .tlv = { .p = db_scale_wm_dac } | ||
| 713 | }, | 720 | }, |
| 714 | { | 721 | { |
| 715 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 722 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -721,11 +728,14 @@ static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { | |||
| 721 | }, | 728 | }, |
| 722 | { | 729 | { |
| 723 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 730 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 731 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 732 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 724 | .name = "Front Playback Volume", | 733 | .name = "Front Playback Volume", |
| 725 | .info = wm_vol_info, | 734 | .info = wm_vol_info, |
| 726 | .get = wm_vol_get, | 735 | .get = wm_vol_get, |
| 727 | .put = wm_vol_put, | 736 | .put = wm_vol_put, |
| 728 | .private_value = (2 << 8) | 0 | 737 | .private_value = (2 << 8) | 0, |
| 738 | .tlv = { .p = db_scale_wm_dac } | ||
| 729 | }, | 739 | }, |
| 730 | { | 740 | { |
| 731 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 741 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -737,11 +747,14 @@ static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { | |||
| 737 | }, | 747 | }, |
| 738 | { | 748 | { |
| 739 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 749 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 750 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 751 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 740 | .name = "Rear Playback Volume", | 752 | .name = "Rear Playback Volume", |
| 741 | .info = wm_vol_info, | 753 | .info = wm_vol_info, |
| 742 | .get = wm_vol_get, | 754 | .get = wm_vol_get, |
| 743 | .put = wm_vol_put, | 755 | .put = wm_vol_put, |
| 744 | .private_value = (2 << 8) | 2 | 756 | .private_value = (2 << 8) | 2, |
| 757 | .tlv = { .p = db_scale_wm_dac } | ||
| 745 | }, | 758 | }, |
| 746 | { | 759 | { |
| 747 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 760 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -753,11 +766,14 @@ static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { | |||
| 753 | }, | 766 | }, |
| 754 | { | 767 | { |
| 755 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 768 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 769 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 770 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 756 | .name = "Center Playback Volume", | 771 | .name = "Center Playback Volume", |
| 757 | .info = wm_vol_info, | 772 | .info = wm_vol_info, |
| 758 | .get = wm_vol_get, | 773 | .get = wm_vol_get, |
| 759 | .put = wm_vol_put, | 774 | .put = wm_vol_put, |
| 760 | .private_value = (1 << 8) | 4 | 775 | .private_value = (1 << 8) | 4, |
| 776 | .tlv = { .p = db_scale_wm_dac } | ||
| 761 | }, | 777 | }, |
| 762 | { | 778 | { |
| 763 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 779 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -769,11 +785,14 @@ static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { | |||
| 769 | }, | 785 | }, |
| 770 | { | 786 | { |
| 771 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 787 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 788 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 789 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 772 | .name = "LFE Playback Volume", | 790 | .name = "LFE Playback Volume", |
| 773 | .info = wm_vol_info, | 791 | .info = wm_vol_info, |
| 774 | .get = wm_vol_get, | 792 | .get = wm_vol_get, |
| 775 | .put = wm_vol_put, | 793 | .put = wm_vol_put, |
| 776 | .private_value = (1 << 8) | 5 | 794 | .private_value = (1 << 8) | 5, |
| 795 | .tlv = { .p = db_scale_wm_dac } | ||
| 777 | }, | 796 | }, |
| 778 | { | 797 | { |
| 779 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 798 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -785,11 +804,14 @@ static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { | |||
| 785 | }, | 804 | }, |
| 786 | { | 805 | { |
| 787 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 806 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 807 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 808 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 788 | .name = "Side Playback Volume", | 809 | .name = "Side Playback Volume", |
| 789 | .info = wm_vol_info, | 810 | .info = wm_vol_info, |
| 790 | .get = wm_vol_get, | 811 | .get = wm_vol_get, |
| 791 | .put = wm_vol_put, | 812 | .put = wm_vol_put, |
| 792 | .private_value = (2 << 8) | 6 | 813 | .private_value = (2 << 8) | 6, |
| 814 | .tlv = { .p = db_scale_wm_dac } | ||
| 793 | } | 815 | } |
| 794 | }; | 816 | }; |
| 795 | 817 | ||
| @@ -803,10 +825,13 @@ static struct snd_kcontrol_new wm_controls[] __devinitdata = { | |||
| 803 | }, | 825 | }, |
| 804 | { | 826 | { |
| 805 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 827 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 828 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 829 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 806 | .name = "PCM Playback Volume", | 830 | .name = "PCM Playback Volume", |
| 807 | .info = wm_pcm_vol_info, | 831 | .info = wm_pcm_vol_info, |
| 808 | .get = wm_pcm_vol_get, | 832 | .get = wm_pcm_vol_get, |
| 809 | .put = wm_pcm_vol_put | 833 | .put = wm_pcm_vol_put, |
| 834 | .tlv = { .p = db_scale_wm_pcm } | ||
| 810 | }, | 835 | }, |
| 811 | { | 836 | { |
| 812 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 837 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
diff --git a/sound/pci/ice1712/pontis.c b/sound/pci/ice1712/pontis.c index 0efcad9260a5..6c74c2d2e7f3 100644 --- a/sound/pci/ice1712/pontis.c +++ b/sound/pci/ice1712/pontis.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | 31 | ||
| 32 | #include <sound/core.h> | 32 | #include <sound/core.h> |
| 33 | #include <sound/info.h> | 33 | #include <sound/info.h> |
| 34 | #include <sound/tlv.h> | ||
| 34 | 35 | ||
| 35 | #include "ice1712.h" | 36 | #include "ice1712.h" |
| 36 | #include "envy24ht.h" | 37 | #include "envy24ht.h" |
| @@ -564,6 +565,8 @@ static int pontis_gpio_data_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el | |||
| 564 | return changed; | 565 | return changed; |
| 565 | } | 566 | } |
| 566 | 567 | ||
| 568 | static DECLARE_TLV_DB_SCALE(db_scale_volume, -6400, 50, 1); | ||
| 569 | |||
| 567 | /* | 570 | /* |
| 568 | * mixers | 571 | * mixers |
| 569 | */ | 572 | */ |
| @@ -571,17 +574,23 @@ static int pontis_gpio_data_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el | |||
| 571 | static struct snd_kcontrol_new pontis_controls[] __devinitdata = { | 574 | static struct snd_kcontrol_new pontis_controls[] __devinitdata = { |
| 572 | { | 575 | { |
| 573 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 576 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 577 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 578 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 574 | .name = "PCM Playback Volume", | 579 | .name = "PCM Playback Volume", |
| 575 | .info = wm_dac_vol_info, | 580 | .info = wm_dac_vol_info, |
| 576 | .get = wm_dac_vol_get, | 581 | .get = wm_dac_vol_get, |
| 577 | .put = wm_dac_vol_put, | 582 | .put = wm_dac_vol_put, |
| 583 | .tlv = { .p = db_scale_volume }, | ||
| 578 | }, | 584 | }, |
| 579 | { | 585 | { |
| 580 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 586 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 587 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 588 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 581 | .name = "Capture Volume", | 589 | .name = "Capture Volume", |
| 582 | .info = wm_adc_vol_info, | 590 | .info = wm_adc_vol_info, |
| 583 | .get = wm_adc_vol_get, | 591 | .get = wm_adc_vol_get, |
| 584 | .put = wm_adc_vol_put, | 592 | .put = wm_adc_vol_put, |
| 593 | .tlv = { .p = db_scale_volume }, | ||
| 585 | }, | 594 | }, |
| 586 | { | 595 | { |
| 587 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 596 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
diff --git a/sound/pci/ice1712/prodigy192.c b/sound/pci/ice1712/prodigy192.c index fdb5cb8fac97..41b2605daa3a 100644 --- a/sound/pci/ice1712/prodigy192.c +++ b/sound/pci/ice1712/prodigy192.c | |||
| @@ -35,6 +35,7 @@ | |||
| 35 | #include "envy24ht.h" | 35 | #include "envy24ht.h" |
| 36 | #include "prodigy192.h" | 36 | #include "prodigy192.h" |
| 37 | #include "stac946x.h" | 37 | #include "stac946x.h" |
| 38 | #include <sound/tlv.h> | ||
| 38 | 39 | ||
| 39 | static inline void stac9460_put(struct snd_ice1712 *ice, int reg, unsigned char val) | 40 | static inline void stac9460_put(struct snd_ice1712 *ice, int reg, unsigned char val) |
| 40 | { | 41 | { |
| @@ -356,6 +357,9 @@ static int aureon_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ctl | |||
| 356 | } | 357 | } |
| 357 | #endif | 358 | #endif |
| 358 | 359 | ||
| 360 | static DECLARE_TLV_DB_SCALE(db_scale_dac, -19125, 75, 0); | ||
| 361 | static DECLARE_TLV_DB_SCALE(db_scale_adc, 0, 150, 0); | ||
| 362 | |||
| 359 | /* | 363 | /* |
| 360 | * mixers | 364 | * mixers |
| 361 | */ | 365 | */ |
| @@ -368,14 +372,18 @@ static struct snd_kcontrol_new stac_controls[] __devinitdata = { | |||
| 368 | .get = stac9460_dac_mute_get, | 372 | .get = stac9460_dac_mute_get, |
| 369 | .put = stac9460_dac_mute_put, | 373 | .put = stac9460_dac_mute_put, |
| 370 | .private_value = 1, | 374 | .private_value = 1, |
| 375 | .tlv = { .p = db_scale_dac } | ||
| 371 | }, | 376 | }, |
| 372 | { | 377 | { |
| 373 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 378 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 379 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 380 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 374 | .name = "Master Playback Volume", | 381 | .name = "Master Playback Volume", |
| 375 | .info = stac9460_dac_vol_info, | 382 | .info = stac9460_dac_vol_info, |
| 376 | .get = stac9460_dac_vol_get, | 383 | .get = stac9460_dac_vol_get, |
| 377 | .put = stac9460_dac_vol_put, | 384 | .put = stac9460_dac_vol_put, |
| 378 | .private_value = 1, | 385 | .private_value = 1, |
| 386 | .tlv = { .p = db_scale_dac } | ||
| 379 | }, | 387 | }, |
| 380 | { | 388 | { |
| 381 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 389 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -387,11 +395,14 @@ static struct snd_kcontrol_new stac_controls[] __devinitdata = { | |||
| 387 | }, | 395 | }, |
| 388 | { | 396 | { |
| 389 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 397 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 398 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 399 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 390 | .name = "DAC Volume", | 400 | .name = "DAC Volume", |
| 391 | .count = 6, | 401 | .count = 6, |
| 392 | .info = stac9460_dac_vol_info, | 402 | .info = stac9460_dac_vol_info, |
| 393 | .get = stac9460_dac_vol_get, | 403 | .get = stac9460_dac_vol_get, |
| 394 | .put = stac9460_dac_vol_put, | 404 | .put = stac9460_dac_vol_put, |
| 405 | .tlv = { .p = db_scale_dac } | ||
| 395 | }, | 406 | }, |
| 396 | { | 407 | { |
| 397 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 408 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| @@ -404,11 +415,14 @@ static struct snd_kcontrol_new stac_controls[] __devinitdata = { | |||
| 404 | }, | 415 | }, |
| 405 | { | 416 | { |
| 406 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 417 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
| 418 | .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | | ||
| 419 | SNDRV_CTL_ELEM_ACCESS_TLV_READ), | ||
| 407 | .name = "ADC Volume", | 420 | .name = "ADC Volume", |
| 408 | .count = 1, | 421 | .count = 1, |
| 409 | .info = stac9460_adc_vol_info, | 422 | .info = stac9460_adc_vol_info, |
| 410 | .get = stac9460_adc_vol_get, | 423 | .get = stac9460_adc_vol_get, |
| 411 | .put = stac9460_adc_vol_put, | 424 | .put = stac9460_adc_vol_put, |
| 425 | .tlv = { .p = db_scale_adc } | ||
| 412 | }, | 426 | }, |
| 413 | #if 0 | 427 | #if 0 |
| 414 | { | 428 | { |
