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; |
