Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd704698 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

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: default avatarTakashi Iwai <tiwai@suse.de>
parent 100d5eb3
Loading
Loading
Loading
Loading
+12 −6
Original line number Original line Diff line number Diff line
@@ -15579,8 +15579,11 @@ static int patch_alc861vd(struct hda_codec *codec)
	spec->stream_digital_playback = &alc861vd_pcm_digital_playback;
	spec->stream_digital_playback = &alc861vd_pcm_digital_playback;
	spec->stream_digital_capture = &alc861vd_pcm_digital_capture;
	spec->stream_digital_capture = &alc861vd_pcm_digital_capture;
	if (!spec->adc_nids) {
		spec->adc_nids = alc861vd_adc_nids;
		spec->adc_nids = alc861vd_adc_nids;
		spec->num_adc_nids = ARRAY_SIZE(alc861vd_adc_nids);
		spec->num_adc_nids = ARRAY_SIZE(alc861vd_adc_nids);
	}
	if (!spec->capsrc_nids)
		spec->capsrc_nids = alc861vd_capsrc_nids;
		spec->capsrc_nids = alc861vd_capsrc_nids;
	set_capture_mixer(spec);
	set_capture_mixer(spec);
@@ -17498,8 +17501,11 @@ static int patch_alc662(struct hda_codec *codec)
	spec->stream_digital_playback = &alc662_pcm_digital_playback;
	spec->stream_digital_playback = &alc662_pcm_digital_playback;
	spec->stream_digital_capture = &alc662_pcm_digital_capture;
	spec->stream_digital_capture = &alc662_pcm_digital_capture;
	if (!spec->adc_nids) {
		spec->adc_nids = alc662_adc_nids;
		spec->adc_nids = alc662_adc_nids;
		spec->num_adc_nids = ARRAY_SIZE(alc662_adc_nids);
		spec->num_adc_nids = ARRAY_SIZE(alc662_adc_nids);
	}
	if (!spec->capsrc_nids)
		spec->capsrc_nids = alc662_capsrc_nids;
		spec->capsrc_nids = alc662_capsrc_nids;
	if (!spec->cap_mixer)
	if (!spec->cap_mixer)