diff options
Diffstat (limited to 'sound/pci/hda')
| -rw-r--r-- | sound/pci/hda/hda_generic.c | 13 | ||||
| -rw-r--r-- | sound/pci/hda/hda_intel.c | 2 | ||||
| -rw-r--r-- | sound/pci/hda/patch_conexant.c | 12 | ||||
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 66 | ||||
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 4 | ||||
| -rw-r--r-- | sound/pci/hda/thinkpad_helper.c | 1 |
6 files changed, 91 insertions, 7 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index 788f969b1a68..ac0db1679f09 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c | |||
| @@ -844,8 +844,16 @@ static hda_nid_t path_power_update(struct hda_codec *codec, | |||
| 844 | snd_hda_codec_write(codec, nid, 0, | 844 | snd_hda_codec_write(codec, nid, 0, |
| 845 | AC_VERB_SET_POWER_STATE, state); | 845 | AC_VERB_SET_POWER_STATE, state); |
| 846 | changed = nid; | 846 | changed = nid; |
| 847 | /* all known codecs seem to be capable to handl | ||
| 848 | * widgets state even in D3, so far. | ||
| 849 | * if any new codecs need to restore the widget | ||
| 850 | * states after D0 transition, call the function | ||
| 851 | * below. | ||
| 852 | */ | ||
| 853 | #if 0 /* disabled */ | ||
| 847 | if (state == AC_PWRST_D0) | 854 | if (state == AC_PWRST_D0) |
| 848 | snd_hdac_regmap_sync_node(&codec->core, nid); | 855 | snd_hdac_regmap_sync_node(&codec->core, nid); |
| 856 | #endif | ||
| 849 | } | 857 | } |
| 850 | } | 858 | } |
| 851 | return changed; | 859 | return changed; |
| @@ -4918,9 +4926,12 @@ int snd_hda_gen_parse_auto_config(struct hda_codec *codec, | |||
| 4918 | dig_only: | 4926 | dig_only: |
| 4919 | parse_digital(codec); | 4927 | parse_digital(codec); |
| 4920 | 4928 | ||
| 4921 | if (spec->power_down_unused || codec->power_save_node) | 4929 | if (spec->power_down_unused || codec->power_save_node) { |
| 4922 | if (!codec->power_filter) | 4930 | if (!codec->power_filter) |
| 4923 | codec->power_filter = snd_hda_gen_path_power_filter; | 4931 | codec->power_filter = snd_hda_gen_path_power_filter; |
| 4932 | if (!codec->patch_ops.stream_pm) | ||
| 4933 | codec->patch_ops.stream_pm = snd_hda_gen_stream_pm; | ||
| 4934 | } | ||
| 4924 | 4935 | ||
| 4925 | if (!spec->no_analog && spec->beep_nid) { | 4936 | if (!spec->no_analog && spec->beep_nid) { |
| 4926 | err = snd_hda_attach_beep_device(codec, spec->beep_nid); | 4937 | err = snd_hda_attach_beep_device(codec, spec->beep_nid); |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 34040d26c94f..fea198c58196 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
| @@ -2089,6 +2089,8 @@ static const struct pci_device_id azx_ids[] = { | |||
| 2089 | .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, | 2089 | .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, |
| 2090 | { PCI_DEVICE(0x1002, 0xaab0), | 2090 | { PCI_DEVICE(0x1002, 0xaab0), |
| 2091 | .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, | 2091 | .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, |
| 2092 | { PCI_DEVICE(0x1002, 0xaac8), | ||
| 2093 | .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS }, | ||
| 2092 | /* VIA VT8251/VT8237A */ | 2094 | /* VIA VT8251/VT8237A */ |
| 2093 | { PCI_DEVICE(0x1106, 0x3288), | 2095 | { PCI_DEVICE(0x1106, 0x3288), |
| 2094 | .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA }, | 2096 | .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA }, |
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index f8f0dfbef149..78b719b5b34d 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
| @@ -968,6 +968,14 @@ static const struct hda_codec_preset snd_hda_preset_conexant[] = { | |||
| 968 | .patch = patch_conexant_auto }, | 968 | .patch = patch_conexant_auto }, |
| 969 | { .id = 0x14f150b9, .name = "CX20665", | 969 | { .id = 0x14f150b9, .name = "CX20665", |
| 970 | .patch = patch_conexant_auto }, | 970 | .patch = patch_conexant_auto }, |
| 971 | { .id = 0x14f150f1, .name = "CX20721", | ||
| 972 | .patch = patch_conexant_auto }, | ||
| 973 | { .id = 0x14f150f2, .name = "CX20722", | ||
| 974 | .patch = patch_conexant_auto }, | ||
| 975 | { .id = 0x14f150f3, .name = "CX20723", | ||
| 976 | .patch = patch_conexant_auto }, | ||
| 977 | { .id = 0x14f150f4, .name = "CX20724", | ||
| 978 | .patch = patch_conexant_auto }, | ||
| 971 | { .id = 0x14f1510f, .name = "CX20751/2", | 979 | { .id = 0x14f1510f, .name = "CX20751/2", |
| 972 | .patch = patch_conexant_auto }, | 980 | .patch = patch_conexant_auto }, |
| 973 | { .id = 0x14f15110, .name = "CX20751/2", | 981 | { .id = 0x14f15110, .name = "CX20751/2", |
| @@ -1002,6 +1010,10 @@ MODULE_ALIAS("snd-hda-codec-id:14f150ab"); | |||
| 1002 | MODULE_ALIAS("snd-hda-codec-id:14f150ac"); | 1010 | MODULE_ALIAS("snd-hda-codec-id:14f150ac"); |
| 1003 | MODULE_ALIAS("snd-hda-codec-id:14f150b8"); | 1011 | MODULE_ALIAS("snd-hda-codec-id:14f150b8"); |
| 1004 | MODULE_ALIAS("snd-hda-codec-id:14f150b9"); | 1012 | MODULE_ALIAS("snd-hda-codec-id:14f150b9"); |
| 1013 | MODULE_ALIAS("snd-hda-codec-id:14f150f1"); | ||
| 1014 | MODULE_ALIAS("snd-hda-codec-id:14f150f2"); | ||
| 1015 | MODULE_ALIAS("snd-hda-codec-id:14f150f3"); | ||
| 1016 | MODULE_ALIAS("snd-hda-codec-id:14f150f4"); | ||
| 1005 | MODULE_ALIAS("snd-hda-codec-id:14f1510f"); | 1017 | MODULE_ALIAS("snd-hda-codec-id:14f1510f"); |
| 1006 | MODULE_ALIAS("snd-hda-codec-id:14f15110"); | 1018 | MODULE_ALIAS("snd-hda-codec-id:14f15110"); |
| 1007 | MODULE_ALIAS("snd-hda-codec-id:14f15111"); | 1019 | MODULE_ALIAS("snd-hda-codec-id:14f15111"); |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index e2afd53cc14c..464168426465 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -883,6 +883,8 @@ static struct alc_codec_rename_pci_table rename_pci_tbl[] = { | |||
| 883 | { 0x10ec0668, 0x1028, 0, "ALC3661" }, | 883 | { 0x10ec0668, 0x1028, 0, "ALC3661" }, |
| 884 | { 0x10ec0275, 0x1028, 0, "ALC3260" }, | 884 | { 0x10ec0275, 0x1028, 0, "ALC3260" }, |
| 885 | { 0x10ec0899, 0x1028, 0, "ALC3861" }, | 885 | { 0x10ec0899, 0x1028, 0, "ALC3861" }, |
| 886 | { 0x10ec0298, 0x1028, 0, "ALC3266" }, | ||
| 887 | { 0x10ec0256, 0x1028, 0, "ALC3246" }, | ||
| 886 | { 0x10ec0670, 0x1025, 0, "ALC669X" }, | 888 | { 0x10ec0670, 0x1025, 0, "ALC669X" }, |
| 887 | { 0x10ec0676, 0x1025, 0, "ALC679X" }, | 889 | { 0x10ec0676, 0x1025, 0, "ALC679X" }, |
| 888 | { 0x10ec0282, 0x1043, 0, "ALC3229" }, | 890 | { 0x10ec0282, 0x1043, 0, "ALC3229" }, |
| @@ -3673,6 +3675,10 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin, | |||
| 3673 | alc_process_coef_fw(codec, coef0293); | 3675 | alc_process_coef_fw(codec, coef0293); |
| 3674 | snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); | 3676 | snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); |
| 3675 | break; | 3677 | break; |
| 3678 | case 0x10ec0662: | ||
| 3679 | snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); | ||
| 3680 | snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); | ||
| 3681 | break; | ||
| 3676 | case 0x10ec0668: | 3682 | case 0x10ec0668: |
| 3677 | alc_write_coef_idx(codec, 0x11, 0x0001); | 3683 | alc_write_coef_idx(codec, 0x11, 0x0001); |
| 3678 | snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); | 3684 | snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); |
| @@ -3738,7 +3744,6 @@ static void alc_headset_mode_default(struct hda_codec *codec) | |||
| 3738 | case 0x10ec0288: | 3744 | case 0x10ec0288: |
| 3739 | alc_process_coef_fw(codec, coef0288); | 3745 | alc_process_coef_fw(codec, coef0288); |
| 3740 | break; | 3746 | break; |
| 3741 | break; | ||
| 3742 | case 0x10ec0292: | 3747 | case 0x10ec0292: |
| 3743 | alc_process_coef_fw(codec, coef0292); | 3748 | alc_process_coef_fw(codec, coef0292); |
| 3744 | break; | 3749 | break; |
| @@ -4012,7 +4017,7 @@ static void alc_update_headset_mode(struct hda_codec *codec) | |||
| 4012 | if (new_headset_mode != ALC_HEADSET_MODE_MIC) { | 4017 | if (new_headset_mode != ALC_HEADSET_MODE_MIC) { |
| 4013 | snd_hda_set_pin_ctl_cache(codec, hp_pin, | 4018 | snd_hda_set_pin_ctl_cache(codec, hp_pin, |
| 4014 | AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN); | 4019 | AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN); |
| 4015 | if (spec->headphone_mic_pin) | 4020 | if (spec->headphone_mic_pin && spec->headphone_mic_pin != hp_pin) |
| 4016 | snd_hda_set_pin_ctl_cache(codec, spec->headphone_mic_pin, | 4021 | snd_hda_set_pin_ctl_cache(codec, spec->headphone_mic_pin, |
| 4017 | PIN_VREFHIZ); | 4022 | PIN_VREFHIZ); |
| 4018 | } | 4023 | } |
| @@ -4215,6 +4220,23 @@ static void alc_fixup_dell_xps13(struct hda_codec *codec, | |||
| 4215 | } | 4220 | } |
| 4216 | } | 4221 | } |
| 4217 | 4222 | ||
| 4223 | static void alc_fixup_headset_mode_alc662(struct hda_codec *codec, | ||
| 4224 | const struct hda_fixup *fix, int action) | ||
| 4225 | { | ||
| 4226 | struct alc_spec *spec = codec->spec; | ||
| 4227 | |||
| 4228 | if (action == HDA_FIXUP_ACT_PRE_PROBE) { | ||
| 4229 | spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; | ||
| 4230 | spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */ | ||
| 4231 | |||
| 4232 | /* Disable boost for mic-in permanently. (This code is only called | ||
| 4233 | from quirks that guarantee that the headphone is at NID 0x1b.) */ | ||
| 4234 | snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000); | ||
| 4235 | snd_hda_override_wcaps(codec, 0x1b, get_wcaps(codec, 0x1b) & ~AC_WCAP_IN_AMP); | ||
| 4236 | } else | ||
| 4237 | alc_fixup_headset_mode(codec, fix, action); | ||
| 4238 | } | ||
| 4239 | |||
| 4218 | static void alc_fixup_headset_mode_alc668(struct hda_codec *codec, | 4240 | static void alc_fixup_headset_mode_alc668(struct hda_codec *codec, |
| 4219 | const struct hda_fixup *fix, int action) | 4241 | const struct hda_fixup *fix, int action) |
| 4220 | { | 4242 | { |
| @@ -5119,6 +5141,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
| 5119 | SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX), | 5141 | SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX), |
| 5120 | SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK), | 5142 | SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK), |
| 5121 | SND_PCI_QUIRK(0x10cf, 0x15dc, "Lifebook T731", ALC269_FIXUP_LIFEBOOK_HP_PIN), | 5143 | SND_PCI_QUIRK(0x10cf, 0x15dc, "Lifebook T731", ALC269_FIXUP_LIFEBOOK_HP_PIN), |
| 5144 | SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN), | ||
| 5122 | SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC), | 5145 | SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC), |
| 5123 | SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), | 5146 | SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), |
| 5124 | SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_BXBT2807_MIC), | 5147 | SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_BXBT2807_MIC), |
| @@ -5148,6 +5171,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
| 5148 | SND_PCI_QUIRK(0x17aa, 0x5026, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), | 5171 | SND_PCI_QUIRK(0x17aa, 0x5026, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
| 5149 | SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK), | 5172 | SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK), |
| 5150 | SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK), | 5173 | SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK), |
| 5174 | SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK), | ||
| 5151 | SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), | 5175 | SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
| 5152 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), | 5176 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), |
| 5153 | SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), | 5177 | SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), |
| @@ -5345,6 +5369,13 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { | |||
| 5345 | {0x17, 0x40000000}, | 5369 | {0x17, 0x40000000}, |
| 5346 | {0x1d, 0x40700001}, | 5370 | {0x1d, 0x40700001}, |
| 5347 | {0x21, 0x02211050}), | 5371 | {0x21, 0x02211050}), |
| 5372 | SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell Inspiron 5548", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, | ||
| 5373 | ALC255_STANDARD_PINS, | ||
| 5374 | {0x12, 0x90a60180}, | ||
| 5375 | {0x14, 0x90170130}, | ||
| 5376 | {0x17, 0x40000000}, | ||
| 5377 | {0x1d, 0x40700001}, | ||
| 5378 | {0x21, 0x02211040}), | ||
| 5348 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, | 5379 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, |
| 5349 | ALC256_STANDARD_PINS, | 5380 | ALC256_STANDARD_PINS, |
| 5350 | {0x13, 0x40000000}), | 5381 | {0x13, 0x40000000}), |
| @@ -5598,7 +5629,8 @@ static int patch_alc269(struct hda_codec *codec) | |||
| 5598 | 5629 | ||
| 5599 | spec = codec->spec; | 5630 | spec = codec->spec; |
| 5600 | spec->gen.shared_mic_vref_pin = 0x18; | 5631 | spec->gen.shared_mic_vref_pin = 0x18; |
| 5601 | codec->power_save_node = 1; | 5632 | if (codec->core.vendor_id != 0x10ec0292) |
| 5633 | codec->power_save_node = 1; | ||
| 5602 | 5634 | ||
| 5603 | snd_hda_pick_fixup(codec, alc269_fixup_models, | 5635 | snd_hda_pick_fixup(codec, alc269_fixup_models, |
| 5604 | alc269_fixup_tbl, alc269_fixups); | 5636 | alc269_fixup_tbl, alc269_fixups); |
| @@ -6079,7 +6111,9 @@ enum { | |||
| 6079 | ALC662_FIXUP_NO_JACK_DETECT, | 6111 | ALC662_FIXUP_NO_JACK_DETECT, |
| 6080 | ALC662_FIXUP_ZOTAC_Z68, | 6112 | ALC662_FIXUP_ZOTAC_Z68, |
| 6081 | ALC662_FIXUP_INV_DMIC, | 6113 | ALC662_FIXUP_INV_DMIC, |
| 6114 | ALC662_FIXUP_DELL_MIC_NO_PRESENCE, | ||
| 6082 | ALC668_FIXUP_DELL_MIC_NO_PRESENCE, | 6115 | ALC668_FIXUP_DELL_MIC_NO_PRESENCE, |
| 6116 | ALC662_FIXUP_HEADSET_MODE, | ||
| 6083 | ALC668_FIXUP_HEADSET_MODE, | 6117 | ALC668_FIXUP_HEADSET_MODE, |
| 6084 | ALC662_FIXUP_BASS_MODE4_CHMAP, | 6118 | ALC662_FIXUP_BASS_MODE4_CHMAP, |
| 6085 | ALC662_FIXUP_BASS_16, | 6119 | ALC662_FIXUP_BASS_16, |
| @@ -6272,6 +6306,20 @@ static const struct hda_fixup alc662_fixups[] = { | |||
| 6272 | .chained = true, | 6306 | .chained = true, |
| 6273 | .chain_id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE | 6307 | .chain_id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE |
| 6274 | }, | 6308 | }, |
| 6309 | [ALC662_FIXUP_DELL_MIC_NO_PRESENCE] = { | ||
| 6310 | .type = HDA_FIXUP_PINS, | ||
| 6311 | .v.pins = (const struct hda_pintbl[]) { | ||
| 6312 | { 0x19, 0x03a1113c }, /* use as headset mic, without its own jack detect */ | ||
| 6313 | /* headphone mic by setting pin control of 0x1b (headphone out) to in + vref_50 */ | ||
| 6314 | { } | ||
| 6315 | }, | ||
| 6316 | .chained = true, | ||
| 6317 | .chain_id = ALC662_FIXUP_HEADSET_MODE | ||
| 6318 | }, | ||
| 6319 | [ALC662_FIXUP_HEADSET_MODE] = { | ||
| 6320 | .type = HDA_FIXUP_FUNC, | ||
| 6321 | .v.func = alc_fixup_headset_mode_alc662, | ||
| 6322 | }, | ||
| 6275 | [ALC668_FIXUP_DELL_MIC_NO_PRESENCE] = { | 6323 | [ALC668_FIXUP_DELL_MIC_NO_PRESENCE] = { |
| 6276 | .type = HDA_FIXUP_PINS, | 6324 | .type = HDA_FIXUP_PINS, |
| 6277 | .v.pins = (const struct hda_pintbl[]) { | 6325 | .v.pins = (const struct hda_pintbl[]) { |
| @@ -6423,6 +6471,18 @@ static const struct hda_model_fixup alc662_fixup_models[] = { | |||
| 6423 | }; | 6471 | }; |
| 6424 | 6472 | ||
| 6425 | static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = { | 6473 | static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = { |
| 6474 | SND_HDA_PIN_QUIRK(0x10ec0662, 0x1028, "Dell", ALC662_FIXUP_DELL_MIC_NO_PRESENCE, | ||
| 6475 | {0x12, 0x4004c000}, | ||
| 6476 | {0x14, 0x01014010}, | ||
| 6477 | {0x15, 0x411111f0}, | ||
| 6478 | {0x16, 0x411111f0}, | ||
| 6479 | {0x18, 0x01a19020}, | ||
| 6480 | {0x19, 0x411111f0}, | ||
| 6481 | {0x1a, 0x0181302f}, | ||
| 6482 | {0x1b, 0x0221401f}, | ||
| 6483 | {0x1c, 0x411111f0}, | ||
| 6484 | {0x1d, 0x4054c601}, | ||
| 6485 | {0x1e, 0x411111f0}), | ||
| 6426 | SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, | 6486 | SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, |
| 6427 | {0x12, 0x99a30130}, | 6487 | {0x12, 0x99a30130}, |
| 6428 | {0x14, 0x90170110}, | 6488 | {0x14, 0x90170110}, |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 43c99ce4a520..6833c74ed6ff 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
| @@ -4403,7 +4403,6 @@ static const struct hda_codec_ops stac_patch_ops = { | |||
| 4403 | #ifdef CONFIG_PM | 4403 | #ifdef CONFIG_PM |
| 4404 | .suspend = stac_suspend, | 4404 | .suspend = stac_suspend, |
| 4405 | #endif | 4405 | #endif |
| 4406 | .stream_pm = snd_hda_gen_stream_pm, | ||
| 4407 | .reboot_notify = stac_shutup, | 4406 | .reboot_notify = stac_shutup, |
| 4408 | }; | 4407 | }; |
| 4409 | 4408 | ||
| @@ -4697,7 +4696,8 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) | |||
| 4697 | return err; | 4696 | return err; |
| 4698 | 4697 | ||
| 4699 | spec = codec->spec; | 4698 | spec = codec->spec; |
| 4700 | codec->power_save_node = 1; | 4699 | /* disabled power_save_node since it causes noises on a Dell machine */ |
| 4700 | /* codec->power_save_node = 1; */ | ||
| 4701 | spec->linear_tone_beep = 0; | 4701 | spec->linear_tone_beep = 0; |
| 4702 | spec->gen.own_eapd_ctl = 1; | 4702 | spec->gen.own_eapd_ctl = 1; |
| 4703 | spec->gen.power_down_unused = 1; | 4703 | spec->gen.power_down_unused = 1; |
diff --git a/sound/pci/hda/thinkpad_helper.c b/sound/pci/hda/thinkpad_helper.c index d51703e30523..0a4ad5feb82e 100644 --- a/sound/pci/hda/thinkpad_helper.c +++ b/sound/pci/hda/thinkpad_helper.c | |||
| @@ -72,7 +72,6 @@ static void hda_fixup_thinkpad_acpi(struct hda_codec *codec, | |||
| 72 | if (led_set_func(TPACPI_LED_MUTE, false) >= 0) { | 72 | if (led_set_func(TPACPI_LED_MUTE, false) >= 0) { |
| 73 | old_vmaster_hook = spec->vmaster_mute.hook; | 73 | old_vmaster_hook = spec->vmaster_mute.hook; |
| 74 | spec->vmaster_mute.hook = update_tpacpi_mute_led; | 74 | spec->vmaster_mute.hook = update_tpacpi_mute_led; |
| 75 | spec->vmaster_mute_enum = 1; | ||
| 76 | removefunc = false; | 75 | removefunc = false; |
| 77 | } | 76 | } |
| 78 | if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0) { | 77 | if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0) { |
