diff options
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index fc767b6b4785..f6cd8ed3272f 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; |