aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-05-02 04:41:40 -0400
committerTakashi Iwai <tiwai@suse.de>2011-05-02 04:41:40 -0400
commita3ea8e8f2474c35b4c3e22262991afddb93c4c0e (patch)
tree648bbeea304950d02e71863673be8154a5e491f6 /sound/pci/hda
parentc2de187e5b0f25b572ac1cb6cdf383f16123717d (diff)
parentebb47241ea0eac6a5a23404821a2d62f64c68496 (diff)
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'sound/pci/hda')
-rw-r--r--sound/pci/hda/hda_codec.c4
-rw-r--r--sound/pci/hda/patch_realtek.c30
-rw-r--r--sound/pci/hda/patch_sigmatel.c2
-rw-r--r--sound/pci/hda/patch_via.c10
4 files changed, 21 insertions, 25 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 10f429f96163..2c40e415852b 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -3730,7 +3730,7 @@ int snd_hda_codec_build_pcms(struct hda_codec *codec)
3730 * with the proper parameters for set up. 3730 * with the proper parameters for set up.
3731 * ops.cleanup should be called in hw_free for clean up of streams. 3731 * ops.cleanup should be called in hw_free for clean up of streams.
3732 * 3732 *
3733 * This function returns 0 if successfull, or a negative error code. 3733 * This function returns 0 if successful, or a negative error code.
3734 */ 3734 */
3735int __devinit snd_hda_build_pcms(struct hda_bus *bus) 3735int __devinit snd_hda_build_pcms(struct hda_bus *bus)
3736{ 3736{
@@ -4923,7 +4923,7 @@ EXPORT_SYMBOL_HDA(snd_hda_suspend);
4923 * 4923 *
4924 * Returns 0 if successful. 4924 * Returns 0 if successful.
4925 * 4925 *
4926 * This fucntion is defined only when POWER_SAVE isn't set. 4926 * This function is defined only when POWER_SAVE isn't set.
4927 * In the power-save mode, the codec is resumed dynamically. 4927 * In the power-save mode, the codec is resumed dynamically.
4928 */ 4928 */
4929int snd_hda_resume(struct hda_bus *bus) 4929int snd_hda_resume(struct hda_bus *bus)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index faede0f49cca..46959159a77e 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -575,7 +575,7 @@ static int alc_ch_mode_put(struct snd_kcontrol *kcontrol,
575 575
576/* 576/*
577 * Control the mode of pin widget settings via the mixer. "pc" is used 577 * Control the mode of pin widget settings via the mixer. "pc" is used
578 * instead of "%" to avoid consequences of accidently treating the % as 578 * instead of "%" to avoid consequences of accidentally treating the % as
579 * being part of a format specifier. Maximum allowed length of a value is 579 * being part of a format specifier. Maximum allowed length of a value is
580 * 63 characters plus NULL terminator. 580 * 63 characters plus NULL terminator.
581 * 581 *
@@ -5896,6 +5896,7 @@ static void fillup_priv_adc_nids(struct hda_codec *codec, hda_nid_t *nids,
5896static struct snd_pci_quirk beep_white_list[] = { 5896static struct snd_pci_quirk beep_white_list[] = {
5897 SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), 5897 SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1),
5898 SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1), 5898 SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1),
5899 SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1),
5899 SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1), 5900 SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1),
5900 {} 5901 {}
5901}; 5902};
@@ -10066,7 +10067,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
10066 10067
10067 SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL), 10068 SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL),
10068 10069
10069 SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavillion", ALC883_6ST_DIG), 10070 SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavilion", ALC883_6ST_DIG),
10070 SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP), 10071 SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP),
10071 SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP), 10072 SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP),
10072 SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG), 10073 SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG),
@@ -10093,6 +10094,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
10093 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD), 10094 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD),
10094 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL), 10095 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL),
10095 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch), 10096 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch),
10097 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG),
10096 10098
10097 SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG), 10099 SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG),
10098 SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG), 10100 SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG),
@@ -10931,7 +10933,6 @@ enum {
10931 PINFIX_LENOVO_Y530, 10933 PINFIX_LENOVO_Y530,
10932 PINFIX_PB_M5210, 10934 PINFIX_PB_M5210,
10933 PINFIX_ACER_ASPIRE_7736, 10935 PINFIX_ACER_ASPIRE_7736,
10934 PINFIX_GIGABYTE_880GM,
10935}; 10936};
10936 10937
10937static const struct alc_fixup alc882_fixups[] = { 10938static const struct alc_fixup alc882_fixups[] = {
@@ -10963,13 +10964,6 @@ static const struct alc_fixup alc882_fixups[] = {
10963 .type = ALC_FIXUP_SKU, 10964 .type = ALC_FIXUP_SKU,
10964 .v.sku = ALC_FIXUP_SKU_IGNORE, 10965 .v.sku = ALC_FIXUP_SKU_IGNORE,
10965 }, 10966 },
10966 [PINFIX_GIGABYTE_880GM] = {
10967 .type = ALC_FIXUP_PINS,
10968 .v.pins = (const struct alc_pincfg[]) {
10969 { 0x14, 0x1114410 }, /* set as speaker */
10970 { }
10971 }
10972 },
10973}; 10967};
10974 10968
10975static struct snd_pci_quirk alc882_fixup_tbl[] = { 10969static struct snd_pci_quirk alc882_fixup_tbl[] = {
@@ -10977,7 +10971,6 @@ static struct snd_pci_quirk alc882_fixup_tbl[] = {
10977 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), 10971 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530),
10978 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), 10972 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX),
10979 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736), 10973 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736),
10980 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", PINFIX_GIGABYTE_880GM),
10981 {} 10974 {}
10982}; 10975};
10983 10976
@@ -18489,6 +18482,8 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
18489 ALC662_3ST_6ch_DIG), 18482 ALC662_3ST_6ch_DIG),
18490 SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO), 18483 SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO),
18491 SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10), 18484 SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10),
18485 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L",
18486 ALC662_3ST_6ch_DIG),
18492 SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13), 18487 SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13),
18493 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG), 18488 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG),
18494 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA), 18489 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA),
@@ -19387,7 +19382,7 @@ enum {
19387 ALC662_FIXUP_IDEAPAD, 19382 ALC662_FIXUP_IDEAPAD,
19388 ALC272_FIXUP_MARIO, 19383 ALC272_FIXUP_MARIO,
19389 ALC662_FIXUP_CZC_P10T, 19384 ALC662_FIXUP_CZC_P10T,
19390 ALC662_FIXUP_GIGABYTE, 19385 ALC662_FIXUP_SKU_IGNORE,
19391}; 19386};
19392 19387
19393static const struct alc_fixup alc662_fixups[] = { 19388static const struct alc_fixup alc662_fixups[] = {
@@ -19416,20 +19411,17 @@ static const struct alc_fixup alc662_fixups[] = {
19416 {} 19411 {}
19417 } 19412 }
19418 }, 19413 },
19419 [ALC662_FIXUP_GIGABYTE] = { 19414 [ALC662_FIXUP_SKU_IGNORE] = {
19420 .type = ALC_FIXUP_PINS, 19415 .type = ALC_FIXUP_SKU,
19421 .v.pins = (const struct alc_pincfg[]) { 19416 .v.sku = ALC_FIXUP_SKU_IGNORE,
19422 { 0x14, 0x1114410 }, /* set as speaker */
19423 { }
19424 }
19425 }, 19417 },
19426}; 19418};
19427 19419
19428static struct snd_pci_quirk alc662_fixup_tbl[] = { 19420static struct snd_pci_quirk alc662_fixup_tbl[] = {
19429 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), 19421 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE),
19422 SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE),
19430 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), 19423 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
19431 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), 19424 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
19432 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", ALC662_FIXUP_GIGABYTE),
19433 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), 19425 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
19434 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), 19426 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
19435 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T), 19427 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 6c5af3e77d86..2b590d92ff90 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -2475,7 +2475,7 @@ static int stac92xx_hp_switch_put(struct snd_kcontrol *kcontrol,
2475 2475
2476 spec->hp_switch = ucontrol->value.integer.value[0] ? nid : 0; 2476 spec->hp_switch = ucontrol->value.integer.value[0] ? nid : 0;
2477 2477
2478 /* check to be sure that the ports are upto date with 2478 /* check to be sure that the ports are up to date with
2479 * switch changes 2479 * switch changes
2480 */ 2480 */
2481 stac_issue_unsol_event(codec, nid); 2481 stac_issue_unsol_event(codec, nid);
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 62fe64c419d5..6a51ffb266f9 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -844,14 +844,18 @@ static void notify_aa_path_ctls(struct hda_codec *codec)
844{ 844{
845 int i; 845 int i;
846 struct snd_ctl_elem_id id; 846 struct snd_ctl_elem_id id;
847 const char *labels[] = {"Mic", "Front Mic", "Line"}; 847 const char *labels[] = {"Mic", "Front Mic", "Line", "Rear Mic"};
848 struct snd_kcontrol *ctl;
848 849
849 memset(&id, 0, sizeof(id)); 850 memset(&id, 0, sizeof(id));
850 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 851 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
851 for (i = 0; i < ARRAY_SIZE(labels); i++) { 852 for (i = 0; i < ARRAY_SIZE(labels); i++) {
852 sprintf(id.name, "%s Playback Volume", labels[i]); 853 sprintf(id.name, "%s Playback Volume", labels[i]);
853 snd_ctl_notify(codec->bus->card, SNDRV_CTL_EVENT_MASK_VALUE, 854 ctl = snd_hda_find_mixer_ctl(codec, id.name);
854 &id); 855 if (ctl)
856 snd_ctl_notify(codec->bus->card,
857 SNDRV_CTL_EVENT_MASK_VALUE,
858 &ctl->id);
855 } 859 }
856} 860}
857 861