diff options
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d792cddbf4c2..f1ce7d7f5aa3 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -2619,16 +2619,18 @@ static int alc_build_controls(struct hda_codec *codec) | |||
| 2619 | } | 2619 | } |
| 2620 | 2620 | ||
| 2621 | /* assign Capture Source enums to NID */ | 2621 | /* assign Capture Source enums to NID */ |
| 2622 | kctl = snd_hda_find_mixer_ctl(codec, "Capture Source"); | 2622 | if (spec->capsrc_nids || spec->adc_nids) { |
| 2623 | if (!kctl) | 2623 | kctl = snd_hda_find_mixer_ctl(codec, "Capture Source"); |
| 2624 | kctl = snd_hda_find_mixer_ctl(codec, "Input Source"); | 2624 | if (!kctl) |
| 2625 | for (i = 0; kctl && i < kctl->count; i++) { | 2625 | kctl = snd_hda_find_mixer_ctl(codec, "Input Source"); |
| 2626 | hda_nid_t *nids = spec->capsrc_nids; | 2626 | for (i = 0; kctl && i < kctl->count; i++) { |
| 2627 | if (!nids) | 2627 | hda_nid_t *nids = spec->capsrc_nids; |
| 2628 | nids = spec->adc_nids; | 2628 | if (!nids) |
| 2629 | err = snd_hda_add_nid(codec, kctl, i, nids[i]); | 2629 | nids = spec->adc_nids; |
| 2630 | if (err < 0) | 2630 | err = snd_hda_add_nid(codec, kctl, i, nids[i]); |
| 2631 | return err; | 2631 | if (err < 0) |
| 2632 | return err; | ||
| 2633 | } | ||
| 2632 | } | 2634 | } |
| 2633 | if (spec->cap_mixer) { | 2635 | if (spec->cap_mixer) { |
| 2634 | const char *kname = kctl ? kctl->id.name : NULL; | 2636 | const char *kname = kctl ? kctl->id.name : NULL; |
| @@ -6948,7 +6950,7 @@ static struct hda_input_mux mb5_capture_source = { | |||
| 6948 | .num_items = 3, | 6950 | .num_items = 3, |
| 6949 | .items = { | 6951 | .items = { |
| 6950 | { "Mic", 0x1 }, | 6952 | { "Mic", 0x1 }, |
| 6951 | { "Line", 0x2 }, | 6953 | { "Line", 0x7 }, |
| 6952 | { "CD", 0x4 }, | 6954 | { "CD", 0x4 }, |
| 6953 | }, | 6955 | }, |
| 6954 | }; | 6956 | }; |
| @@ -7469,8 +7471,8 @@ static struct snd_kcontrol_new alc885_mb5_mixer[] = { | |||
| 7469 | HDA_BIND_MUTE ("LFE Playback Switch", 0x0e, 0x02, HDA_INPUT), | 7471 | HDA_BIND_MUTE ("LFE Playback Switch", 0x0e, 0x02, HDA_INPUT), |
| 7470 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0f, 0x00, HDA_OUTPUT), | 7472 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0f, 0x00, HDA_OUTPUT), |
| 7471 | HDA_BIND_MUTE ("Headphone Playback Switch", 0x0f, 0x02, HDA_INPUT), | 7473 | HDA_BIND_MUTE ("Headphone Playback Switch", 0x0f, 0x02, HDA_INPUT), |
| 7472 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), | 7474 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x07, HDA_INPUT), |
| 7473 | HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), | 7475 | HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x07, HDA_INPUT), |
| 7474 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), | 7476 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), |
| 7475 | HDA_CODEC_MUTE ("Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), | 7477 | HDA_CODEC_MUTE ("Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), |
| 7476 | HDA_CODEC_VOLUME("Line Boost", 0x15, 0x00, HDA_INPUT), | 7478 | HDA_CODEC_VOLUME("Line Boost", 0x15, 0x00, HDA_INPUT), |
| @@ -7853,10 +7855,9 @@ static struct hda_verb alc885_mb5_init_verbs[] = { | |||
| 7853 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 7855 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
| 7854 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, | 7856 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, |
| 7855 | 7857 | ||
| 7856 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 7858 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0x1)}, |
| 7857 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, | 7859 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0x7)}, |
| 7858 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, | 7860 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0x4)}, |
| 7859 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, | ||
| 7860 | { } | 7861 | { } |
| 7861 | }; | 7862 | }; |
| 7862 | 7863 | ||
| @@ -9477,6 +9478,9 @@ static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = { | |||
| 9477 | SND_PCI_QUIRK(0x106b, 0x2800, "AppleTV", ALC885_IMAC24), | 9478 | SND_PCI_QUIRK(0x106b, 0x2800, "AppleTV", ALC885_IMAC24), |
| 9478 | SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC885_MBP3), | 9479 | SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC885_MBP3), |
| 9479 | SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889A_MB31), | 9480 | SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889A_MB31), |
| 9481 | SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_ASUS_A7M), | ||
| 9482 | SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC885_MBP3), | ||
| 9483 | SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC885_MBA21), | ||
| 9480 | SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889A_MB31), | 9484 | SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889A_MB31), |
| 9481 | SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3), | 9485 | SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3), |
| 9482 | SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24), | 9486 | SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24), |
