diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index d4dc5596c946..4e5dd4cf36f5 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c @@ -566,25 +566,27 @@ static int via_init(struct hda_codec *codec) if (IS_VT1708_VENDORID(codec->vendor_id)) { snd_hda_codec_write(codec, VT1708_DIGIN_PIN, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, - 0x40); + PIN_OUT); snd_hda_codec_write(codec, VT1708_DIGIN_PIN, 0, AC_VERB_SET_EAPD_BTLENABLE, 0x02); } else if (IS_VT1709_10CH_VENDORID(codec->vendor_id) || IS_VT1709_6CH_VENDORID(codec->vendor_id)) { snd_hda_codec_write(codec, VT1709_DIGIN_PIN, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, - 0x40); + PIN_OUT); snd_hda_codec_write(codec, VT1709_DIGIN_PIN, 0, AC_VERB_SET_EAPD_BTLENABLE, 0x02); } else if (IS_VT1708B_8CH_VENDORID(codec->vendor_id) || IS_VT1708B_4CH_VENDORID(codec->vendor_id)) { snd_hda_codec_write(codec, VT1708B_DIGIN_PIN, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, - 0x40); + PIN_OUT); snd_hda_codec_write(codec, VT1708B_DIGIN_PIN, 0, AC_VERB_SET_EAPD_BTLENABLE, 0x02); } - } + } else /* enable SPDIF-input pin */ + snd_hda_codec_write(codec, spec->autocfg.dig_in_pin, 0, + AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN); return 0; }