diff options
Diffstat (limited to 'sound/pci/hda/patch_via.c')
-rw-r--r-- | sound/pci/hda/patch_via.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index c761394cbe84..b25a5cc637d6 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
@@ -1308,16 +1308,13 @@ static void vt1708_set_pinconfig_connect(struct hda_codec *codec, hda_nid_t nid) | |||
1308 | unsigned int def_conf; | 1308 | unsigned int def_conf; |
1309 | unsigned char seqassoc; | 1309 | unsigned char seqassoc; |
1310 | 1310 | ||
1311 | def_conf = snd_hda_codec_read(codec, nid, 0, | 1311 | def_conf = snd_hda_codec_get_pincfg(codec, nid); |
1312 | AC_VERB_GET_CONFIG_DEFAULT, 0); | ||
1313 | seqassoc = (unsigned char) get_defcfg_association(def_conf); | 1312 | seqassoc = (unsigned char) get_defcfg_association(def_conf); |
1314 | seqassoc = (seqassoc << 4) | get_defcfg_sequence(def_conf); | 1313 | seqassoc = (seqassoc << 4) | get_defcfg_sequence(def_conf); |
1315 | if (get_defcfg_connect(def_conf) == AC_JACK_PORT_NONE) { | 1314 | if (get_defcfg_connect(def_conf) == AC_JACK_PORT_NONE) { |
1316 | if (seqassoc == 0xff) { | 1315 | if (seqassoc == 0xff) { |
1317 | def_conf = def_conf & (~(AC_JACK_PORT_BOTH << 30)); | 1316 | def_conf = def_conf & (~(AC_JACK_PORT_BOTH << 30)); |
1318 | snd_hda_codec_write(codec, nid, 0, | 1317 | snd_hda_codec_set_pincfg(codec, nid, def_conf); |
1319 | AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, | ||
1320 | def_conf >> 24); | ||
1321 | } | 1318 | } |
1322 | } | 1319 | } |
1323 | 1320 | ||
@@ -1354,7 +1351,7 @@ static int vt1708_parse_auto_config(struct hda_codec *codec) | |||
1354 | 1351 | ||
1355 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; | 1352 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; |
1356 | 1353 | ||
1357 | if (spec->autocfg.dig_out_pin) | 1354 | if (spec->autocfg.dig_outs) |
1358 | spec->multiout.dig_out_nid = VT1708_DIGOUT_NID; | 1355 | spec->multiout.dig_out_nid = VT1708_DIGOUT_NID; |
1359 | if (spec->autocfg.dig_in_pin) | 1356 | if (spec->autocfg.dig_in_pin) |
1360 | spec->dig_in_nid = VT1708_DIGIN_NID; | 1357 | spec->dig_in_nid = VT1708_DIGIN_NID; |
@@ -1827,7 +1824,7 @@ static int vt1709_parse_auto_config(struct hda_codec *codec) | |||
1827 | 1824 | ||
1828 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; | 1825 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; |
1829 | 1826 | ||
1830 | if (spec->autocfg.dig_out_pin) | 1827 | if (spec->autocfg.dig_outs) |
1831 | spec->multiout.dig_out_nid = VT1709_DIGOUT_NID; | 1828 | spec->multiout.dig_out_nid = VT1709_DIGOUT_NID; |
1832 | if (spec->autocfg.dig_in_pin) | 1829 | if (spec->autocfg.dig_in_pin) |
1833 | spec->dig_in_nid = VT1709_DIGIN_NID; | 1830 | spec->dig_in_nid = VT1709_DIGIN_NID; |
@@ -2371,7 +2368,7 @@ static int vt1708B_parse_auto_config(struct hda_codec *codec) | |||
2371 | 2368 | ||
2372 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; | 2369 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; |
2373 | 2370 | ||
2374 | if (spec->autocfg.dig_out_pin) | 2371 | if (spec->autocfg.dig_outs) |
2375 | spec->multiout.dig_out_nid = VT1708B_DIGOUT_NID; | 2372 | spec->multiout.dig_out_nid = VT1708B_DIGOUT_NID; |
2376 | if (spec->autocfg.dig_in_pin) | 2373 | if (spec->autocfg.dig_in_pin) |
2377 | spec->dig_in_nid = VT1708B_DIGIN_NID; | 2374 | spec->dig_in_nid = VT1708B_DIGIN_NID; |
@@ -2836,7 +2833,7 @@ static int vt1708S_parse_auto_config(struct hda_codec *codec) | |||
2836 | 2833 | ||
2837 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; | 2834 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; |
2838 | 2835 | ||
2839 | if (spec->autocfg.dig_out_pin) | 2836 | if (spec->autocfg.dig_outs) |
2840 | spec->multiout.dig_out_nid = VT1708S_DIGOUT_NID; | 2837 | spec->multiout.dig_out_nid = VT1708S_DIGOUT_NID; |
2841 | 2838 | ||
2842 | spec->extra_dig_out_nid = 0x15; | 2839 | spec->extra_dig_out_nid = 0x15; |
@@ -3155,7 +3152,7 @@ static int vt1702_parse_auto_config(struct hda_codec *codec) | |||
3155 | 3152 | ||
3156 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; | 3153 | spec->multiout.max_channels = spec->multiout.num_dacs * 2; |
3157 | 3154 | ||
3158 | if (spec->autocfg.dig_out_pin) | 3155 | if (spec->autocfg.dig_outs) |
3159 | spec->multiout.dig_out_nid = VT1702_DIGOUT_NID; | 3156 | spec->multiout.dig_out_nid = VT1702_DIGOUT_NID; |
3160 | 3157 | ||
3161 | spec->extra_dig_out_nid = 0x1B; | 3158 | spec->extra_dig_out_nid = 0x1B; |