ALSA: hda - Don't override ADC definitions for ALC codecs

ALC269 and ALC861-VD parsers override the ADC definitions
unconditionally without checking the spec definition. This causes
the problem when any inconsistent ADC is set up in the device quirk
(like ALC272 with digital-mic).

This patch avoids the overriding by adding the proper checks.

Reference: Novell bnc#529467
https://bugzilla.novell.com/show_bug.cgi?id=529467

Signed-off-by: Takashi Iwai <tiwai@suse.de>

+12 -6
+12 -6
sound/pci/hda/patch_realtek.c
··· 15579 15579 spec->stream_digital_playback = &alc861vd_pcm_digital_playback; 15580 15580 spec->stream_digital_capture = &alc861vd_pcm_digital_capture; 15581 15581 15582 - spec->adc_nids = alc861vd_adc_nids; 15583 - spec->num_adc_nids = ARRAY_SIZE(alc861vd_adc_nids); 15584 - spec->capsrc_nids = alc861vd_capsrc_nids; 15582 + if (!spec->adc_nids) { 15583 + spec->adc_nids = alc861vd_adc_nids; 15584 + spec->num_adc_nids = ARRAY_SIZE(alc861vd_adc_nids); 15585 + } 15586 + if (!spec->capsrc_nids) 15587 + spec->capsrc_nids = alc861vd_capsrc_nids; 15585 15588 15586 15589 set_capture_mixer(spec); 15587 15590 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); ··· 17501 17498 spec->stream_digital_playback = &alc662_pcm_digital_playback; 17502 17499 spec->stream_digital_capture = &alc662_pcm_digital_capture; 17503 17500 17504 - spec->adc_nids = alc662_adc_nids; 17505 - spec->num_adc_nids = ARRAY_SIZE(alc662_adc_nids); 17506 - spec->capsrc_nids = alc662_capsrc_nids; 17501 + if (!spec->adc_nids) { 17502 + spec->adc_nids = alc662_adc_nids; 17503 + spec->num_adc_nids = ARRAY_SIZE(alc662_adc_nids); 17504 + } 17505 + if (!spec->capsrc_nids) 17506 + spec->capsrc_nids = alc662_capsrc_nids; 17507 17507 17508 17508 if (!spec->cap_mixer) 17509 17509 set_capture_mixer(spec);