diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-01-24 04:47:02 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-01-24 05:09:30 -0500 |
commit | 2c7a3fb3f81df7318c70d2b8ecbd87f008e28d52 (patch) | |
tree | f093831c67365b93b19dcd21a20e5f399ec7e7a4 | |
parent | faddaa5d1c0cd29629c9c7e7a9d41ecb3149a064 (diff) |
ALSA: hda - Merge playback controls for Cx5051 codec models
All cx5051 codec models have the same Master playback mixer definitions.
Merge them together.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/hda/patch_conexant.c | 62 |
1 files changed, 13 insertions, 49 deletions
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 56dda9c7f899..e24bec6ca23a 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
@@ -1689,13 +1689,7 @@ static void cxt5051_hp_unsol_event(struct hda_codec *codec, | |||
1689 | conexant_report_jack(codec, nid); | 1689 | conexant_report_jack(codec, nid); |
1690 | } | 1690 | } |
1691 | 1691 | ||
1692 | static struct snd_kcontrol_new cxt5051_mixers[] = { | 1692 | static struct snd_kcontrol_new cxt5051_playback_mixers[] = { |
1693 | HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT), | ||
1694 | HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT), | ||
1695 | HDA_CODEC_VOLUME("External Mic Volume", 0x14, 0x01, HDA_INPUT), | ||
1696 | HDA_CODEC_MUTE("External Mic Switch", 0x14, 0x01, HDA_INPUT), | ||
1697 | HDA_CODEC_VOLUME("Docking Mic Volume", 0x15, 0x00, HDA_INPUT), | ||
1698 | HDA_CODEC_MUTE("Docking Mic Switch", 0x15, 0x00, HDA_INPUT), | ||
1699 | HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT), | 1693 | HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT), |
1700 | { | 1694 | { |
1701 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1695 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
@@ -1705,7 +1699,16 @@ static struct snd_kcontrol_new cxt5051_mixers[] = { | |||
1705 | .put = cxt5051_hp_master_sw_put, | 1699 | .put = cxt5051_hp_master_sw_put, |
1706 | .private_value = 0x1a, | 1700 | .private_value = 0x1a, |
1707 | }, | 1701 | }, |
1702 | {} | ||
1703 | }; | ||
1708 | 1704 | ||
1705 | static struct snd_kcontrol_new cxt5051_capture_mixers[] = { | ||
1706 | HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT), | ||
1707 | HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT), | ||
1708 | HDA_CODEC_VOLUME("External Mic Volume", 0x14, 0x01, HDA_INPUT), | ||
1709 | HDA_CODEC_MUTE("External Mic Switch", 0x14, 0x01, HDA_INPUT), | ||
1710 | HDA_CODEC_VOLUME("Docking Mic Volume", 0x15, 0x00, HDA_INPUT), | ||
1711 | HDA_CODEC_MUTE("Docking Mic Switch", 0x15, 0x00, HDA_INPUT), | ||
1709 | {} | 1712 | {} |
1710 | }; | 1713 | }; |
1711 | 1714 | ||
@@ -1714,48 +1717,18 @@ static struct snd_kcontrol_new cxt5051_hp_mixers[] = { | |||
1714 | HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT), | 1717 | HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT), |
1715 | HDA_CODEC_VOLUME("External Mic Volume", 0x15, 0x00, HDA_INPUT), | 1718 | HDA_CODEC_VOLUME("External Mic Volume", 0x15, 0x00, HDA_INPUT), |
1716 | HDA_CODEC_MUTE("External Mic Switch", 0x15, 0x00, HDA_INPUT), | 1719 | HDA_CODEC_MUTE("External Mic Switch", 0x15, 0x00, HDA_INPUT), |
1717 | HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT), | ||
1718 | { | ||
1719 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | ||
1720 | .name = "Master Playback Switch", | ||
1721 | .info = cxt_eapd_info, | ||
1722 | .get = cxt_eapd_get, | ||
1723 | .put = cxt5051_hp_master_sw_put, | ||
1724 | .private_value = 0x1a, | ||
1725 | }, | ||
1726 | |||
1727 | {} | 1720 | {} |
1728 | }; | 1721 | }; |
1729 | 1722 | ||
1730 | static struct snd_kcontrol_new cxt5051_hp_dv6736_mixers[] = { | 1723 | static struct snd_kcontrol_new cxt5051_hp_dv6736_mixers[] = { |
1731 | HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x00, HDA_INPUT), | 1724 | HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x00, HDA_INPUT), |
1732 | HDA_CODEC_MUTE("Capture Switch", 0x14, 0x00, HDA_INPUT), | 1725 | HDA_CODEC_MUTE("Capture Switch", 0x14, 0x00, HDA_INPUT), |
1733 | HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT), | ||
1734 | { | ||
1735 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | ||
1736 | .name = "Master Playback Switch", | ||
1737 | .info = cxt_eapd_info, | ||
1738 | .get = cxt_eapd_get, | ||
1739 | .put = cxt5051_hp_master_sw_put, | ||
1740 | .private_value = 0x1a, | ||
1741 | }, | ||
1742 | |||
1743 | {} | 1726 | {} |
1744 | }; | 1727 | }; |
1745 | 1728 | ||
1746 | static struct snd_kcontrol_new cxt5051_f700_mixers[] = { | 1729 | static struct snd_kcontrol_new cxt5051_f700_mixers[] = { |
1747 | HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x01, HDA_INPUT), | 1730 | HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x01, HDA_INPUT), |
1748 | HDA_CODEC_MUTE("Capture Switch", 0x14, 0x01, HDA_INPUT), | 1731 | HDA_CODEC_MUTE("Capture Switch", 0x14, 0x01, HDA_INPUT), |
1749 | HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT), | ||
1750 | { | ||
1751 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | ||
1752 | .name = "Master Playback Switch", | ||
1753 | .info = cxt_eapd_info, | ||
1754 | .get = cxt_eapd_get, | ||
1755 | .put = cxt5051_hp_master_sw_put, | ||
1756 | .private_value = 0x1a, | ||
1757 | }, | ||
1758 | |||
1759 | {} | 1732 | {} |
1760 | }; | 1733 | }; |
1761 | 1734 | ||
@@ -1764,16 +1737,6 @@ static struct snd_kcontrol_new cxt5051_toshiba_mixers[] = { | |||
1764 | HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT), | 1737 | HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT), |
1765 | HDA_CODEC_VOLUME("External Mic Volume", 0x14, 0x01, HDA_INPUT), | 1738 | HDA_CODEC_VOLUME("External Mic Volume", 0x14, 0x01, HDA_INPUT), |
1766 | HDA_CODEC_MUTE("External Mic Switch", 0x14, 0x01, HDA_INPUT), | 1739 | HDA_CODEC_MUTE("External Mic Switch", 0x14, 0x01, HDA_INPUT), |
1767 | HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT), | ||
1768 | { | ||
1769 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | ||
1770 | .name = "Master Playback Switch", | ||
1771 | .info = cxt_eapd_info, | ||
1772 | .get = cxt_eapd_get, | ||
1773 | .put = cxt5051_hp_master_sw_put, | ||
1774 | .private_value = 0x1a, | ||
1775 | }, | ||
1776 | |||
1777 | {} | 1740 | {} |
1778 | }; | 1741 | }; |
1779 | 1742 | ||
@@ -1958,8 +1921,9 @@ static int patch_cxt5051(struct hda_codec *codec) | |||
1958 | spec->multiout.dig_out_nid = CXT5051_SPDIF_OUT; | 1921 | spec->multiout.dig_out_nid = CXT5051_SPDIF_OUT; |
1959 | spec->num_adc_nids = 1; /* not 2; via auto-mic switch */ | 1922 | spec->num_adc_nids = 1; /* not 2; via auto-mic switch */ |
1960 | spec->adc_nids = cxt5051_adc_nids; | 1923 | spec->adc_nids = cxt5051_adc_nids; |
1961 | spec->num_mixers = 1; | 1924 | spec->num_mixers = 2; |
1962 | spec->mixers[0] = cxt5051_mixers; | 1925 | spec->mixers[0] = cxt5051_capture_mixers; |
1926 | spec->mixers[1] = cxt5051_playback_mixers; | ||
1963 | spec->num_init_verbs = 1; | 1927 | spec->num_init_verbs = 1; |
1964 | spec->init_verbs[0] = cxt5051_init_verbs; | 1928 | spec->init_verbs[0] = cxt5051_init_verbs; |
1965 | spec->spdif_route = 0; | 1929 | spec->spdif_route = 0; |