Commit bb3c6bfc authored by Lydia Wang's avatar Lydia Wang Committed by Takashi Iwai

ALSA: HDA VIA: Add VT1828S and VT2020 support.

Signed-off-by: default avatarLydia Wang <lydiawang@viatech.com.cn>
Signed-off-by: default avatarLogan Li <loganli@viatech.com.cn>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent eb7188ca
...@@ -179,6 +179,8 @@ static enum VIA_HDA_CODEC get_codec_type(struct hda_codec *codec) ...@@ -179,6 +179,8 @@ static enum VIA_HDA_CODEC get_codec_type(struct hda_codec *codec)
else if ((dev_id & 0xfff) == 0x428 else if ((dev_id & 0xfff) == 0x428
&& (dev_id >> 12) < 8) && (dev_id >> 12) < 8)
codec_type = VT1718S; codec_type = VT1718S;
else if (dev_id == 0x0441 || dev_id == 0x4441)
codec_type = VT1718S;
else else
codec_type = UNKNOWN; codec_type = UNKNOWN;
return codec_type; return codec_type;
...@@ -4323,21 +4325,31 @@ static int patch_vt1718S(struct hda_codec *codec) ...@@ -4323,21 +4325,31 @@ static int patch_vt1718S(struct hda_codec *codec)
spec->init_verbs[spec->num_iverbs++] = vt1718S_volume_init_verbs; spec->init_verbs[spec->num_iverbs++] = vt1718S_volume_init_verbs;
spec->init_verbs[spec->num_iverbs++] = vt1718S_uniwill_init_verbs; spec->init_verbs[spec->num_iverbs++] = vt1718S_uniwill_init_verbs;
if (codec->vendor_id == 0x11060441)
spec->stream_name_analog = "VT2020 Analog";
else if (codec->vendor_id == 0x11064441)
spec->stream_name_analog = "VT1828S Analog";
else
spec->stream_name_analog = "VT1718S Analog"; spec->stream_name_analog = "VT1718S Analog";
spec->stream_analog_playback = &vt1718S_pcm_analog_playback; spec->stream_analog_playback = &vt1718S_pcm_analog_playback;
spec->stream_analog_capture = &vt1718S_pcm_analog_capture; spec->stream_analog_capture = &vt1718S_pcm_analog_capture;
if (codec->vendor_id == 0x11060441)
spec->stream_name_digital = "VT2020 Digital";
else if (codec->vendor_id == 0x11064441)
spec->stream_name_digital = "VT1828S Digital";
else
spec->stream_name_digital = "VT1718S Digital"; spec->stream_name_digital = "VT1718S Digital";
spec->stream_digital_playback = &vt1718S_pcm_digital_playback; spec->stream_digital_playback = &vt1718S_pcm_digital_playback;
if (codec->vendor_id == 0x11060428) if (codec->vendor_id == 0x11060428 || codec->vendor_id == 0x11060441)
spec->stream_digital_capture = &vt1718S_pcm_digital_capture; spec->stream_digital_capture = &vt1718S_pcm_digital_capture;
if (!spec->adc_nids && spec->input_mux) { if (!spec->adc_nids && spec->input_mux) {
spec->adc_nids = vt1718S_adc_nids; spec->adc_nids = vt1718S_adc_nids;
spec->num_adc_nids = ARRAY_SIZE(vt1718S_adc_nids); spec->num_adc_nids = ARRAY_SIZE(vt1718S_adc_nids);
get_mux_nids(codec); get_mux_nids(codec);
override_mic_boost(codec, 0x1a, 0, 3, 40); override_mic_boost(codec, 0x2b, 0, 3, 40);
override_mic_boost(codec, 0x1e, 0, 3, 40); override_mic_boost(codec, 0x29, 0, 3, 40);
spec->mixers[spec->num_mixers] = vt1718S_capture_mixer; spec->mixers[spec->num_mixers] = vt1718S_capture_mixer;
spec->num_mixers++; spec->num_mixers++;
} }
...@@ -4429,6 +4441,10 @@ static struct hda_codec_preset snd_hda_preset_via[] = { ...@@ -4429,6 +4441,10 @@ static struct hda_codec_preset snd_hda_preset_via[] = {
.patch = patch_vt1718S}, .patch = patch_vt1718S},
{ .id = 0x11064428, .name = "VT1718S", { .id = 0x11064428, .name = "VT1718S",
.patch = patch_vt1718S}, .patch = patch_vt1718S},
{ .id = 0x11060441, .name = "VT2020",
.patch = patch_vt1718S},
{ .id = 0x11064441, .name = "VT1828S",
.patch = patch_vt1718S},
{} /* terminator */ {} /* terminator */
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment