浏览代码

[ALSA] hda-codec - Enable VIA SPDIF input pin

Enable the SPDIF input-pin on VIA codecs when SPDIF-input is enabled
by BIOS.  Also, including a bit code clean up.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Takashi Iwai 17 年之前
父节点
当前提交
12b74c80cc
共有 1 个文件被更改,包括 6 次插入4 次删除
  1. 6 4
      sound/pci/hda/patch_via.c

+ 6 - 4
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;
 }