Lines Matching +full:0 +full:x1c02

164 	snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_COEF_INDEX, coef_idx);
165 val = snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_PROC_COEF, 0);
181 alc_read_coefex_idx(codec, 0x20, coef_idx)
186 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_COEF_INDEX, coef_idx);
187 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PROC_COEF, coef_val);
199 alc_write_coefex_idx(codec, 0x20, coef_idx, coef_val)
222 alc_update_coefex_idx(codec, 0x20, coef_idx, mask, bits_set)
224 /* a special bypass for COEF 0; read the cached value at the second time */
230 spec->coef0 = alc_read_coef_idx(codec, 0);
245 #define WRITE_COEF(_idx, _val) WRITE_COEFEX(0x20, _idx, _val)
246 #define UPDATE_COEF(_idx, _mask, _val) UPDATE_COEFEX(0x20, _idx, _mask, _val)
280 snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA,
305 snd_hda_codec_write(codec, codec->core.afg, 0,
307 snd_hda_codec_write(codec, codec->core.afg, 0,
324 alc_fixup_gpio(codec, action, 0x01);
330 alc_fixup_gpio(codec, action, 0x02);
336 alc_fixup_gpio(codec, action, 0x03);
342 alc_fixup_gpio(codec, action, 0x04);
363 1 << spec->pll_coef_bit, 0);
390 val = snd_hda_codec_read(codec, jack->nid, 0,
391 AC_VERB_GET_VOLUME_KNOB_CONTROL, 0);
393 uctl->value.integer.value[0] = val;
414 case 0x10ec0262:
415 alc_update_coef_idx(codec, 0x7, 0, 1<<5);
417 case 0x10ec0267:
418 case 0x10ec0268:
419 alc_update_coef_idx(codec, 0x7, 0, 1<<13);
421 case 0x10ec0269:
422 if ((coef & 0x00f0) == 0x0010)
423 alc_update_coef_idx(codec, 0xd, 0, 1<<14);
424 if ((coef & 0x00f0) == 0x0020)
425 alc_update_coef_idx(codec, 0x4, 1<<15, 0);
426 if ((coef & 0x00f0) == 0x0030)
427 alc_update_coef_idx(codec, 0x10, 1<<9, 0);
429 case 0x10ec0280:
430 case 0x10ec0284:
431 case 0x10ec0290:
432 case 0x10ec0292:
433 alc_update_coef_idx(codec, 0x4, 1<<15, 0);
435 case 0x10ec0225:
436 case 0x10ec0295:
437 case 0x10ec0299:
438 alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
440 case 0x10ec0215:
441 case 0x10ec0285:
442 case 0x10ec0289:
443 alc_update_coef_idx(codec, 0x36, 1<<13, 0);
445 case 0x10ec0230:
446 case 0x10ec0233:
447 case 0x10ec0235:
448 case 0x10ec0236:
449 case 0x10ec0245:
450 case 0x10ec0255:
451 case 0x10ec0256:
452 case 0x19e58326:
453 case 0x10ec0257:
454 case 0x10ec0282:
455 case 0x10ec0283:
456 case 0x10ec0286:
457 case 0x10ec0288:
458 case 0x10ec0298:
459 case 0x10ec0300:
460 alc_update_coef_idx(codec, 0x10, 1<<9, 0);
462 case 0x10ec0275:
463 alc_update_coef_idx(codec, 0xe, 0, 1<<0);
465 case 0x10ec0287:
466 alc_update_coef_idx(codec, 0x10, 1<<9, 0);
467 alc_write_coef_idx(codec, 0x8, 0x4ab7);
469 case 0x10ec0293:
470 alc_update_coef_idx(codec, 0xa, 1<<13, 0);
472 case 0x10ec0234:
473 case 0x10ec0274:
474 alc_write_coef_idx(codec, 0x6e, 0x0c25);
476 case 0x10ec0294:
477 case 0x10ec0700:
478 case 0x10ec0701:
479 case 0x10ec0703:
480 case 0x10ec0711:
481 alc_update_coef_idx(codec, 0x10, 1<<15, 0);
483 case 0x10ec0662:
484 if ((coef & 0x00f0) == 0x0030)
485 alc_update_coef_idx(codec, 0x4, 1<<10, 0); /* EAPD Ctrl */
487 case 0x10ec0272:
488 case 0x10ec0273:
489 case 0x10ec0663:
490 case 0x10ec0665:
491 case 0x10ec0670:
492 case 0x10ec0671:
493 case 0x10ec0672:
494 alc_update_coef_idx(codec, 0xd, 0, 1<<14); /* EAPD Ctrl */
496 case 0x10ec0222:
497 case 0x10ec0623:
498 alc_update_coef_idx(codec, 0x19, 1<<13, 0);
500 case 0x10ec0668:
501 alc_update_coef_idx(codec, 0x7, 3<<13, 0);
503 case 0x10ec0867:
504 alc_update_coef_idx(codec, 0x4, 1<<10, 0);
506 case 0x10ec0888:
507 if ((coef & 0x00f0) == 0x0020 || (coef & 0x00f0) == 0x0030)
508 alc_update_coef_idx(codec, 0x7, 1<<5, 0);
510 case 0x10ec0892:
511 case 0x10ec0897:
512 alc_update_coef_idx(codec, 0x7, 1<<5, 0);
514 case 0x10ec0899:
515 case 0x10ec0900:
516 case 0x10ec0b00:
517 case 0x10ec1168:
518 case 0x10ec1220:
519 alc_update_coef_idx(codec, 0x7, 1<<1, 0);
527 switch (alc_get_coef0(codec) & 0x00f0) {
529 case 0x00:
531 case 0x10:
532 alc_update_coef_idx(codec, 7, 0, 0x2030); /* Turn EAPD to High */
543 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_EAPD_BTLENABLE,
544 on ? 2 : 0);
552 0x0f, 0x10, 0x14, 0x15, 0x17, 0
576 snd_hda_codec_read(codec, pin->nid, 0,
577 AC_VERB_SET_PIN_WIDGET_CONTROL, 0);
588 case 0x10ec0236:
589 case 0x10ec0256:
590 case 0x10ec0257:
591 case 0x19e58326:
592 case 0x10ec0283:
593 case 0x10ec0285:
594 case 0x10ec0286:
595 case 0x10ec0287:
596 case 0x10ec0288:
597 case 0x10ec0295:
598 case 0x10ec0298:
629 case 0x10ec0260:
630 alc_update_coefex_idx(codec, 0x1a, 7, 0, 0x2010);
632 case 0x10ec0880:
633 case 0x10ec0882:
634 case 0x10ec0883:
635 case 0x10ec0885:
636 alc_update_coef_idx(codec, 7, 0, 0x2030);
638 case 0x10ec0888:
649 if (spec->gen.autocfg.hp_pins[0])
650 return spec->gen.autocfg.hp_pins[0];
652 return spec->gen.autocfg.line_out_pins[0];
653 return 0;
682 codec->depop_delay = 0;
689 unsigned nid = 0;
703 ass = codec->core.subsystem_id & 0xffff;
707 nid = 0x1d;
708 if (codec->core.vendor_id == 0x10ec0260)
709 nid = 0x17;
713 codec_info(codec, "%s: SKU not ready 0x%08x\n",
719 tmp = 0;
724 if (((ass >> 16) & 0xf) != tmp)
728 spec->cdefine.enable_pcbeep = (ass & 0x100000) >> 20;
729 spec->cdefine.check_sum = (ass >> 16) & 0xf;
733 spec->cdefine.external_amp = (ass & 0x38) >> 3;
734 spec->cdefine.platform_type = (ass & 0x4) >> 2;
735 spec->cdefine.swap = (ass & 0x2) >> 1;
736 spec->cdefine.override = ass & 0x1;
738 codec_dbg(codec, "SKU: Nid=0x%x sku_cfg=0x%08x\n",
740 codec_dbg(codec, "SKU: port_connectivity=0x%x\n",
742 codec_dbg(codec, "SKU: enable_pcbeep=0x%x\n", spec->cdefine.enable_pcbeep);
743 codec_dbg(codec, "SKU: check_sum=0x%08x\n", spec->cdefine.check_sum);
744 codec_dbg(codec, "SKU: customization=0x%08x\n", spec->cdefine.customization);
745 codec_dbg(codec, "SKU: external_amp=0x%x\n", spec->cdefine.external_amp);
746 codec_dbg(codec, "SKU: platform_type=0x%x\n", spec->cdefine.platform_type);
747 codec_dbg(codec, "SKU: swap=0x%x\n", spec->cdefine.swap);
748 codec_dbg(codec, "SKU: override=0x%x\n", spec->cdefine.override);
750 return 0;
757 for (i = 0; i < nums; i++)
765 return find_idx_in_nid_list(nid, list, nums) >= 0;
769 * return 1 if initialized, 0 if invalid SSID
774 * 7 ~ 0 : Assembly ID
786 return 0;
790 ass = codec->core.subsystem_id & 0xffff;
802 * 0 : override
804 nid = 0x1d;
805 if (codec->core.vendor_id == 0x10ec0260)
806 nid = 0x17;
809 "realtek: No valid SSID, checking pincfg 0x%08x for NID 0x%x\n",
812 return 0;
814 return 0;
817 tmp = 0;
822 if (((ass >> 16) & 0xf) != tmp)
823 return 0;
825 codec_dbg(codec, "realtek: Enabling init ASM_ID=0x%04x CODEC_ID=%08x\n",
826 ass & 0xffff, codec->core.vendor_id);
828 * 0 : override
830 * 2 : 0 --> Desktop, 1 --> Laptop
834 tmp = (ass & 0x38) >> 3; /* external Amp control */
838 alc_setup_gpio(codec, 0x01);
841 alc_setup_gpio(codec, 0x02);
844 alc_setup_gpio(codec, 0x04);
856 if (!(ass & 0x8000))
867 tmp = (ass >> 11) & 0x3; /* HP to chassis */
872 spec->gen.autocfg.hp_pins[0] = nid;
908 if (err < 0)
912 return 0;
949 return 0;
979 return 0;
990 hda_call_check_power_status(codec, 0x01);
991 return 0;
1031 { 0x10ec0221, 0xf00f, 0x1003, "ALC231" },
1032 { 0x10ec0269, 0xfff0, 0x3010, "ALC277" },
1033 { 0x10ec0269, 0xf0f0, 0x2010, "ALC259" },
1034 { 0x10ec0269, 0xf0f0, 0x3010, "ALC258" },
1035 { 0x10ec0269, 0x00f0, 0x0010, "ALC269VB" },
1036 { 0x10ec0269, 0xffff, 0xa023, "ALC259" },
1037 { 0x10ec0269, 0xffff, 0x6023, "ALC281X" },
1038 { 0x10ec0269, 0x00f0, 0x0020, "ALC269VC" },
1039 { 0x10ec0269, 0x00f0, 0x0030, "ALC269VD" },
1040 { 0x10ec0662, 0xffff, 0x4020, "ALC656" },
1041 { 0x10ec0887, 0x00f0, 0x0030, "ALC887-VD" },
1042 { 0x10ec0888, 0x00f0, 0x0030, "ALC888-VD" },
1043 { 0x10ec0888, 0xf0f0, 0x3020, "ALC886" },
1044 { 0x10ec0899, 0x2000, 0x2000, "ALC899" },
1045 { 0x10ec0892, 0xffff, 0x8020, "ALC661" },
1046 { 0x10ec0892, 0xffff, 0x8011, "ALC661" },
1047 { 0x10ec0892, 0xffff, 0x4011, "ALC656" },
1052 { 0x10ec0280, 0x1028, 0, "ALC3220" },
1053 { 0x10ec0282, 0x1028, 0, "ALC3221" },
1054 { 0x10ec0283, 0x1028, 0, "ALC3223" },
1055 { 0x10ec0288, 0x1028, 0, "ALC3263" },
1056 { 0x10ec0292, 0x1028, 0, "ALC3226" },
1057 { 0x10ec0293, 0x1028, 0, "ALC3235" },
1058 { 0x10ec0255, 0x1028, 0, "ALC3234" },
1059 { 0x10ec0668, 0x1028, 0, "ALC3661" },
1060 { 0x10ec0275, 0x1028, 0, "ALC3260" },
1061 { 0x10ec0899, 0x1028, 0, "ALC3861" },
1062 { 0x10ec0298, 0x1028, 0, "ALC3266" },
1063 { 0x10ec0236, 0x1028, 0, "ALC3204" },
1064 { 0x10ec0256, 0x1028, 0, "ALC3246" },
1065 { 0x10ec0225, 0x1028, 0, "ALC3253" },
1066 { 0x10ec0295, 0x1028, 0, "ALC3254" },
1067 { 0x10ec0299, 0x1028, 0, "ALC3271" },
1068 { 0x10ec0670, 0x1025, 0, "ALC669X" },
1069 { 0x10ec0676, 0x1025, 0, "ALC679X" },
1070 { 0x10ec0282, 0x1043, 0, "ALC3229" },
1071 { 0x10ec0233, 0x1043, 0, "ALC3236" },
1072 { 0x10ec0280, 0x103c, 0, "ALC3228" },
1073 { 0x10ec0282, 0x103c, 0, "ALC3227" },
1074 { 0x10ec0286, 0x103c, 0, "ALC3242" },
1075 { 0x10ec0290, 0x103c, 0, "ALC3241" },
1076 { 0x10ec0668, 0x103c, 0, "ALC3662" },
1077 { 0x10ec0283, 0x17aa, 0, "ALC3239" },
1078 { 0x10ec0292, 0x17aa, 0, "ALC3232" },
1095 return 0;
1106 return 0;
1117 HDA_CODEC_VOLUME("Beep Playback Volume", 0, 0, HDA_INPUT),
1118 HDA_CODEC_MUTE_BEEP("Beep Playback Switch", 0, 0, HDA_INPUT),
1129 for (i = 0; i < ARRAY_SIZE(alc_beep_mixer); i++) {
1136 return 0;
1140 SND_PCI_QUIRK(0x1043, 0x103c, "ASUS", 1),
1141 SND_PCI_QUIRK(0x1043, 0x115d, "ASUS", 1),
1142 SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1),
1143 SND_PCI_QUIRK(0x1043, 0x8376, "EeePC", 1),
1144 SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1),
1145 SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1),
1146 SND_PCI_QUIRK(0x1043, 0x834a, "EeePC", 1),
1147 SND_PCI_QUIRK(0x1458, 0xa002, "GA-MA790X", 1),
1148 SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1),
1150 SND_PCI_QUIRK(0x17aa, 0x309e, "Lenovo ThinkCentre M73", 0),
1151 SND_PCI_QUIRK(0x17aa, 0x30a3, "Lenovo ThinkCentre M93", 0),
1165 #define set_beep_amp(spec, nid, idx, dir) 0
1166 #define has_cdefine_beep(codec) 0
1170 /* return 1 if successful, 0 if the proper config is not found,
1183 if (err < 0)
1190 if (err < 0)
1216 if (err < 0) {
1220 return 0;
1225 static const hda_nid_t alc880_ignore[] = { 0x1d, 0 };
1226 static const hda_nid_t alc880_ssids[] = { 0x15, 0x1b, 0x14, 0 };
1261 /* enable the volume-knob widget support on NID 0x21 */
1266 snd_hda_jack_detect_enable_callback(codec, 0x21,
1282 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
1283 { 0x20, AC_VERB_SET_PROC_COEF, 0x3060 },
1293 { 0x16, 0x411111f0 },
1294 { 0x18, 0x411111f0 },
1295 { 0x1a, 0x411111f0 },
1302 { 0x1a, 0x0181344f }, /* line-in */
1303 { 0x1b, 0x0321403f }, /* headphone */
1311 { 0x17, 0x411111f0 },
1321 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
1322 { 0x20, AC_VERB_SET_PROC_COEF, 0x3060 },
1330 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
1331 { 0x20, AC_VERB_SET_PROC_COEF, 0x3070 },
1345 { 0x14, 0x0121401f }, /* HP */
1346 { 0x15, 0x99030120 }, /* speaker */
1347 { 0x16, 0x99030130 }, /* bass speaker */
1348 { 0x17, 0x411111f0 }, /* N/A */
1349 { 0x18, 0x411111f0 }, /* N/A */
1350 { 0x19, 0x01a19950 }, /* mic-in */
1351 { 0x1a, 0x411111f0 }, /* N/A */
1352 { 0x1b, 0x411111f0 }, /* N/A */
1353 { 0x1c, 0x411111f0 }, /* N/A */
1354 { 0x1d, 0x411111f0 }, /* N/A */
1355 { 0x1e, 0x01454140 }, /* SPDIF out */
1365 { 0x14, 0x0121401f }, /* HP */
1366 { 0x15, 0x99030120 }, /* speaker */
1367 { 0x16, 0x411111f0 }, /* N/A */
1368 { 0x17, 0x411111f0 }, /* N/A */
1369 { 0x18, 0x411111f0 }, /* N/A */
1370 { 0x19, 0x01a19950 }, /* mic-in */
1371 { 0x1a, 0x411111f0 }, /* N/A */
1372 { 0x1b, 0x411111f0 }, /* N/A */
1373 { 0x1c, 0x411111f0 }, /* N/A */
1374 { 0x1d, 0x411111f0 }, /* N/A */
1375 { 0x1e, 0x411111f0 }, /* N/A */
1385 { 0x14, 0x0121411f }, /* HP */
1386 { 0x15, 0x99030120 }, /* speaker */
1387 { 0x16, 0x99030130 }, /* bass speaker */
1395 { 0x17, 0x411111f0 },
1396 { 0x19, 0x411111f0 },
1397 { 0x1b, 0x411111f0 },
1398 { 0x1f, 0x411111f0 },
1406 { 0x14, 0x99030120 }, /* speaker */
1407 { 0x15, 0x0121411f }, /* HP */
1408 { 0x16, 0x411111f0 }, /* N/A */
1409 { 0x17, 0x411111f0 }, /* N/A */
1410 { 0x18, 0x01a19950 }, /* mic-in */
1411 { 0x19, 0x411111f0 }, /* N/A */
1412 { 0x1a, 0x01813031 }, /* line-in */
1413 { 0x1b, 0x411111f0 }, /* N/A */
1414 { 0x1c, 0x411111f0 }, /* N/A */
1415 { 0x1d, 0x411111f0 }, /* N/A */
1416 { 0x1e, 0x0144111e }, /* SPDIF */
1424 { 0x14, 0x0121411f }, /* HP */
1425 { 0x15, 0x411111f0 }, /* N/A */
1426 { 0x16, 0x411111f0 }, /* N/A */
1427 { 0x17, 0x411111f0 }, /* N/A */
1428 { 0x18, 0x90a60160 }, /* mic */
1429 { 0x19, 0x411111f0 }, /* N/A */
1430 { 0x1a, 0x411111f0 }, /* N/A */
1431 { 0x1b, 0x411111f0 }, /* N/A */
1432 { 0x1c, 0x411111f0 }, /* N/A */
1433 { 0x1d, 0x411111f0 }, /* N/A */
1434 { 0x1e, 0xb743111e }, /* SPDIF out */
1443 { 0x14, 0x01014010 }, /* line-out */
1444 { 0x15, 0x411111f0 }, /* N/A */
1445 { 0x16, 0x411111f0 }, /* N/A */
1446 { 0x17, 0x411111f0 }, /* N/A */
1447 { 0x18, 0x01a19c30 }, /* mic-in */
1448 { 0x19, 0x0121411f }, /* HP */
1449 { 0x1a, 0x01813031 }, /* line-in */
1450 { 0x1b, 0x02a19c40 }, /* front-mic */
1451 { 0x1c, 0x411111f0 }, /* N/A */
1452 { 0x1d, 0x411111f0 }, /* N/A */
1453 /* 0x1e is filled in below */
1454 { 0x1f, 0x411111f0 }, /* N/A */
1461 { 0x1e, 0x411111f0 }, /* N/A */
1470 { 0x1e, 0x0144111e }, /* SPDIF */
1479 { 0x14, 0x01014010 }, /* front */
1480 { 0x15, 0x411111f0 }, /* N/A */
1481 { 0x16, 0x01011411 }, /* CLFE */
1482 { 0x17, 0x01016412 }, /* surr */
1483 { 0x18, 0x01a19c30 }, /* mic-in */
1484 { 0x19, 0x0121411f }, /* HP */
1485 { 0x1a, 0x01813031 }, /* line-in */
1486 { 0x1b, 0x02a19c40 }, /* front-mic */
1487 { 0x1c, 0x411111f0 }, /* N/A */
1488 { 0x1d, 0x411111f0 }, /* N/A */
1489 /* 0x1e is filled in below */
1490 { 0x1f, 0x411111f0 }, /* N/A */
1497 { 0x1e, 0x411111f0 }, /* N/A */
1506 { 0x1e, 0x0144111e }, /* SPDIF */
1515 { 0x14, 0x01014010 }, /* front */
1516 { 0x15, 0x01016412 }, /* surr */
1517 { 0x16, 0x01011411 }, /* CLFE */
1518 { 0x17, 0x01012414 }, /* side */
1519 { 0x18, 0x01a19c30 }, /* mic-in */
1520 { 0x19, 0x02a19c40 }, /* front-mic */
1521 { 0x1a, 0x01813031 }, /* line-in */
1522 { 0x1b, 0x0121411f }, /* HP */
1523 { 0x1c, 0x411111f0 }, /* N/A */
1524 { 0x1d, 0x411111f0 }, /* N/A */
1525 /* 0x1e is filled in below */
1526 { 0x1f, 0x411111f0 }, /* N/A */
1533 { 0x1e, 0x411111f0 }, /* N/A */
1542 { 0x1e, 0x0144111e }, /* SPDIF */
1551 { 0x1b, 0x0121401f }, /* HP with jack detect */
1560 SND_PCI_QUIRK(0x1019, 0x0f69, "Coeus G610P", ALC880_FIXUP_W810),
1561 SND_PCI_QUIRK(0x1043, 0x10c3, "ASUS W5A", ALC880_FIXUP_ASUS_W5A),
1562 SND_PCI_QUIRK(0x1043, 0x1964, "ASUS Z71V", ALC880_FIXUP_Z71V),
1563 SND_PCI_QUIRK_VENDOR(0x1043, "ASUS", ALC880_FIXUP_GPIO1),
1564 SND_PCI_QUIRK(0x147b, 0x1045, "ABit AA8XE", ALC880_FIXUP_6ST_AUTOMUTE),
1565 SND_PCI_QUIRK(0x1558, 0x5401, "Clevo GPIO2", ALC880_FIXUP_GPIO2),
1566 SND_PCI_QUIRK_VENDOR(0x1558, "Clevo", ALC880_FIXUP_EAPD_COEF),
1567 SND_PCI_QUIRK(0x1584, 0x9050, "Uniwill", ALC880_FIXUP_UNIWILL_DIG),
1568 SND_PCI_QUIRK(0x1584, 0x9054, "Uniwill", ALC880_FIXUP_F1734),
1569 SND_PCI_QUIRK(0x1584, 0x9070, "Uniwill", ALC880_FIXUP_UNIWILL),
1570 SND_PCI_QUIRK(0x1584, 0x9077, "Uniwill P53", ALC880_FIXUP_VOL_KNOB),
1571 SND_PCI_QUIRK(0x161f, 0x203d, "W810", ALC880_FIXUP_W810),
1572 SND_PCI_QUIRK(0x161f, 0x205d, "Medion Rim 2150", ALC880_FIXUP_MEDION_RIM),
1573 SND_PCI_QUIRK(0x1631, 0xe011, "PB 13201056", ALC880_FIXUP_6ST_AUTOMUTE),
1574 SND_PCI_QUIRK(0x1734, 0x107c, "FSC Amilo M1437", ALC880_FIXUP_FUJITSU),
1575 SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FIXUP_FUJITSU),
1576 SND_PCI_QUIRK(0x1734, 0x10ac, "FSC AMILO Xi 1526", ALC880_FIXUP_F1734),
1577 SND_PCI_QUIRK(0x1734, 0x10b0, "FSC Amilo Pi1556", ALC880_FIXUP_FUJITSU),
1578 SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_FIXUP_LG),
1579 SND_PCI_QUIRK(0x1854, 0x005f, "LG P1 Express", ALC880_FIXUP_LG),
1580 SND_PCI_QUIRK(0x1854, 0x0068, "LG w1", ALC880_FIXUP_LG),
1581 SND_PCI_QUIRK(0x1854, 0x0077, "LG LW25", ALC880_FIXUP_LG_LW25),
1582 SND_PCI_QUIRK(0x19db, 0x4188, "TCL S700", ALC880_FIXUP_TCL_S700),
1590 SND_PCI_QUIRK(0x1019, 0xa880, "ECS", ALC880_FIXUP_5ST_DIG),
1591 SND_PCI_QUIRK(0x1019, 0xa884, "Acer APFV", ALC880_FIXUP_6ST),
1592 SND_PCI_QUIRK(0x1025, 0x0070, "ULI", ALC880_FIXUP_3ST_DIG),
1593 SND_PCI_QUIRK(0x1025, 0x0077, "ULI", ALC880_FIXUP_6ST_DIG),
1594 SND_PCI_QUIRK(0x1025, 0x0078, "ULI", ALC880_FIXUP_6ST_DIG),
1595 SND_PCI_QUIRK(0x1025, 0x0087, "ULI", ALC880_FIXUP_6ST_DIG),
1596 SND_PCI_QUIRK(0x1025, 0xe309, "ULI", ALC880_FIXUP_3ST_DIG),
1597 SND_PCI_QUIRK(0x1025, 0xe310, "ULI", ALC880_FIXUP_3ST),
1598 SND_PCI_QUIRK(0x1039, 0x1234, NULL, ALC880_FIXUP_6ST_DIG),
1599 SND_PCI_QUIRK(0x104d, 0x81a0, "Sony", ALC880_FIXUP_3ST),
1600 SND_PCI_QUIRK(0x104d, 0x81d6, "Sony", ALC880_FIXUP_3ST),
1601 SND_PCI_QUIRK(0x107b, 0x3032, "Gateway", ALC880_FIXUP_5ST),
1602 SND_PCI_QUIRK(0x107b, 0x3033, "Gateway", ALC880_FIXUP_5ST),
1603 SND_PCI_QUIRK(0x107b, 0x4039, "Gateway", ALC880_FIXUP_5ST),
1604 SND_PCI_QUIRK(0x1297, 0xc790, "Shuttle ST20G5", ALC880_FIXUP_6ST_DIG),
1605 SND_PCI_QUIRK(0x1458, 0xa102, "Gigabyte K8", ALC880_FIXUP_6ST_DIG),
1606 SND_PCI_QUIRK(0x1462, 0x1150, "MSI", ALC880_FIXUP_6ST_DIG),
1607 SND_PCI_QUIRK(0x1509, 0x925d, "FIC P4M", ALC880_FIXUP_6ST_DIG),
1608 SND_PCI_QUIRK(0x1565, 0x8202, "Biostar", ALC880_FIXUP_5ST_DIG),
1609 SND_PCI_QUIRK(0x1695, 0x400d, "EPoX", ALC880_FIXUP_5ST_DIG),
1610 SND_PCI_QUIRK(0x1695, 0x4012, "EPox EP-5LDA", ALC880_FIXUP_5ST_DIG),
1611 SND_PCI_QUIRK(0x2668, 0x8086, NULL, ALC880_FIXUP_6ST_DIG), /* broken BIOS */
1612 SND_PCI_QUIRK(0x8086, 0x2668, NULL, ALC880_FIXUP_6ST_DIG),
1613 SND_PCI_QUIRK(0x8086, 0xa100, "Intel mobo", ALC880_FIXUP_5ST_DIG),
1614 SND_PCI_QUIRK(0x8086, 0xd400, "Intel mobo", ALC880_FIXUP_5ST_DIG),
1615 SND_PCI_QUIRK(0x8086, 0xd401, "Intel mobo", ALC880_FIXUP_5ST_DIG),
1616 SND_PCI_QUIRK(0x8086, 0xd402, "Intel mobo", ALC880_FIXUP_3ST_DIG),
1617 SND_PCI_QUIRK(0x8086, 0xe224, "Intel mobo", ALC880_FIXUP_5ST_DIG),
1618 SND_PCI_QUIRK(0x8086, 0xe305, "Intel mobo", ALC880_FIXUP_3ST_DIG),
1619 SND_PCI_QUIRK(0x8086, 0xe308, "Intel mobo", ALC880_FIXUP_3ST_DIG),
1620 SND_PCI_QUIRK(0x8086, 0xe400, "Intel mobo", ALC880_FIXUP_5ST_DIG),
1621 SND_PCI_QUIRK(0x8086, 0xe401, "Intel mobo", ALC880_FIXUP_5ST_DIG),
1622 SND_PCI_QUIRK(0x8086, 0xe402, "Intel mobo", ALC880_FIXUP_5ST_DIG),
1624 SND_PCI_QUIRK_VENDOR(0x8086, "Intel mobo", ALC880_FIXUP_3ST),
1625 SND_PCI_QUIRK(0xa0a0, 0x0560, "AOpen i915GMm-HFS", ALC880_FIXUP_5ST_DIG),
1626 SND_PCI_QUIRK(0xe803, 0x1019, NULL, ALC880_FIXUP_6ST_DIG),
1650 err = alc_alloc_spec(codec, 0x0b);
1651 if (err < 0)
1656 spec->gen.beep_nid = 0x01;
1668 if (err < 0)
1672 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
1673 if (err < 0)
1679 return 0;
1692 static const hda_nid_t alc260_ignore[] = { 0x17, 0 };
1693 static const hda_nid_t alc260_ssids[] = { 0x10, 0x15, 0x0f, 0 };
1718 alc_update_gpio_data(codec, 0x01, spec->gen.hp_jack_present);
1732 spec->gen.autocfg.hp_pins[0] = 0x0f; /* copy it for automute */
1733 snd_hda_jack_detect_enable_callback(codec, 0x0f,
1735 alc_setup_gpio(codec, 0x01);
1744 { 0x0f, 0x02214000 }, /* HP/speaker */
1745 { 0x12, 0x90a60160 }, /* int mic */
1746 { 0x13, 0x02a19000 }, /* ext mic */
1747 { 0x18, 0x01446000 }, /* SPDIF out */
1749 { 0x10, 0x411111f0 },
1750 { 0x11, 0x411111f0 },
1751 { 0x14, 0x411111f0 },
1752 { 0x15, 0x411111f0 },
1753 { 0x16, 0x411111f0 },
1754 { 0x17, 0x411111f0 },
1755 { 0x19, 0x411111f0 },
1789 { 0x11, 0x90130110 }, /* speaker */
1796 { 0x0f, 0x01214000 }, /* HP */
1803 { 0x1a, AC_VERB_SET_COEF_INDEX, 0x07 },
1804 { 0x1a, AC_VERB_SET_PROC_COEF, 0x3040 },
1821 { 0x1a, AC_VERB_SET_COEF_INDEX, 0x07 },
1822 { 0x1a, AC_VERB_SET_PROC_COEF, 0x3050 },
1852 { 0x0f, 0x01211020 },
1853 { 0x10, 0x0001003f },
1854 { 0x11, 0x411111f0 },
1855 { 0x12, 0x01a15930 },
1856 { 0x13, 0x411111f0 },
1857 { 0x14, 0x411111f0 },
1858 { 0x15, 0x411111f0 },
1859 { 0x16, 0x411111f0 },
1860 { 0x17, 0x411111f0 },
1861 { 0x18, 0x411111f0 },
1862 { 0x19, 0x411111f0 },
1869 SND_PCI_QUIRK(0x1025, 0x007b, "Acer C20x", ALC260_FIXUP_GPIO1),
1870 SND_PCI_QUIRK(0x1025, 0x007f, "Acer Aspire 9500", ALC260_FIXUP_COEF),
1871 SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_FIXUP_GPIO1),
1872 SND_PCI_QUIRK(0x103c, 0x280a, "HP dc5750", ALC260_FIXUP_HP_DC5750),
1873 SND_PCI_QUIRK(0x103c, 0x30ba, "HP Presario B1900", ALC260_FIXUP_HP_B1900),
1874 SND_PCI_QUIRK(0x104d, 0x81bb, "Sony VAIO", ALC260_FIXUP_VAIO_PINS),
1875 SND_PCI_QUIRK(0x104d, 0x81e2, "Sony VAIO TX", ALC260_FIXUP_HP_PIN_0F),
1876 SND_PCI_QUIRK(0x10cf, 0x1326, "FSC LifeBook S7020", ALC260_FIXUP_FSC_S7020),
1877 SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FIXUP_GPIO1),
1878 SND_PCI_QUIRK(0x152d, 0x0729, "Quanta KN1", ALC260_FIXUP_KN1),
1879 SND_PCI_QUIRK(0x161f, 0x2057, "Replacer 672V", ALC260_FIXUP_REPLACER),
1880 SND_PCI_QUIRK(0x1631, 0xc017, "PB V7900", ALC260_FIXUP_COEF),
1899 err = alc_alloc_spec(codec, 0x07);
1900 if (err < 0)
1909 spec->gen.beep_nid = 0x01;
1921 if (err < 0)
1925 err = set_beep_amp(spec, 0x07, 0x05, HDA_INPUT);
1926 if (err < 0)
1932 return 0;
2005 alc_update_coef_idx(codec, 7, 0, 0x2030);
2027 static const hda_nid_t conn1[] = { 0x0c, 0x0d };
2028 static const hda_nid_t conn2[] = { 0x0e, 0x0f };
2029 snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn1), conn1);
2030 snd_hda_override_conn_list(codec, 0x15, ARRAY_SIZE(conn1), conn1);
2031 snd_hda_override_conn_list(codec, 0x18, ARRAY_SIZE(conn2), conn2);
2032 snd_hda_override_conn_list(codec, 0x1a, ARRAY_SIZE(conn2), conn2);
2035 static const hda_nid_t conn[] = { 0x0c, 0x0d, 0x0e, 0x0f, 0x26 };
2036 snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
2037 snd_hda_override_conn_list(codec, 0x15, ARRAY_SIZE(conn), conn);
2038 snd_hda_override_conn_list(codec, 0x18, ARRAY_SIZE(conn), conn);
2039 snd_hda_override_conn_list(codec, 0x1a, ARRAY_SIZE(conn), conn);
2047 static const hda_nid_t nids[] = { 0x14, 0x15, 0x19 };
2053 for (i = 0; i < ARRAY_SIZE(nids); i++) {
2071 for (i = 0; i < num_nids; i++) {
2084 static const hda_nid_t nids[] = { 0x18, 0x1a };
2094 static const hda_nid_t nids[] = { 0x18 };
2104 static const hda_nid_t nids[] = { 0x18, 0x19 };
2112 * all-in-one desktop PCs (for example VGC-LN51JGB) through DAC 0x05
2143 spec->gen.mixer_nid = 0;
2171 codec->addr == 0 ?
2175 codec->addr == 0 ?
2186 static const hda_nid_t conn1[] = { 0x0c };
2188 WRITE_COEF(0x07, 0x03c0),
2189 WRITE_COEF(0x1a, 0x01c1),
2190 WRITE_COEF(0x1b, 0x0202),
2191 WRITE_COEF(0x43, 0x3005),
2197 snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn1), conn1);
2198 snd_hda_override_conn_list(codec, 0x1b, ARRAY_SIZE(conn1), conn1);
2210 static const hda_nid_t conn1[] = { 0x0c };
2215 alc_update_coef_idx(codec, 0x7, 0, 0x3c3);
2216 /* We therefore want to make sure 0x14 (front headphone) and
2217 * 0x1b (speakers) use the stereo DAC 0x02
2219 snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn1), conn1);
2220 snd_hda_override_conn_list(codec, 0x1b, ARRAY_SIZE(conn1), conn1);
2246 snd_hda_set_pin_ctl(codec, 0x19, PIN_HP | vref);
2255 snd_hda_set_pin_ctl_cache(codec, 0x1b, PIN_HP);
2263 { 0x15, 0x01080104 }, /* side */
2264 { 0x16, 0x01011012 }, /* rear */
2265 { 0x17, 0x01016011 }, /* clfe */
2272 { 0x15, 0x99130112 }, /* rear int speakers */
2273 { 0x16, 0x99130111 }, /* subwoofer */
2280 { 0x19, PIN_VREF50 },
2291 { 0x16, 0x99130110 }, /* fix sequence for CLFE */
2298 { 0x1c, 0x993301f0 }, /* CD */
2305 { 0x1b, 0x02214120 }, /* Front HP jack is flaky, disable jack detect */
2314 { 0x17, 0x90170111 }, /* hidden surround speaker */
2321 { 0x20, AC_VERB_SET_COEF_INDEX, 0x0b },
2322 { 0x20, AC_VERB_SET_PROC_COEF, 0x0838 },
2330 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
2331 { 0x20, AC_VERB_SET_PROC_COEF, 0x0068 },
2339 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
2340 { 0x20, AC_VERB_SET_PROC_COEF, 0x3060 },
2348 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
2349 { 0x20, AC_VERB_SET_PROC_COEF, 0x3070 },
2357 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
2358 { 0x20, AC_VERB_SET_PROC_COEF, 0x3050 },
2387 { 0x16, 0x99130111 }, /* CLFE speaker */
2388 { 0x17, 0x99130112 }, /* surround speaker */
2397 { 0x16, 0x99130111 }, /* CLFE speaker */
2398 { 0x1b, 0x99130112 }, /* surround speaker */
2410 /* setting bits 1-5 disables DAC nids 0x02-0x06
2411 * apparently. Init=0x38 */
2412 { 0x20, AC_VERB_SET_COEF_INDEX, 0x03 },
2413 { 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
2416 * Init=0x4900 */
2417 { 0x20, AC_VERB_SET_COEF_INDEX, 0x08 },
2418 { 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
2429 /* DMIC_CONTROL? Init value = 0x0001 */
2430 { 0x20, AC_VERB_SET_COEF_INDEX, 0x0b },
2431 { 0x20, AC_VERB_SET_PROC_COEF, 0x0003 },
2432 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
2433 { 0x20, AC_VERB_SET_PROC_COEF, 0x3050 },
2494 {0x16, 0x99130130}, /* bass speaker */
2523 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
2532 { 0x15, 0x02a14150 }, /* use as headset mic, without its own jack detect */
2533 { 0x19, 0x22219420 },
2546 { 0x18, PIN_VREF50 }, /* rear mic */
2547 { 0x19, PIN_VREF50 }, /* front mic */
2554 { 0x18, PIN_VREF100 }, /* headset mic */
2561 SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_FIXUP_ACER_EAPD),
2562 SND_PCI_QUIRK(0x1025, 0x0090, "Acer Aspire", ALC883_FIXUP_ACER_EAPD),
2563 SND_PCI_QUIRK(0x1025, 0x0107, "Acer Aspire", ALC883_FIXUP_ACER_EAPD),
2564 SND_PCI_QUIRK(0x1025, 0x010a, "Acer Ferrari 5000", ALC883_FIXUP_ACER_EAPD),
2565 SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_FIXUP_ACER_EAPD),
2566 SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_FIXUP_ACER_EAPD),
2567 SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_FIXUP_ACER_EAPD),
2568 SND_PCI_QUIRK(0x1025, 0x013e, "Acer Aspire 4930G",
2570 SND_PCI_QUIRK(0x1025, 0x013f, "Acer Aspire 5930G",
2572 SND_PCI_QUIRK(0x1025, 0x0145, "Acer Aspire 8930G",
2574 SND_PCI_QUIRK(0x1025, 0x0146, "Acer Aspire 6935G",
2576 SND_PCI_QUIRK(0x1025, 0x0142, "Acer Aspire 7730G",
2578 SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", ALC882_FIXUP_PB_M5210),
2579 SND_PCI_QUIRK(0x1025, 0x015e, "Acer Aspire 6930G",
2581 SND_PCI_QUIRK(0x1025, 0x0166, "Acer Aspire 6530G",
2583 SND_PCI_QUIRK(0x1025, 0x021e, "Acer Aspire 5739G",
2585 SND_PCI_QUIRK(0x1025, 0x0259, "Acer Aspire 5935", ALC889_FIXUP_DAC_ROUTE),
2586 SND_PCI_QUIRK(0x1025, 0x026b, "Acer Aspire 8940G", ALC882_FIXUP_ACER_ASPIRE_8930G),
2587 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", ALC882_FIXUP_ACER_ASPIRE_7736),
2588 SND_PCI_QUIRK(0x1043, 0x13c2, "Asus A7M", ALC882_FIXUP_EAPD),
2589 SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", ALC882_FIXUP_ASUS_W90V),
2590 SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_FIXUP_ASUS_W2JC),
2591 SND_PCI_QUIRK(0x1043, 0x2390, "Asus D700SA", ALC887_FIXUP_ASUS_HMIC),
2592 SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601),
2593 SND_PCI_QUIRK(0x1043, 0x84bc, "ASUS ET2700", ALC887_FIXUP_ASUS_BASS),
2594 SND_PCI_QUIRK(0x1043, 0x8691, "ASUS ROG Ranger VIII", ALC882_FIXUP_GPIO3),
2595 SND_PCI_QUIRK(0x1043, 0x8797, "ASUS TUF B550M-PLUS", ALCS1200A_FIXUP_MIC_VREF),
2596 SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP),
2597 SND_PCI_QUIRK(0x104d, 0x9044, "Sony VAIO AiO", ALC882_FIXUP_NO_PRIMARY_HP),
2598 SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT),
2599 SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP),
2600 SND_PCI_QUIRK(0x104d, 0x9060, "Sony Vaio VPCL14M1R", ALC882_FIXUP_NO_PRIMARY_HP),
2603 SND_PCI_QUIRK(0x106b, 0x00a0, "MacBookPro 3,1", ALC889_FIXUP_MBP_VREF),
2604 SND_PCI_QUIRK(0x106b, 0x00a1, "Macbook", ALC889_FIXUP_MBP_VREF),
2605 SND_PCI_QUIRK(0x106b, 0x00a4, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),
2606 SND_PCI_QUIRK(0x106b, 0x0c00, "Mac Pro", ALC889_FIXUP_MP11_VREF),
2607 SND_PCI_QUIRK(0x106b, 0x1000, "iMac 24", ALC885_FIXUP_MACPRO_GPIO),
2608 SND_PCI_QUIRK(0x106b, 0x2800, "AppleTV", ALC885_FIXUP_MACPRO_GPIO),
2609 SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC889_FIXUP_MBP_VREF),
2610 SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF),
2611 SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD),
2612 SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBA11_VREF),
2613 SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF),
2614 SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF),
2615 SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),
2616 SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_FIXUP_MACPRO_GPIO),
2617 SND_PCI_QUIRK(0x106b, 0x3f00, "Macbook 5,1", ALC889_FIXUP_IMAC91_VREF),
2618 SND_PCI_QUIRK(0x106b, 0x4000, "MacbookPro 5,1", ALC889_FIXUP_IMAC91_VREF),
2619 SND_PCI_QUIRK(0x106b, 0x4100, "Macmini 3,1", ALC889_FIXUP_IMAC91_VREF),
2620 SND_PCI_QUIRK(0x106b, 0x4200, "Mac Pro 4,1/5,1", ALC889_FIXUP_MP41_VREF),
2621 SND_PCI_QUIRK(0x106b, 0x4300, "iMac 9,1", ALC889_FIXUP_IMAC91_VREF),
2622 SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC889_FIXUP_IMAC91_VREF),
2623 SND_PCI_QUIRK(0x106b, 0x4900, "iMac 9,1 Aluminum", ALC889_FIXUP_IMAC91_VREF),
2624 SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_MBA11_VREF),
2626 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD),
2627 SND_PCI_QUIRK(0x10ec, 0x12d8, "iBase Elo Touch", ALC888VD_FIXUP_MIC_100VREF),
2628 SND_PCI_QUIRK(0x13fe, 0x1009, "Advantech MIT-W101", ALC886_FIXUP_EAPD),
2629 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3/Z87X-UD3H", ALC889_FIXUP_FRONT_HP_NO_PRESENCE),
2630 SND_PCI_QUIRK(0x1458, 0xa0b8, "Gigabyte AZ370-Gaming", ALC1220_FIXUP_GB_DUAL_CODECS),
2631 SND_PCI_QUIRK(0x1458, 0xa0cd, "Gigabyte X570 Aorus Master", ALC1220_FIXUP_GB_X570),
2632 SND_PCI_QUIRK(0x1458, 0xa0ce, "Gigabyte X570 Aorus Xtreme", ALC1220_FIXUP_GB_X570),
2633 SND_PCI_QUIRK(0x1458, 0xa0d5, "Gigabyte X570S Aorus Master", ALC1220_FIXUP_GB_X570),
2634 SND_PCI_QUIRK(0x1462, 0x11f7, "MSI-GE63", ALC1220_FIXUP_CLEVO_P950),
2635 SND_PCI_QUIRK(0x1462, 0x1228, "MSI-GP63", ALC1220_FIXUP_CLEVO_P950),
2636 SND_PCI_QUIRK(0x1462, 0x1229, "MSI-GP73", ALC1220_FIXUP_CLEVO_P950),
2637 SND_PCI_QUIRK(0x1462, 0x1275, "MSI-GL63", ALC1220_FIXUP_CLEVO_P950),
2638 SND_PCI_QUIRK(0x1462, 0x1276, "MSI-GL73", ALC1220_FIXUP_CLEVO_P950),
2639 SND_PCI_QUIRK(0x1462, 0x1293, "MSI-GP65", ALC1220_FIXUP_CLEVO_P950),
2640 SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD),
2641 SND_PCI_QUIRK(0x1462, 0xcc34, "MSI Godlike X570", ALC1220_FIXUP_GB_DUAL_CODECS),
2642 SND_PCI_QUIRK(0x1462, 0xda57, "MSI Z270-Gaming", ALC1220_FIXUP_GB_DUAL_CODECS),
2643 SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3),
2644 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX),
2645 SND_PCI_QUIRK(0x1558, 0x3702, "Clevo X370SN[VW]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2646 SND_PCI_QUIRK(0x1558, 0x50d3, "Clevo PC50[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2647 SND_PCI_QUIRK(0x1558, 0x65d1, "Clevo PB51[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2648 SND_PCI_QUIRK(0x1558, 0x65d2, "Clevo PB51R[CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2649 SND_PCI_QUIRK(0x1558, 0x65e1, "Clevo PB51[ED][DF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2650 SND_PCI_QUIRK(0x1558, 0x65e5, "Clevo PC50D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2651 SND_PCI_QUIRK(0x1558, 0x65f1, "Clevo PC50HS", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2652 SND_PCI_QUIRK(0x1558, 0x65f5, "Clevo PD50PN[NRT]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2653 SND_PCI_QUIRK(0x1558, 0x66a2, "Clevo PE60RNE", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2654 SND_PCI_QUIRK(0x1558, 0x66a6, "Clevo PE60SN[CDE]-[GS]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2655 SND_PCI_QUIRK(0x1558, 0x67d1, "Clevo PB71[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2656 SND_PCI_QUIRK(0x1558, 0x67e1, "Clevo PB71[DE][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2657 SND_PCI_QUIRK(0x1558, 0x67e5, "Clevo PC70D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2658 SND_PCI_QUIRK(0x1558, 0x67f1, "Clevo PC70H[PRS]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2659 SND_PCI_QUIRK(0x1558, 0x67f5, "Clevo PD70PN[NRT]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2660 SND_PCI_QUIRK(0x1558, 0x70d1, "Clevo PC70[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2661 SND_PCI_QUIRK(0x1558, 0x7714, "Clevo X170SM", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2662 SND_PCI_QUIRK(0x1558, 0x7715, "Clevo X170KM-G", ALC1220_FIXUP_CLEVO_PB51ED),
2663 SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950),
2664 SND_PCI_QUIRK(0x1558, 0x9506, "Clevo P955HQ", ALC1220_FIXUP_CLEVO_P950),
2665 SND_PCI_QUIRK(0x1558, 0x950a, "Clevo P955H[PR]", ALC1220_FIXUP_CLEVO_P950),
2666 SND_PCI_QUIRK(0x1558, 0x95e1, "Clevo P95xER", ALC1220_FIXUP_CLEVO_P950),
2667 SND_PCI_QUIRK(0x1558, 0x95e2, "Clevo P950ER", ALC1220_FIXUP_CLEVO_P950),
2668 SND_PCI_QUIRK(0x1558, 0x95e3, "Clevo P955[ER]T", ALC1220_FIXUP_CLEVO_P950),
2669 SND_PCI_QUIRK(0x1558, 0x95e4, "Clevo P955ER", ALC1220_FIXUP_CLEVO_P950),
2670 SND_PCI_QUIRK(0x1558, 0x95e5, "Clevo P955EE6", ALC1220_FIXUP_CLEVO_P950),
2671 SND_PCI_QUIRK(0x1558, 0x95e6, "Clevo P950R[CDF]", ALC1220_FIXUP_CLEVO_P950),
2672 SND_PCI_QUIRK(0x1558, 0x96e1, "Clevo P960[ER][CDFN]-K", ALC1220_FIXUP_CLEVO_P950),
2673 SND_PCI_QUIRK(0x1558, 0x97e1, "Clevo P970[ER][CDFN]", ALC1220_FIXUP_CLEVO_P950),
2674 SND_PCI_QUIRK(0x1558, 0x97e2, "Clevo P970RC-M", ALC1220_FIXUP_CLEVO_P950),
2675 SND_PCI_QUIRK(0x1558, 0xd502, "Clevo PD50SNE", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
2676 SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD),
2677 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD),
2678 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", ALC882_FIXUP_LENOVO_Y530),
2679 SND_PCI_QUIRK(0x8086, 0x0022, "DX58SO", ALC889_FIXUP_COEF),
2720 SND_HDA_PIN_QUIRK(0x10ec1220, 0x1043, "ASUS", ALC1220_FIXUP_CLEVO_P950,
2721 {0x14, 0x01014010},
2722 {0x15, 0x01011012},
2723 {0x16, 0x01016011},
2724 {0x18, 0x01a19040},
2725 {0x19, 0x02a19050},
2726 {0x1a, 0x0181304f},
2727 {0x1b, 0x0221401f},
2728 {0x1e, 0x01456130}),
2729 SND_HDA_PIN_QUIRK(0x10ec1220, 0x1462, "MS-7C35", ALC1220_FIXUP_CLEVO_P950,
2730 {0x14, 0x01015010},
2731 {0x15, 0x01011012},
2732 {0x16, 0x01011011},
2733 {0x18, 0x01a11040},
2734 {0x19, 0x02a19050},
2735 {0x1a, 0x0181104f},
2736 {0x1b, 0x0221401f},
2737 {0x1e, 0x01451130}),
2747 static const hda_nid_t alc882_ignore[] = { 0x1d, 0 };
2748 static const hda_nid_t alc882_ssids[] = { 0x15, 0x1b, 0x14, 0 };
2759 err = alc_alloc_spec(codec, 0x0b);
2760 if (err < 0)
2766 case 0x10ec0882:
2767 case 0x10ec0885:
2768 case 0x10ec0900:
2769 case 0x10ec0b00:
2770 case 0x10ec1220:
2774 alc_fix_pll_init(codec, 0x20, 0x0a, 10);
2788 spec->gen.beep_nid = 0x01;
2792 if (err < 0)
2796 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
2797 if (err < 0)
2803 return 0;
2816 static const hda_nid_t alc262_ignore[] = { 0x1d, 0 };
2817 static const hda_nid_t alc262_ssids[] = { 0x15, 0x1b, 0x14, 0 };
2840 { 0x14, 0x99130110 }, /* speaker */
2841 { 0x15, 0x0221142f }, /* front HP */
2842 { 0x1b, 0x0121141f }, /* rear HP */
2849 { 0x15, 0x90170110 }, /* speaker */
2858 { 0x16, 0x99130120 }, /* internal speaker */
2865 { 0x14, 0x1993e1f0 }, /* int AUX */
2872 { 0x19, PIN_VREF50 },
2881 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
2882 { 0x20, AC_VERB_SET_PROC_COEF, 0x3070 },
2889 { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
2890 { 0x20, AC_VERB_SET_PROC_COEF, 0x3050 },
2905 SND_PCI_QUIRK(0x103c, 0x170b, "HP Z200", ALC262_FIXUP_HP_Z200),
2906 SND_PCI_QUIRK(0x10cf, 0x1397, "Fujitsu Lifebook S7110", ALC262_FIXUP_FSC_S7110),
2907 SND_PCI_QUIRK(0x10cf, 0x142d, "Fujitsu Lifebook E8410", ALC262_FIXUP_BENQ),
2908 SND_PCI_QUIRK(0x10f1, 0x2915, "Tyan Thunder n6650W", ALC262_FIXUP_TYAN),
2909 SND_PCI_QUIRK(0x1734, 0x1141, "FSC ESPRIMO U9210", ALC262_FIXUP_FSC_H270),
2910 SND_PCI_QUIRK(0x1734, 0x1147, "FSC Celsius H270", ALC262_FIXUP_FSC_H270),
2911 SND_PCI_QUIRK(0x17aa, 0x384e, "Lenovo 3000", ALC262_FIXUP_LENOVO_3000),
2912 SND_PCI_QUIRK(0x17ff, 0x0560, "Benq ED8", ALC262_FIXUP_BENQ),
2913 SND_PCI_QUIRK(0x17ff, 0x058d, "Benq T31-16", ALC262_FIXUP_BENQ_T31),
2914 SND_PCI_QUIRK(0x8086, 0x7270, "BayleyBay", ALC262_FIXUP_INTEL_BAYLEYBAY),
2938 err = alc_alloc_spec(codec, 0x0b);
2939 if (err < 0)
2943 spec->gen.shared_mic_vref_pin = 0x18;
2947 #if 0
2951 alc_update_coefex_idx(codec, 0x1a, 7, 0, 0x80);
2953 alc_fix_pll_init(codec, 0x20, 0x0a, 10);
2964 spec->gen.beep_nid = 0x01;
2968 if (err < 0)
2972 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
2973 if (err < 0)
2979 return 0;
2989 /* bind Beep switches of both NID 0x0f and 0x10 */
2999 kcontrol->private_value = (pval & ~0xff) | 0x0f;
3001 if (err >= 0) {
3002 kcontrol->private_value = (pval & ~0xff) | 0x10;
3011 HDA_CODEC_VOLUME("Beep Playback Volume", 0x1d, 0x0, HDA_INPUT),
3019 .private_value = HDA_COMPOSE_AMP_VAL(0x0f, 3, 1, HDA_INPUT)
3023 /* set PCBEEP vol = 0, mute connections */
3025 {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
3026 {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
3027 {0x10, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
3045 {0x15, AC_VERB_SET_EAPD_BTLENABLE, 0},
3052 { 0x1e, 0x014b1180 }, /* enable SPDIF out */
3066 SND_PCI_QUIRK(0x1025, 0x0139, "Acer TravelMate 6293", ALC268_FIXUP_SPDIF),
3067 SND_PCI_QUIRK(0x1025, 0x015b, "Acer AOA 150 (ZG5)", ALC268_FIXUP_INV_DMIC),
3071 SND_PCI_QUIRK(0x1179, 0xff06, "Toshiba P200", ALC268_FIXUP_HP_EAPD),
3080 static const hda_nid_t alc268_ssids[] = { 0x15, 0x1b, 0x14, 0 };
3092 err = alc_alloc_spec(codec, 0);
3093 if (err < 0)
3098 spec->gen.beep_nid = 0x01;
3109 if (err < 0)
3112 if (err > 0 && !spec->gen.no_analog &&
3113 spec->gen.autocfg.speaker_pins[0] != 0x1d) {
3114 for (i = 0; i < ARRAY_SIZE(alc268_beep_mixer); i++) {
3122 if (!query_amp_caps(codec, 0x1d, HDA_INPUT))
3124 snd_hda_override_amp_caps(codec, 0x1d, HDA_INPUT,
3125 (0x0c << AC_AMPCAP_OFFSET_SHIFT) |
3126 (0x0c << AC_AMPCAP_NUM_STEPS_SHIFT) |
3127 (0x07 << AC_AMPCAP_STEP_SIZE_SHIFT) |
3128 (0 << AC_AMPCAP_MUTE_SHIFT));
3133 return 0;
3183 static const hda_nid_t alc269_ignore[] = { 0x1d, 0 };
3184 static const hda_nid_t alc269_ssids[] = { 0, 0x1b, 0x14, 0x21 };
3185 static const hda_nid_t alc269va_ssids[] = { 0x15, 0x1b, 0x14, 0 };
3235 int report = 0;
3262 case 0x10ec0215:
3263 case 0x10ec0225:
3264 case 0x10ec0285:
3265 case 0x10ec0287:
3266 case 0x10ec0295:
3267 case 0x10ec0289:
3268 case 0x10ec0299:
3269 alc_write_coef_idx(codec, 0x48, 0x0);
3270 alc_update_coef_idx(codec, 0x49, 0x0045, 0x0);
3271 alc_update_coef_idx(codec, 0x44, 0x0045 << 8, 0x0);
3273 case 0x10ec0230:
3274 case 0x10ec0236:
3275 case 0x10ec0256:
3276 case 0x10ec0257:
3277 case 0x19e58326:
3278 alc_write_coef_idx(codec, 0x48, 0x0);
3279 alc_update_coef_idx(codec, 0x49, 0x0045, 0x0);
3292 case 0x10ec0215:
3293 case 0x10ec0225:
3294 case 0x10ec0285:
3295 case 0x10ec0287:
3296 case 0x10ec0295:
3297 case 0x10ec0289:
3298 case 0x10ec0299:
3299 alc_write_coef_idx(codec, 0x48, 0xd011);
3300 alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045);
3301 alc_update_coef_idx(codec, 0x44, 0x007f << 8, 0x0045 << 8);
3303 case 0x10ec0230:
3304 case 0x10ec0236:
3305 case 0x10ec0256:
3306 case 0x10ec0257:
3307 case 0x19e58326:
3308 alc_write_coef_idx(codec, 0x48, 0xd011);
3309 alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045);
3323 snd_hda_jack_detect_enable_callback(codec, 0x55,
3328 if (!hp_pin || snd_hda_jack_bind_keymap(codec, 0x55,
3331 snd_hda_jack_add_kctl(codec, 0x55, "Headset Jack",
3342 alc_update_coef_idx(codec, 0x04, 1 << 11, power_up ? (1 << 11) : 0);
3350 alc269vb_toggle_power_output(codec, 0);
3352 (alc_get_coef0(codec) & 0x00ff) == 0x018) {
3359 WRITE_COEF(0x03, 0x0002), /* Power Down Control */
3360 UPDATE_COEF(0x05, 0xff3f, 0x0700), /* FIFO and filter clock */
3361 WRITE_COEF(0x07, 0x0200), /* DMIC control */
3362 UPDATE_COEF(0x06, 0x00f0, 0), /* Analog clock */
3363 UPDATE_COEF(0x08, 0xfffc, 0x0c2c), /* JD */
3364 WRITE_COEF(0x0a, 0xcccc), /* JD offset1 */
3365 WRITE_COEF(0x0b, 0xcccc), /* JD offset2 */
3366 WRITE_COEF(0x0e, 0x6e00), /* LDO1/2/3, DAC/ADC */
3367 UPDATE_COEF(0x0f, 0xf800, 0x1000), /* JD */
3368 UPDATE_COEF(0x10, 0xfc00, 0x0c00), /* Capless */
3369 WRITE_COEF(0x6f, 0x0), /* Class D test 4 */
3370 UPDATE_COEF(0x0c, 0xfe00, 0), /* IO power down directly */
3371 WRITE_COEF(0x34, 0xa0c0), /* ANC */
3372 UPDATE_COEF(0x16, 0x0008, 0), /* AGC MUX */
3373 UPDATE_COEF(0x1d, 0x00e0, 0), /* DAC simple content protection */
3374 UPDATE_COEF(0x1f, 0x00e0, 0), /* ADC simple content protection */
3375 WRITE_COEF(0x21, 0x8804), /* DAC ADC Zero Detection */
3376 WRITE_COEF(0x63, 0x2902), /* PLL */
3377 WRITE_COEF(0x68, 0xa080), /* capless control 2 */
3378 WRITE_COEF(0x69, 0x3400), /* capless control 3 */
3379 WRITE_COEF(0x6a, 0x2f3e), /* capless control 4 */
3380 WRITE_COEF(0x6b, 0x0), /* capless control 5 */
3381 UPDATE_COEF(0x6d, 0x0fff, 0x0900), /* class D test 2 */
3382 WRITE_COEF(0x6e, 0x110a), /* class D test 3 */
3383 UPDATE_COEF(0x70, 0x00f8, 0x00d8), /* class D test 5 */
3384 WRITE_COEF(0x71, 0x0014), /* class D test 6 */
3385 WRITE_COEF(0x72, 0xc2ba), /* classD OCP */
3386 UPDATE_COEF(0x77, 0x0f80, 0), /* classD pure DC test */
3387 WRITE_COEF(0x6c, 0xfc06), /* Class D amp control */
3408 coef78 = alc_read_coef_idx(codec, 0x78);
3410 /* Index 0x78 Direct Drive HP AMP LPM Control 1 */
3412 alc_write_coef_idx(codec, 0x78, 0x9004);
3417 snd_hda_codec_write(codec, hp_pin, 0,
3423 snd_hda_codec_write(codec, hp_pin, 0,
3430 alc_write_coef_idx(codec, 0x78, coef78);
3446 coef78 = alc_read_coef_idx(codec, 0x78);
3447 alc_write_coef_idx(codec, 0x78, 0x9004);
3452 snd_hda_codec_write(codec, hp_pin, 0,
3459 snd_hda_codec_write(codec, hp_pin, 0,
3460 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3467 alc_write_coef_idx(codec, 0x78, coef78);
3471 WRITE_COEF(0x03, 0x0002), /* Power Down Control */
3472 UPDATE_COEF(0x05, 0xff3f, 0x0700), /* FIFO and filter clock */
3473 WRITE_COEF(0x07, 0x0200), /* DMIC control */
3474 UPDATE_COEF(0x06, 0x00f0, 0), /* Analog clock */
3475 UPDATE_COEF(0x08, 0xfffc, 0x0c2c), /* JD */
3476 WRITE_COEF(0x0a, 0xcccc), /* JD offset1 */
3477 WRITE_COEF(0x0b, 0xcccc), /* JD offset2 */
3478 WRITE_COEF(0x0e, 0x6fc0), /* LDO1/2/3, DAC/ADC */
3479 UPDATE_COEF(0x0f, 0xf800, 0x1000), /* JD */
3480 UPDATE_COEF(0x10, 0xfc00, 0x0c00), /* Capless */
3481 WRITE_COEF(0x3a, 0x0), /* Class D test 4 */
3482 UPDATE_COEF(0x0c, 0xfe00, 0x0), /* IO power down directly */
3483 WRITE_COEF(0x22, 0xa0c0), /* ANC */
3484 UPDATE_COEFEX(0x53, 0x01, 0x000f, 0x0008), /* AGC MUX */
3485 UPDATE_COEF(0x1d, 0x00e0, 0), /* DAC simple content protection */
3486 UPDATE_COEF(0x1f, 0x00e0, 0), /* ADC simple content protection */
3487 WRITE_COEF(0x21, 0x8804), /* DAC ADC Zero Detection */
3488 WRITE_COEF(0x2e, 0x2902), /* PLL */
3489 WRITE_COEF(0x33, 0xa080), /* capless control 2 */
3490 WRITE_COEF(0x34, 0x3400), /* capless control 3 */
3491 WRITE_COEF(0x35, 0x2f3e), /* capless control 4 */
3492 WRITE_COEF(0x36, 0x0), /* capless control 5 */
3493 UPDATE_COEF(0x38, 0x0fff, 0x0900), /* class D test 2 */
3494 WRITE_COEF(0x39, 0x110a), /* class D test 3 */
3495 UPDATE_COEF(0x3b, 0x00f8, 0x00d8), /* class D test 5 */
3496 WRITE_COEF(0x3c, 0x0014), /* class D test 6 */
3497 WRITE_COEF(0x3d, 0xc2ba), /* classD OCP */
3498 UPDATE_COEF(0x42, 0x0f80, 0x0), /* classD pure DC test */
3499 WRITE_COEF(0x49, 0x0), /* test mode */
3500 UPDATE_COEF(0x40, 0xf800, 0x9800), /* Class D DC enable */
3501 UPDATE_COEF(0x42, 0xf000, 0x2000), /* DC offset */
3502 WRITE_COEF(0x37, 0xfc06), /* Class D amp control */
3503 UPDATE_COEF(0x1b, 0x8000, 0), /* HP JD control */
3526 /* Index 0x43 Direct Drive HP AMP LPM Control 1 */
3528 alc_write_coef_idx(codec, 0x43, 0x9004);
3530 snd_hda_codec_write(codec, hp_pin, 0,
3536 snd_hda_codec_write(codec, hp_pin, 0,
3541 /* Index 0x46 Combo jack auto switch control 2 */
3543 alc_update_coef_idx(codec, 0x46, 3 << 12, 0);
3545 alc_write_coef_idx(codec, 0x43, 0x9614);
3561 alc_write_coef_idx(codec, 0x43, 0x9004);
3564 alc_write_coef_idx(codec, 0x06, 0x2100);
3566 snd_hda_codec_write(codec, hp_pin, 0,
3573 snd_hda_codec_write(codec, hp_pin, 0,
3574 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3576 alc_update_coef_idx(codec, 0x46, 0, 3 << 12);
3582 alc_write_coef_idx(codec, 0x43, 0x9614);
3592 alc_update_coef_idx(codec, 0x03, 1<<1, 1<<1);
3593 alc_update_coef_idx(codec, 0x08, 3<<2, 3<<2);
3594 alc_update_coef_idx(codec, 0x08, 7<<4, 0);
3595 alc_update_coef_idx(codec, 0x3b, 1<<15, 0);
3596 alc_update_coef_idx(codec, 0x0e, 7<<6, 7<<6);
3601 hp_pin = 0x21;
3609 alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x1); /* Low power */
3611 snd_hda_codec_write(codec, hp_pin, 0,
3616 snd_hda_codec_write(codec, hp_pin, 0,
3620 alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x4); /* Hight power */
3622 alc_update_coef_idx(codec, 0x46, 3 << 12, 0);
3623 alc_update_coefex_idx(codec, 0x53, 0x02, 0x8000, 1 << 15); /* Clear bit */
3624 alc_update_coefex_idx(codec, 0x53, 0x02, 0x8000, 0 << 15);
3631 alc_write_coef_idx(codec, 0x36, 0x5757);
3641 hp_pin = 0x21;
3643 alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x1); /* Low power */
3649 snd_hda_codec_write(codec, hp_pin, 0,
3660 alc_update_coef_idx(codec, 0x46, 0, 3 << 12);
3663 snd_hda_codec_write(codec, hp_pin, 0,
3664 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3673 alc_update_coef_idx(codec, 0x03, 1<<1, 0);
3674 alc_update_coef_idx(codec, 0x08, 7<<4, 7<<4);
3675 alc_update_coef_idx(codec, 0x08, 3<<2, 0);
3676 alc_update_coef_idx(codec, 0x3b, 1<<15, 1<<15);
3677 alc_update_coef_idx(codec, 0x0e, 7<<6, 0);
3689 alc_write_coefex_idx(codec, 0x58, 0x00, 0x1888); /* write default value */
3690 alc_update_coef_idx(codec, 0x4a, 1<<15, 1<<15); /* Reset HP JD */
3691 coef38 = alc_read_coef_idx(codec, 0x38); /* Amp control */
3692 coef0d = alc_read_coef_idx(codec, 0x0d); /* Digital Misc control */
3693 coef36 = alc_read_coef_idx(codec, 0x36); /* Passthrough Control */
3694 alc_update_coef_idx(codec, 0x38, 1<<4, 0x0);
3695 alc_update_coef_idx(codec, 0x0d, 0x110, 0x0);
3697 alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
3700 snd_hda_codec_write(codec, hp_pin, 0,
3704 alc_update_coef_idx(codec, 0x36, 1<<14, 1<<14);
3705 alc_update_coef_idx(codec, 0x36, 1<<13, 0x0);
3708 snd_hda_codec_write(codec, hp_pin, 0,
3709 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3711 alc_write_coef_idx(codec, 0x67, 0x0); /* Set HP depop to manual mode */
3712 alc_write_coefex_idx(codec, 0x58, 0x00, 0x7880);
3713 alc_write_coefex_idx(codec, 0x58, 0x0f, 0xf049);
3714 alc_update_coefex_idx(codec, 0x58, 0x03, 0x00f0, 0x00c0);
3716 alc_write_coefex_idx(codec, 0x58, 0x00, 0xf888); /* HP depop procedure start */
3717 val = alc_read_coefex_idx(codec, 0x58, 0x00);
3718 for (i = 0; i < 20 && val & 0x8000; i++) {
3720 val = alc_read_coefex_idx(codec, 0x58, 0x00);
3723 alc_write_coefex_idx(codec, 0x58, 0x00, val); /* write back the result */
3724 alc_update_coef_idx(codec, 0x38, 1<<4, coef38);
3725 alc_update_coef_idx(codec, 0x0d, 0x110, coef0d);
3726 alc_update_coef_idx(codec, 0x36, 3<<13, coef36);
3729 alc_update_coef_idx(codec, 0x4a, 1<<15, 0);
3739 alc_update_coef_idx(codec, 0x08, 0x0f << 2, 3<<2);
3740 alc_update_coef_idx(codec, 0x0e, 7<<6, 7<<6);
3741 alc_update_coef_idx(codec, 0x33, 1<<11, 0);
3756 hp_pin = 0x21;
3760 hp2_pin_sense = snd_hda_jack_detect(codec, 0x16);
3764 alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x1); /* Low power */
3767 snd_hda_codec_write(codec, hp_pin, 0,
3770 snd_hda_codec_write(codec, 0x16, 0,
3775 snd_hda_codec_write(codec, hp_pin, 0,
3778 snd_hda_codec_write(codec, 0x16, 0,
3782 alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x4); /* Hight power */
3793 hp_pin = 0x21;
3796 hp2_pin_sense = snd_hda_jack_detect(codec, 0x16);
3801 alc_update_coef_idx(codec, 0x4a, 0, 3 << 10);
3805 snd_hda_codec_write(codec, hp_pin, 0,
3808 snd_hda_codec_write(codec, 0x16, 0,
3814 snd_hda_codec_write(codec, hp_pin, 0,
3815 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3817 snd_hda_codec_write(codec, 0x16, 0,
3818 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3821 alc_update_coef_idx(codec, 0x4a, 3 << 10, 0);
3828 alc_update_coef_idx(codec, 0x08, 0x0f << 2, 0x0c << 2);
3829 alc_update_coef_idx(codec, 0x0e, 7<<6, 0);
3830 alc_update_coef_idx(codec, 0x33, 1<<11, 1<<11);
3831 alc_update_coef_idx(codec, 0x4a, 3<<4, 2<<4);
3852 snd_hda_codec_write(codec, hp_pin, 0,
3857 snd_hda_codec_write(codec, hp_pin, 0,
3879 snd_hda_codec_write(codec, hp_pin, 0,
3885 snd_hda_codec_write(codec, hp_pin, 0,
3886 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3903 snd_hda_codec_write(codec, hp_pin, 0,
3909 snd_hda_codec_write(codec, hp_pin, 0,
3910 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
3912 alc_update_coef_idx(codec, 0x6f, 0x000f, 0);/* Set HP depop to manual mode */
3913 alc_update_coefex_idx(codec, 0x58, 0x00, 0x8000, 0x8000); /* HP depop procedure start */
3916 val = alc_read_coefex_idx(codec, 0x58, 0x01);
3917 for (i = 0; i < 20 && val & 0x0080; i++) {
3919 val = alc_read_coefex_idx(codec, 0x58, 0x01);
3922 alc_update_coef_idx(codec, 0x6f, 0x000f, 0x000b);
3942 snd_hda_codec_write(codec, 0x51, 0, AC_VERB_SET_COEF_INDEX, index_reg >> 1);
3943 snd_hda_codec_write(codec, 0x51, 0, AC_VERB_SET_PROC_COEF, val & 0xffff); /* LSB */
3944 snd_hda_codec_write(codec, 0x51, 0, AC_VERB_SET_PROC_COEF, val >> 16); /* MSB */
3951 snd_hda_codec_write(codec, 0x51, 0, AC_VERB_SET_COEF_INDEX, index_reg >> 1);
3952 val = snd_hda_codec_read(codec, 0x51, 0, AC_VERB_GET_PROC_COEF, 0)
3953 & 0xffff;
3954 val |= snd_hda_codec_read(codec, 0x51, 0, AC_VERB_GET_PROC_COEF, 0)
3963 alc5505_coef_set(codec, 0x3000, 0x000c); /* DSP CPU stop */
3964 alc5505_coef_set(codec, 0x880c, 0x0008); /* DDR enter self refresh */
3965 alc5505_coef_set(codec, 0x61c0, 0x11110080); /* Clock control for PLL and CPU */
3966 alc5505_coef_set(codec, 0x6230, 0xfc0d4011); /* Disable Input OP */
3967 alc5505_coef_set(codec, 0x61b4, 0x040a2b03); /* Stop PLL2 */
3968 alc5505_coef_set(codec, 0x61b0, 0x00005b17); /* Stop PLL1 */
3969 alc5505_coef_set(codec, 0x61b8, 0x04133303); /* Stop PLL3 */
3970 val = alc5505_coef_get(codec, 0x6220);
3971 alc5505_coef_set(codec, 0x6220, (val | 0x3000)); /* switch Ringbuffer clock to DBUS clock */
3976 alc5505_coef_set(codec, 0x61b8, 0x04133302);
3977 alc5505_coef_set(codec, 0x61b0, 0x00005b16);
3978 alc5505_coef_set(codec, 0x61b4, 0x040a2b02);
3979 alc5505_coef_set(codec, 0x6230, 0xf80d4011);
3980 alc5505_coef_set(codec, 0x6220, 0x2002010f);
3981 alc5505_coef_set(codec, 0x880c, 0x00000004);
3990 alc5505_coef_set(codec, 0x61b0, 0x5b14); /* PLL1 control */
3991 alc5505_coef_set(codec, 0x61b0, 0x5b16);
3992 alc5505_coef_set(codec, 0x61b4, 0x04132b00); /* PLL2 control */
3993 alc5505_coef_set(codec, 0x61b4, 0x04132b02);
3994 alc5505_coef_set(codec, 0x61b8, 0x041f3300); /* PLL3 control*/
3995 alc5505_coef_set(codec, 0x61b8, 0x041f3302);
3996 snd_hda_codec_write(codec, 0x51, 0, AC_VERB_SET_CODEC_RESET, 0); /* Function reset */
3997 alc5505_coef_set(codec, 0x61b8, 0x041b3302);
3998 alc5505_coef_set(codec, 0x61b8, 0x04173302);
3999 alc5505_coef_set(codec, 0x61b8, 0x04163302);
4000 alc5505_coef_set(codec, 0x8800, 0x348b328b); /* DRAM control */
4001 alc5505_coef_set(codec, 0x8808, 0x00020022); /* DRAM control */
4002 alc5505_coef_set(codec, 0x8818, 0x00000400); /* DRAM control */
4004 val = alc5505_coef_get(codec, 0x6200) >> 16; /* Read revision ID */
4006 alc5505_coef_set(codec, 0x6220, 0x2002010f); /* I/O PAD Configuration */
4008 alc5505_coef_set(codec, 0x6220, 0x6002018f);
4010 alc5505_coef_set(codec, 0x61ac, 0x055525f0); /**/
4011 alc5505_coef_set(codec, 0x61c0, 0x12230080); /* Clock control */
4012 alc5505_coef_set(codec, 0x61b4, 0x040e2b02); /* PLL2 control */
4013 alc5505_coef_set(codec, 0x61bc, 0x010234f8); /* OSC Control */
4014 alc5505_coef_set(codec, 0x880c, 0x00000004); /* DRAM Function control */
4015 alc5505_coef_set(codec, 0x880c, 0x00000003);
4016 alc5505_coef_set(codec, 0x880c, 0x00000010);
4024 #define alc5505_dsp_suspend(codec) do { } while (0) /* NOP */
4025 #define alc5505_dsp_resume(codec) do { } while (0) /* NOP */
4047 alc269vb_toggle_power_output(codec, 0);
4049 (alc_get_coef0(codec) & 0x00ff) == 0x018) {
4058 (alc_get_coef0(codec) & 0x00ff) == 0x017) {
4063 hda_call_check_power_status(codec, 0x01);
4075 return 0;
4092 unsigned int cfg_headphone = snd_hda_codec_get_pincfg(codec, 0x21);
4093 unsigned int cfg_headset_mic = snd_hda_codec_get_pincfg(codec, 0x19);
4095 if (cfg_headphone && cfg_headset_mic == 0x411111f0)
4096 snd_hda_codec_set_pincfg(codec, 0x19,
4105 alc_update_coef_idx(codec, 0x1e, 0, 0x80);
4121 {0x20, AC_VERB_SET_COEF_INDEX, 0x0d},
4122 {0x20, AC_VERB_SET_PROC_COEF, 0x4000},
4130 cfg = snd_hda_codec_get_pincfg(codec, 0x12);
4141 alc_update_coef_idx(codec, 0x0d, 0x6000, 0x6000);
4168 alc_update_coef_idx(codec, 0x07, 0, 0x80);
4175 alc_write_coef_idx(codec, 0x0c, 0x680);
4176 alc_write_coef_idx(codec, 0x0c, 0x480);
4196 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0;
4198 snd_hda_codec_write(codec, 0x18, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
4201 snd_hda_codec_write(codec, 0x18, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
4217 snd_hda_codec_write(codec, 0x06, 0, AC_VERB_SET_DIGI_CONVERT_3, 0x0);
4218 alc_write_coef_idx(codec, 0x26, 0xb000);
4221 snd_hda_codec_write(codec, 0x21, 0, AC_VERB_GET_PIN_SENSE, 0x0);
4223 snd_hda_codec_write(codec, 0x6, 0, AC_VERB_SET_DIGI_CONVERT_3, 0x80);
4224 alc_write_coef_idx(codec, 0x26, 0xf000);
4225 alc_write_coef_idx(codec, 0x23, initval->value_0x23);
4227 if (initval->value_0x23 != 0x1e)
4228 alc_write_coef_idx(codec, 0x25, initval->value_0x25);
4230 snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_COEF_INDEX, 0x26);
4231 snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, 0xb010);
4240 {0x0c, 0x00}, {0x0d, 0x00}, {0x0e, 0x00}, {0x0f, 0x00},
4241 {0x10, 0x00}, {0x1a, 0x40}, {0x1b, 0x82}, {0x1c, 0x00},
4242 {0x1d, 0x00}, {0x1e, 0x00}, {0x1f, 0x00},
4243 {0x20, 0xc2}, {0x21, 0xc8}, {0x22, 0x26}, {0x23, 0x24},
4244 {0x27, 0xff}, {0x28, 0xff}, {0x29, 0xff}, {0x2a, 0x8f},
4245 {0x2b, 0x02}, {0x2c, 0x48}, {0x2d, 0x34}, {0x2e, 0x00},
4246 {0x2f, 0x00},
4247 {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00},
4248 {0x34, 0x00}, {0x35, 0x01}, {0x36, 0x93}, {0x37, 0x0c},
4249 {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0xf8}, {0x38, 0x80},
4258 snd_hda_codec_write(codec, 0x06, 0, AC_VERB_SET_DIGI_CONVERT_3, 0x00);
4259 snd_hda_codec_write(codec, 0x06, 0, AC_VERB_SET_DIGI_CONVERT_3, 0x80);
4260 alc_write_coef_idx(codec, 0x26, 0xf000);
4261 alc_write_coef_idx(codec, 0x22, 0x31);
4262 alc_write_coef_idx(codec, 0x23, 0x0b);
4263 alc_write_coef_idx(codec, 0x25, 0x00);
4264 snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_COEF_INDEX, 0x26);
4265 snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, 0xb010);
4308 return 0;
4318 if (power_state != AC_PWRST_D3 || nid == 0 ||
4322 /* Set pin ctl again, it might have just been set to 0 */
4342 if (pin < 0x0a || pin >= 0x10)
4345 spec->mute_led_nid = pin - 0x0a + 0x18;
4362 spec->mute_led_polarity = 0;
4372 alc269_fixup_hp_mute_led_micx(codec, fix, action, 0x18);
4378 alc269_fixup_hp_mute_led_micx(codec, fix, action, 0x19);
4384 alc269_fixup_hp_mute_led_micx(codec, fix, action, 0x1b);
4405 return 0;
4417 return 0;
4445 alc_fixup_hp_gpio_led(codec, action, 0x02, 0x01);
4451 alc_fixup_hp_gpio_led(codec, action, 0x08, 0x10);
4457 alc_fixup_hp_gpio_led(codec, action, 0x04, 0x01);
4463 alc_fixup_hp_gpio_led(codec, action, 0x02, 0x20);
4469 alc_fixup_hp_gpio_led(codec, action, 0x10, 0);
4479 alc_fixup_hp_gpio_led(codec, action, 0, 0x04);
4491 return 0;
4499 alc_fixup_hp_gpio_led(codec, action, 0x08, 0);
4504 spec->gpio_mask |= 0x10;
4505 spec->gpio_dir |= 0x10;
4506 spec->cap_mute_led_nid = 0x18;
4517 alc_fixup_hp_gpio_led(codec, action, 0x08, 0);
4519 spec->cap_mute_led_nid = 0x18;
4535 spec->gpio_mask |= 0x01;
4536 spec->gpio_dir |= 0x01;
4540 alc_update_gpio_data(codec, 0x01, true);
4542 alc_update_gpio_data(codec, 0x01, false);
4555 alc_update_gpio_data(codec, 0x04, true);
4558 alc_update_gpio_data(codec, 0x04, false);
4570 spec->gpio_mask |= 0x04;
4571 spec->gpio_dir |= 0x04;
4596 return 0;
4606 spec->mute_led_polarity = 0;
4607 spec->mute_led_coef.idx = 0x0b;
4610 spec->mute_led_coef.off = 0;
4622 spec->mute_led_polarity = 0;
4623 spec->mute_led_coef.idx = 0x34;
4625 spec->mute_led_coef.on = 0;
4637 spec->mute_led_polarity = 0;
4638 spec->mute_led_coef.idx = 0x07;
4641 spec->mute_led_coef.off = 0;
4653 spec->mute_led_polarity = 0;
4654 spec->mute_led_coef.idx = 0x0b;
4671 return 0;
4680 spec->mic_led_coef.idx = 0x19;
4683 spec->mic_led_coef.off = 0;
4695 alc_fixup_hp_gpio_led(codec, action, 0, 0x04);
4704 spec->mic_led_coef.idx = 0x35;
4739 spec->cap_mute_led_nid = 0x1a;
4755 alc_write_coef_idx(codec, 0x23, coefs[0]);
4756 alc_write_coef_idx(codec, 0x25, coefs[1]);
4757 alc_write_coef_idx(codec, 0x26, 0xb011);
4770 { 0x19, 0x00 }, { 0x20, 0xc0 }, { 0x22, 0x44 }, { 0x23, 0x08 },
4771 { 0x24, 0x85 }, { 0x25, 0x41 }, { 0x35, 0x40 }, { 0x36, 0x01 },
4772 { 0x38, 0x81 }, { 0x3a, 0x03 }, { 0x3b, 0x81 }, { 0x40, 0x3e },
4773 { 0x41, 0x07 }, { 0x400, 0x1 }
4776 { 0x3a, { { 0x18, 0x1 }, { 0x26, 0x0 } } },
4777 { 0x39, { { 0x18, 0x2 }, { 0x26, 0x1 } } }
4783 for (i = 0; i < ARRAY_SIZE(amps); i++) {
4784 alc_write_coef_idx(codec, 0x22, amps[i].nid);
4786 for (j = 0; j < ARRAY_SIZE(amps[i].init_seq); j++)
4789 for (j = 0; j < ARRAY_SIZE(init_seq); j++)
4804 input_report_key(spec->kb_dev, spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX], 0);
4822 spec->kb_dev->evbit[0] = BIT_MASK(EV_KEY);
4823 spec->kb_dev->keycodesize = sizeof(spec->alc_mute_keycode_map[0]);
4826 for (i = 0; i < ARRAY_SIZE(spec->alc_mute_keycode_map); i++)
4836 return 0;
4849 alc_fixup_hp_gpio_led(codec, action, 0x08, 0x10);
4852 if (alc_register_micmute_input_device(codec) != 0)
4855 spec->gpio_mask |= 0x06;
4856 spec->gpio_dir |= 0x02;
4857 spec->gpio_data |= 0x02;
4858 snd_hda_codec_write_cache(codec, codec->core.afg, 0,
4859 AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x04);
4883 alc_fixup_hp_gpio_led(codec, action, 0, 0x04);
4886 if (alc_register_micmute_input_device(codec) != 0)
4889 snd_hda_jack_detect_enable_callback(codec, 0x1b,
4913 alc269_fixup_hp_mute_led_micx(codec, fix, action, 0x1a);
4915 spec->cap_mute_led_nid = 0x18;
4922 if (delay <= 0)
4924 snd_hda_codec_write(codec, 0x21, 0,
4927 snd_hda_codec_write(codec, 0x21, 0,
4928 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
4934 if (delay <= 0)
4936 snd_hda_codec_write(codec, 0x21, 0,
4939 snd_hda_codec_write(codec, 0x21, 0,
4945 UPDATE_COEF(0x4a, 1<<8, 0),
4946 UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
4947 UPDATE_COEF(0x63, 3<<14, 3<<14),
4948 UPDATE_COEF(0x4a, 3<<4, 2<<4),
4949 UPDATE_COEF(0x4a, 3<<10, 3<<10),
4950 UPDATE_COEF(0x45, 0x3f<<10, 0x34<<10),
4951 UPDATE_COEF(0x4a, 3<<10, 0),
4959 WRITE_COEF(0x1b, 0x0c0b), /* LDO and MISC control */
4960 WRITE_COEF(0x45, 0xd089), /* UAJ function set to menual mode */
4961 UPDATE_COEFEX(0x57, 0x05, 1<<14, 0), /* Direct Drive HP Amp control(Set to verb control)*/
4962 WRITE_COEF(0x06, 0x6104), /* Set MIC2 Vref gate with HP */
4963 WRITE_COEFEX(0x57, 0x03, 0x8aa6), /* Direct Drive HP Amp control */
4967 WRITE_COEF(0x1b, 0x0c4b), /* LDO and MISC control */
4968 WRITE_COEF(0x45, 0xd089), /* UAJ function set to menual mode */
4969 WRITE_COEF(0x06, 0x6104), /* Set MIC2 Vref gate with HP */
4970 WRITE_COEFEX(0x57, 0x03, 0x09a3), /* Direct Drive HP Amp control */
4971 UPDATE_COEFEX(0x57, 0x05, 1<<14, 0), /* Direct Drive HP Amp control(Set to verb control)*/
4975 WRITE_COEF(0x1b, 0x0c0b),
4976 WRITE_COEF(0x45, 0xc429),
4977 UPDATE_COEF(0x35, 0x4000, 0),
4978 WRITE_COEF(0x06, 0x2104),
4979 WRITE_COEF(0x1a, 0x0001),
4980 WRITE_COEF(0x26, 0x0004),
4981 WRITE_COEF(0x32, 0x42a3),
4985 UPDATE_COEF(0x4f, 0xfcc0, 0xc400),
4986 UPDATE_COEF(0x50, 0x2000, 0x2000),
4987 UPDATE_COEF(0x56, 0x0006, 0x0006),
4988 UPDATE_COEF(0x66, 0x0008, 0),
4989 UPDATE_COEF(0x67, 0x2000, 0),
4993 UPDATE_COEF(0x19, 0x1300, 0x0300),
4997 WRITE_COEF(0x76, 0x000e),
4998 WRITE_COEF(0x6c, 0x2400),
4999 WRITE_COEF(0x18, 0x7308),
5000 WRITE_COEF(0x6b, 0xc429),
5004 UPDATE_COEF(0x10, 7<<8, 6<<8), /* SET Line1 JD to 0 */
5005 UPDATE_COEFEX(0x57, 0x05, 1<<15|1<<13, 0x0), /* SET charge pump by verb */
5006 UPDATE_COEFEX(0x57, 0x03, 1<<10, 1<<10), /* SET EN_OSW to 1 */
5007 UPDATE_COEF(0x1a, 1<<3, 1<<3), /* Combo JD gating with LINE1-VREFO */
5008 WRITE_COEF(0x45, 0xc429), /* Set to TRS type */
5009 UPDATE_COEF(0x4a, 0x000f, 0x000e), /* Combo Jack auto detect */
5013 WRITE_COEF(0x15, 0x0d40),
5014 WRITE_COEF(0xb7, 0x802b),
5018 UPDATE_COEF(0x63, 3<<14, 0),
5022 UPDATE_COEF(0x4a, 0x0100, 0),
5023 UPDATE_COEFEX(0x57, 0x05, 0x4000, 0),
5024 UPDATE_COEF(0x6b, 0xf000, 0x5000),
5025 UPDATE_COEF(0x4a, 0x0010, 0),
5026 UPDATE_COEF(0x4a, 0x0c00, 0x0c00),
5027 WRITE_COEF(0x45, 0x5289),
5028 UPDATE_COEF(0x4a, 0x0c00, 0),
5033 alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12);
5038 case 0x10ec0255:
5041 case 0x10ec0230:
5042 case 0x10ec0236:
5043 case 0x10ec0256:
5044 case 0x19e58326:
5048 case 0x10ec0234:
5049 case 0x10ec0274:
5050 case 0x10ec0294:
5053 case 0x10ec0233:
5054 case 0x10ec0283:
5057 case 0x10ec0286:
5058 case 0x10ec0288:
5061 case 0x10ec0298:
5065 case 0x10ec0292:
5068 case 0x10ec0293:
5071 case 0x10ec0668:
5074 case 0x10ec0215:
5075 case 0x10ec0225:
5076 case 0x10ec0285:
5077 case 0x10ec0295:
5078 case 0x10ec0289:
5079 case 0x10ec0299:
5084 case 0x10ec0867:
5085 alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
5096 WRITE_COEFEX(0x57, 0x03, 0x8aa6),
5097 WRITE_COEF(0x06, 0x6100), /* Set MIC2 Vref gate to normal */
5101 UPDATE_COEFEX(0x57, 0x05, 1<<14, 1<<14), /* Direct Drive HP Amp control(Set to verb control)*/
5102 WRITE_COEFEX(0x57, 0x03, 0x09a3),
5103 WRITE_COEF(0x06, 0x6100), /* Set MIC2 Vref gate to normal */
5107 UPDATE_COEF(0x35, 0, 1<<14),
5108 WRITE_COEF(0x06, 0x2100),
5109 WRITE_COEF(0x1a, 0x0021),
5110 WRITE_COEF(0x26, 0x008c),
5114 UPDATE_COEF(0x4f, 0x00c0, 0),
5115 UPDATE_COEF(0x50, 0x2000, 0),
5116 UPDATE_COEF(0x56, 0x0006, 0),
5117 UPDATE_COEF(0x4f, 0xfcc0, 0xc400),
5118 UPDATE_COEF(0x66, 0x0008, 0x0008),
5119 UPDATE_COEF(0x67, 0x2000, 0x2000),
5123 WRITE_COEF(0x19, 0xa208),
5124 WRITE_COEF(0x2e, 0xacf0),
5128 UPDATE_COEFEX(0x57, 0x05, 0, 1<<15|1<<13), /* SET charge pump by verb */
5129 UPDATE_COEFEX(0x57, 0x03, 1<<10, 0), /* SET EN_OSW to 0 */
5130 UPDATE_COEF(0x1a, 1<<3, 0), /* Combo JD gating without LINE1-VREFO */
5134 WRITE_COEF(0xb7, 0x802b),
5135 WRITE_COEF(0xb5, 0x1040),
5136 UPDATE_COEF(0xc3, 0, 1<<12),
5140 UPDATE_COEFEX(0x57, 0x05, 1<<14, 1<<14),
5141 UPDATE_COEF(0x4a, 3<<4, 2<<4),
5142 UPDATE_COEF(0x63, 3<<14, 0),
5146 UPDATE_COEFEX(0x57, 0x05, 0x4000, 0x4000),
5147 UPDATE_COEF(0x4a, 0x0010, 0),
5148 UPDATE_COEF(0x6b, 0xf000, 0),
5153 case 0x10ec0255:
5154 alc_write_coef_idx(codec, 0x45, 0xc489);
5155 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5159 case 0x10ec0230:
5160 case 0x10ec0236:
5161 case 0x10ec0256:
5162 case 0x19e58326:
5163 alc_write_coef_idx(codec, 0x45, 0xc489);
5164 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5168 case 0x10ec0234:
5169 case 0x10ec0274:
5170 case 0x10ec0294:
5171 alc_write_coef_idx(codec, 0x45, 0x4689);
5172 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5176 case 0x10ec0233:
5177 case 0x10ec0283:
5178 alc_write_coef_idx(codec, 0x45, 0xc429);
5179 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5183 case 0x10ec0286:
5184 case 0x10ec0288:
5185 case 0x10ec0298:
5186 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5190 case 0x10ec0292:
5191 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5194 case 0x10ec0293:
5196 alc_write_coef_idx(codec, 0x45, 0xc429);
5197 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5201 case 0x10ec0867:
5202 alc_update_coefex_idx(codec, 0x57, 0x5, 0, 1<<14);
5204 case 0x10ec0221:
5205 case 0x10ec0662:
5206 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5209 case 0x10ec0668:
5210 alc_write_coef_idx(codec, 0x11, 0x0001);
5211 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5215 case 0x10ec0215:
5216 case 0x10ec0225:
5217 case 0x10ec0285:
5218 case 0x10ec0295:
5219 case 0x10ec0289:
5220 case 0x10ec0299:
5222 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x31<<10);
5223 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
5234 UPDATE_COEF(0x45, 0x3f<<10, 0x30<<10),
5235 UPDATE_COEF(0x45, 0x3f<<10, 0x31<<10),
5236 UPDATE_COEF(0x49, 3<<8, 0<<8),
5237 UPDATE_COEF(0x4a, 3<<4, 3<<4),
5238 UPDATE_COEF(0x63, 3<<14, 0),
5239 UPDATE_COEF(0x67, 0xf000, 0x3000),
5243 WRITE_COEF(0x45, 0xc089),
5244 WRITE_COEF(0x45, 0xc489),
5245 WRITE_COEFEX(0x57, 0x03, 0x8ea6),
5246 WRITE_COEF(0x49, 0x0049),
5250 WRITE_COEF(0x45, 0xc489),
5251 WRITE_COEFEX(0x57, 0x03, 0x0da3),
5252 WRITE_COEF(0x49, 0x0049),
5253 UPDATE_COEFEX(0x57, 0x05, 1<<14, 0), /* Direct Drive HP Amp control(Set to verb control)*/
5254 WRITE_COEF(0x06, 0x6100),
5258 WRITE_COEF(0x06, 0x2100),
5259 WRITE_COEF(0x32, 0x4ea3),
5263 UPDATE_COEF(0x4f, 0xfcc0, 0xc400), /* Set to TRS type */
5264 UPDATE_COEF(0x50, 0x2000, 0x2000),
5265 UPDATE_COEF(0x56, 0x0006, 0x0006),
5266 UPDATE_COEF(0x66, 0x0008, 0),
5267 UPDATE_COEF(0x67, 0x2000, 0),
5271 WRITE_COEF(0x76, 0x000e),
5272 WRITE_COEF(0x6c, 0x2400),
5273 WRITE_COEF(0x6b, 0xc429),
5274 WRITE_COEF(0x18, 0x7308),
5278 UPDATE_COEF(0x4a, 0x000f, 0x000e), /* Combo Jack auto detect */
5279 WRITE_COEF(0x45, 0xC429), /* Set to TRS type */
5280 UPDATE_COEF(0x1a, 1<<3, 0), /* Combo JD gating without LINE1-VREFO */
5284 WRITE_COEF(0x11, 0x0041),
5285 WRITE_COEF(0x15, 0x0d40),
5286 WRITE_COEF(0xb7, 0x802b),
5290 WRITE_COEF(0x45, 0x4289),
5291 UPDATE_COEF(0x4a, 0x0010, 0x0010),
5292 UPDATE_COEF(0x6b, 0x0f00, 0),
5293 UPDATE_COEF(0x49, 0x0300, 0x0300),
5298 case 0x10ec0215:
5299 case 0x10ec0225:
5300 case 0x10ec0285:
5301 case 0x10ec0295:
5302 case 0x10ec0289:
5303 case 0x10ec0299:
5308 case 0x10ec0255:
5311 case 0x10ec0230:
5312 case 0x10ec0236:
5313 case 0x10ec0256:
5314 case 0x19e58326:
5315 alc_write_coef_idx(codec, 0x1b, 0x0e4b);
5316 alc_write_coef_idx(codec, 0x45, 0xc089);
5321 case 0x10ec0234:
5322 case 0x10ec0274:
5323 case 0x10ec0294:
5326 case 0x10ec0233:
5327 case 0x10ec0283:
5330 case 0x10ec0286:
5331 case 0x10ec0288:
5332 case 0x10ec0298:
5335 case 0x10ec0292:
5338 case 0x10ec0293:
5341 case 0x10ec0668:
5344 case 0x10ec0867:
5345 alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
5357 WRITE_COEF(0x45, 0xd489), /* Set to CTIA type */
5358 WRITE_COEF(0x1b, 0x0c2b),
5359 WRITE_COEFEX(0x57, 0x03, 0x8ea6),
5363 WRITE_COEF(0x45, 0xd489), /* Set to CTIA type */
5364 WRITE_COEF(0x1b, 0x0e6b),
5368 WRITE_COEF(0x45, 0xd429),
5369 WRITE_COEF(0x1b, 0x0c2b),
5370 WRITE_COEF(0x32, 0x4ea3),
5374 UPDATE_COEF(0x50, 0x2000, 0x2000),
5375 UPDATE_COEF(0x56, 0x0006, 0x0006),
5376 UPDATE_COEF(0x66, 0x0008, 0),
5377 UPDATE_COEF(0x67, 0x2000, 0),
5381 WRITE_COEF(0x6b, 0xd429),
5382 WRITE_COEF(0x76, 0x0008),
5383 WRITE_COEF(0x18, 0x7388),
5387 WRITE_COEF(0x45, 0xd429), /* Set to ctia type */
5388 UPDATE_COEF(0x10, 7<<8, 7<<8), /* SET Line1 JD to 1 */
5392 WRITE_COEF(0x11, 0x0001),
5393 WRITE_COEF(0x15, 0x0d60),
5394 WRITE_COEF(0xc3, 0x0000),
5398 UPDATE_COEF(0x45, 0x3f<<10, 0x35<<10),
5399 UPDATE_COEF(0x63, 3<<14, 2<<14),
5403 UPDATE_COEF(0x45, 0x3f<<10, 0x35<<10),
5404 UPDATE_COEF(0x63, 3<<14, 1<<14),
5409 case 0x10ec0255:
5412 case 0x10ec0230:
5413 case 0x10ec0236:
5414 case 0x10ec0256:
5415 case 0x19e58326:
5419 case 0x10ec0234:
5420 case 0x10ec0274:
5421 case 0x10ec0294:
5422 alc_write_coef_idx(codec, 0x45, 0xd689);
5424 case 0x10ec0233:
5425 case 0x10ec0283:
5428 case 0x10ec0298:
5429 val = alc_read_coef_idx(codec, 0x50);
5431 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0020);
5432 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400);
5435 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0010);
5436 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400);
5440 case 0x10ec0286:
5441 case 0x10ec0288:
5442 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400);
5446 case 0x10ec0292:
5449 case 0x10ec0293:
5452 case 0x10ec0668:
5455 case 0x10ec0215:
5456 case 0x10ec0225:
5457 case 0x10ec0285:
5458 case 0x10ec0295:
5459 case 0x10ec0289:
5460 case 0x10ec0299:
5461 val = alc_read_coef_idx(codec, 0x45);
5468 case 0x10ec0867:
5469 alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
5479 WRITE_COEF(0x45, 0xe489), /* Set to OMTP Type */
5480 WRITE_COEF(0x1b, 0x0c2b),
5481 WRITE_COEFEX(0x57, 0x03, 0x8ea6),
5485 WRITE_COEF(0x45, 0xe489), /* Set to OMTP Type */
5486 WRITE_COEF(0x1b, 0x0e6b),
5490 WRITE_COEF(0x45, 0xe429),
5491 WRITE_COEF(0x1b, 0x0c2b),
5492 WRITE_COEF(0x32, 0x4ea3),
5496 UPDATE_COEF(0x50, 0x2000, 0x2000),
5497 UPDATE_COEF(0x56, 0x0006, 0x0006),
5498 UPDATE_COEF(0x66, 0x0008, 0),
5499 UPDATE_COEF(0x67, 0x2000, 0),
5503 WRITE_COEF(0x6b, 0xe429),
5504 WRITE_COEF(0x76, 0x0008),
5505 WRITE_COEF(0x18, 0x7388),
5509 WRITE_COEF(0x45, 0xe429), /* Set to omtp type */
5510 UPDATE_COEF(0x10, 7<<8, 7<<8), /* SET Line1 JD to 1 */
5514 WRITE_COEF(0x11, 0x0001),
5515 WRITE_COEF(0x15, 0x0d50),
5516 WRITE_COEF(0xc3, 0x0000),
5520 UPDATE_COEF(0x45, 0x3f<<10, 0x39<<10),
5521 UPDATE_COEF(0x63, 3<<14, 2<<14),
5526 case 0x10ec0255:
5529 case 0x10ec0230:
5530 case 0x10ec0236:
5531 case 0x10ec0256:
5532 case 0x19e58326:
5536 case 0x10ec0234:
5537 case 0x10ec0274:
5538 case 0x10ec0294:
5539 alc_write_coef_idx(codec, 0x45, 0xe689);
5541 case 0x10ec0233:
5542 case 0x10ec0283:
5545 case 0x10ec0298:
5546 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0010);/* Headset output enable */
5547 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xe400);
5550 case 0x10ec0286:
5551 case 0x10ec0288:
5552 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xe400);
5556 case 0x10ec0292:
5559 case 0x10ec0293:
5562 case 0x10ec0668:
5565 case 0x10ec0215:
5566 case 0x10ec0225:
5567 case 0x10ec0285:
5568 case 0x10ec0295:
5569 case 0x10ec0289:
5570 case 0x10ec0299:
5584 WRITE_COEF(0x45, 0xd089), /* combo jack auto switch control(Check type)*/
5585 WRITE_COEF(0x49, 0x0149), /* combo jack auto switch control(Vref
5590 UPDATE_COEF(0x4f, 0xfcc0, 0xd400), /* Check Type */
5594 UPDATE_COEF(0x50, 0x2000, 0x2000),
5595 UPDATE_COEF(0x56, 0x0006, 0x0006),
5596 UPDATE_COEF(0x66, 0x0008, 0),
5597 UPDATE_COEF(0x67, 0x2000, 0),
5598 UPDATE_COEF(0x19, 0x1300, 0x1300),
5602 UPDATE_COEF(0x4a, 0x000f, 0x0008), /* Combo Jack auto detect */
5603 WRITE_COEF(0x45, 0xD429), /* Set to ctia type */
5607 WRITE_COEF(0x11, 0x0001),
5608 WRITE_COEF(0xb7, 0x802b),
5609 WRITE_COEF(0x15, 0x0d60),
5610 WRITE_COEF(0xc3, 0x0c00),
5614 UPDATE_COEF(0x4a, 0x0010, 0),
5615 UPDATE_COEF(0x4a, 0x8000, 0),
5616 WRITE_COEF(0x45, 0xd289),
5617 UPDATE_COEF(0x49, 0x0300, 0x0300),
5622 alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12);
5627 case 0x10ec0255:
5630 val = alc_read_coef_idx(codec, 0x46);
5631 is_ctia = (val & 0x0070) == 0x0070;
5633 case 0x10ec0230:
5634 case 0x10ec0236:
5635 case 0x10ec0256:
5636 case 0x19e58326:
5637 alc_write_coef_idx(codec, 0x1b, 0x0e4b);
5638 alc_write_coef_idx(codec, 0x06, 0x6104);
5639 alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
5643 val = alc_read_coef_idx(codec, 0x46);
5644 is_ctia = (val & 0x0070) == 0x0070;
5646 alc_write_coef_idx(codec, 0x45, 0xe089);
5648 val = alc_read_coef_idx(codec, 0x46);
5649 if ((val & 0x0070) == 0x0070)
5654 alc_write_coefex_idx(codec, 0x57, 0x3, 0x0da3);
5655 alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
5657 case 0x10ec0234:
5658 case 0x10ec0274:
5659 case 0x10ec0294:
5662 val = alc_read_coef_idx(codec, 0x46);
5663 is_ctia = (val & 0x00f0) == 0x00f0;
5665 case 0x10ec0233:
5666 case 0x10ec0283:
5667 alc_write_coef_idx(codec, 0x45, 0xd029);
5669 val = alc_read_coef_idx(codec, 0x46);
5670 is_ctia = (val & 0x0070) == 0x0070;
5672 case 0x10ec0298:
5673 snd_hda_codec_write(codec, 0x21, 0,
5676 snd_hda_codec_write(codec, 0x21, 0,
5677 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
5680 val = alc_read_coef_idx(codec, 0x50);
5682 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0020);
5685 val = alc_read_coef_idx(codec, 0x50);
5686 is_ctia = (val & 0x0070) == 0x0070;
5688 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0010);
5691 val = alc_read_coef_idx(codec, 0x50);
5692 is_ctia = (val & 0x0070) == 0x0070;
5695 snd_hda_codec_write(codec, 0x21, 0,
5698 snd_hda_codec_write(codec, 0x21, 0,
5701 case 0x10ec0286:
5702 case 0x10ec0288:
5705 val = alc_read_coef_idx(codec, 0x50);
5706 is_ctia = (val & 0x0070) == 0x0070;
5708 case 0x10ec0292:
5709 alc_write_coef_idx(codec, 0x6b, 0xd429);
5711 val = alc_read_coef_idx(codec, 0x6c);
5712 is_ctia = (val & 0x001c) == 0x001c;
5714 case 0x10ec0293:
5717 val = alc_read_coef_idx(codec, 0x46);
5718 is_ctia = (val & 0x0070) == 0x0070;
5720 case 0x10ec0668:
5723 val = alc_read_coef_idx(codec, 0xbe);
5724 is_ctia = (val & 0x1c02) == 0x1c02;
5726 case 0x10ec0215:
5727 case 0x10ec0225:
5728 case 0x10ec0285:
5729 case 0x10ec0295:
5730 case 0x10ec0289:
5731 case 0x10ec0299:
5733 alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
5734 val = alc_read_coef_idx(codec, 0x45);
5736 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x34<<10);
5737 alc_update_coef_idx(codec, 0x49, 3<<8, 2<<8);
5739 val = alc_read_coef_idx(codec, 0x46);
5740 is_ctia = (val & 0x00f0) == 0x00f0;
5742 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x34<<10);
5743 alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
5745 val = alc_read_coef_idx(codec, 0x46);
5746 is_ctia = (val & 0x00f0) == 0x00f0;
5749 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x38<<10);
5750 alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
5752 val = alc_read_coef_idx(codec, 0x46);
5753 if ((val & 0x00f0) == 0x00f0)
5758 alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
5759 alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
5760 alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
5762 case 0x10ec0867:
5776 hda_nid_t mux_pin = spec->gen.imux_pins[spec->gen.cur_mux[0]];
5853 for (i = 0; i < cfg->num_inputs; i++) {
5903 WRITE_COEF(0x1b, 0x880b),
5904 WRITE_COEF(0x45, 0xd089),
5905 WRITE_COEF(0x1b, 0x080b),
5906 WRITE_COEF(0x46, 0x0004),
5907 WRITE_COEF(0x1b, 0x0c0b),
5911 WRITE_COEF(0x1b, 0x884b),
5912 WRITE_COEF(0x45, 0xd089),
5913 WRITE_COEF(0x1b, 0x084b),
5914 WRITE_COEF(0x46, 0x0004),
5915 WRITE_COEF(0x1b, 0x0c4b),
5919 case 0x10ec0255:
5922 case 0x10ec0230:
5923 case 0x10ec0236:
5924 case 0x10ec0256:
5925 case 0x19e58326:
5960 alc_update_gpio_data(codec, 0x40, spec->gen.hp_jack_present);
5970 spec->gpio_mask |= 0x40;
5971 spec->gpio_dir |= 0x40;
6000 spec->gen.mixer_nid = 0;
6009 { 0x16, 0x21211010 }, /* dock headphone */
6010 { 0x19, 0x21a11010 }, /* dock mic */
6017 codec->power_save_node = 0; /* avoid click noises */
6026 { 0x17, 0x21211010 }, /* dock headphone */
6027 { 0x19, 0x21a11010 }, /* dock mic */
6037 snd_hda_codec_write(codec, 0x17, 0,
6038 AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0);
6040 snd_hda_codec_write(codec, 0x19, 0,
6041 AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0);
6048 /* Assure the speaker pin to be coupled with DAC NID 0x03; otherwise
6053 0x14, 0x03, 0x17, 0x02, 0x21, 0x02,
6054 0
6066 0x17, 0x02, 0x21, 0x03, 0
6080 snd_hda_codec_write(codec, hp_pin, 0,
6094 /* mic pin 0x19 must be initialized with Vref Hi-Z, otherwise
6097 snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREFHIZ);
6102 for (i = 0; i < imux->num_items; i++) {
6103 if (spec->gen.imux_pins[i] == 0x12) {
6104 spec->gen.cur_mux[0] = i;
6122 from quirks that guarantee that the headphone is at NID 0x1b.) */
6123 snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000);
6124 snd_hda_override_wcaps(codec, 0x1b, get_wcaps(codec, 0x1b) & ~AC_WCAP_IN_AMP);
6133 alc_write_coef_idx(codec, 0xc4, 0x8000);
6134 alc_update_coef_idx(codec, 0xc2, ~0xfe, 0);
6135 snd_hda_set_pin_ctl_cache(codec, 0x18, 0);
6140 /* Returns the nid of the external mic input pin, or 0 if it cannot be found. */
6149 for (i = 0; i < cfg->num_inputs; i++) {
6159 return 0;
6188 Therefore limit the boost to 0 or 1. */
6193 for (i = 0; i < cfg->num_inputs; i++) {
6203 (0x00 << AC_AMPCAP_OFFSET_SHIFT) |
6204 (0x01 << AC_AMPCAP_NUM_STEPS_SHIFT) |
6205 (0x2f << AC_AMPCAP_STEP_SIZE_SHIFT) |
6206 (0 << AC_AMPCAP_MUTE_SHIFT));
6219 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0;
6222 snd_hda_codec_write(codec, 0x19, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
6233 snd_hda_override_wcaps(codec, 0x03, 0);
6235 spec->gen.mixer_nid = 0;
6240 alc_update_coef_idx(codec, 0x06, 0x000c, 0);
6242 alc_update_coef_idx(codec, 0x1a, 0, 1 << 4);
6259 alc_update_coef_idx(codec, 0x06, 0x000c, 0);
6264 /* mute tablet speaker pin (0x14) via dock plugging in addition */
6269 if (snd_hda_jack_detect(codec, 0x1b))
6270 spec->gen.mute_bits |= (1ULL << 0x14);
6278 { 0x1b, 0x21114000 }, /* dock speaker pin */
6286 alc_setup_gpio(codec, 0x04);
6290 snd_hda_jack_detect_enable_callback(codec, 0x1b,
6312 /* DAC node 0x03 is giving mono output. We therefore want to
6313 make sure 0x14 (front speaker) and 0x15 (headphones) use the
6314 stereo DAC, while leaving 0x17 (bass speaker) for node 0x03. */
6315 static const hda_nid_t conn1[] = { 0x0c };
6316 snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn1), conn1);
6317 snd_hda_override_conn_list(codec, 0x15, ARRAY_SIZE(conn1), conn1);
6325 /* The speaker is routed to the Node 0x06 by a mistake, as a result
6328 Node 0x02 (Audio Output) -> Node 0x0c (Audio Mixer) -> Node 0x17 (
6329 Pin Complex), since Node 0x02 has Amp-out caps, we can adjust
6332 static const hda_nid_t conn1[] = { 0x0c };
6333 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn1), conn1);
6337 /* disable DAC3 (0x06) selection on NID 0x17 as it has no volume amp control */
6342 static const hda_nid_t conn[] = { 0x02, 0x03 };
6343 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
6347 /* force NID 0x17 (Bass Speaker) to DAC1 to share it with the main speaker */
6352 static const hda_nid_t conn[] = { 0x02 };
6353 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
6364 /* mute_led_polarity is set to 0, so we pass inverted value here */
6365 alc_update_gpio_led(codec, 0x10, spec->mute_led_polarity,
6381 alc_fixup_hp_gpio_led(codec, action, 0x08, 0);
6384 spec->gpio_mask |= 0x10;
6385 spec->gpio_dir |= 0x10;
6397 spec->gpio_mask |= 0x04;
6398 spec->gpio_dir |= 0x04;
6405 * DAC1 (NID 0x02) -> Speaker (NID 0x14); some eq applied secretly
6406 * DAC2 (NID 0x03) -> Bass (NID 0x17) & Headphone (NID 0x21); sharing a DAC
6407 * DAC3 (NID 0x06) -> Unused, due to the lack of volume amp
6412 static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
6414 0x14, 0x02, 0x17, 0x03, 0x21, 0x03, 0
6420 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
6449 codec->addr == 0 ?
6453 codec->addr == 0 ?
6469 /* Forcibly assign NID 0x03 to HP/LO while NID 0x02 to SPK for EQ */
6475 0x21, 0x03, 0x1b, 0x03, 0x16, 0x02,
6476 0
6484 codec->power_save_node = 0;
6487 /* avoid DAC 0x06 for bass speaker 0x17; it has no volume control */
6492 0x14, 0x02, 0x17, 0x02, 0x21, 0x03, 0
6502 /* The DAC of NID 0x3 will introduce click/pop noise on headphones, so invalidate it */
6509 snd_hda_override_wcaps(codec, 0x03, 0);
6515 case 0x10ec0274:
6516 case 0x10ec0294:
6517 case 0x10ec0225:
6518 case 0x10ec0295:
6519 case 0x10ec0299:
6520 alc_update_coef_idx(codec, 0x4a, 0x8000, 1 << 15); /* Reset HP JD */
6521 alc_update_coef_idx(codec, 0x4a, 0x8000, 0 << 15);
6523 case 0x10ec0230:
6524 case 0x10ec0235:
6525 case 0x10ec0236:
6526 case 0x10ec0255:
6527 case 0x10ec0256:
6528 case 0x10ec0257:
6529 case 0x19e58326:
6530 alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */
6531 alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15);
6555 snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREFHIZ);
6563 * it appears to leave 0x10 = 0x8a20 set. For Linux we need to toggle it
6565 if (snd_hda_jack_detect_state(codec, 0x21) == HDA_JACK_PRESENT)
6566 alc_write_coef_idx(codec, 0x10, 0x8a20);
6568 alc_write_coef_idx(codec, 0x10, 0x0a20);
6574 /* Pin 0x21: headphones/headset mic */
6575 if (!is_jack_detectable(codec, 0x21))
6580 snd_hda_jack_detect_enable_callback(codec, 0x21,
6595 /* Windows sets 0x10 to 0x8420 for Node 0x20 which is
6598 if (snd_hda_jack_detect_state(codec, 0x21) == HDA_JACK_PRESENT)
6599 alc_write_coef_idx(codec, 0x10, 0x8420);
6601 alc_write_coef_idx(codec, 0x10, 0x0a20);
6607 if (!is_jack_detectable(codec, 0x21))
6612 snd_hda_jack_detect_enable_callback(codec, 0x21,
6628 alc_write_coef_idx(codec, 0x65, 0x0);
6649 alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12);
6664 static const hda_nid_t conn[] = { 0x02 };
6668 { 0x14, 0x90170110 }, /* front/high speakers */
6669 { 0x17, 0x90170130 }, /* back/bass speakers */
6674 alc_fixup_hp_gpio_led(codec, action, 0x00, 0x04);
6680 spec->gpio_mask |= 0x01;
6681 spec->gpio_dir |= 0x01;
6684 snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
6685 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
6689 alc_update_gpio_data(codec, 0x01, true);
6691 alc_update_gpio_data(codec, 0x01, false);
6699 static const hda_nid_t conn[] = { 0x02 };
6701 { 0x14, 0x90170110 }, /* rear speaker */
6709 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
6719 WRITE_COEF(0x08, 0x6a0c), WRITE_COEF(0x0d, 0xa023),
6720 WRITE_COEF(0x10, 0x0320), WRITE_COEF(0x1a, 0x8c03),
6721 WRITE_COEF(0x25, 0x1800), WRITE_COEF(0x26, 0x003a),
6722 WRITE_COEF(0x28, 0x1dfe), WRITE_COEF(0x29, 0xb014),
6723 WRITE_COEF(0x2b, 0x1dfe), WRITE_COEF(0x37, 0xfe15),
6724 WRITE_COEF(0x38, 0x7909), WRITE_COEF(0x45, 0xd489),
6725 WRITE_COEF(0x46, 0x00f4), WRITE_COEF(0x4a, 0x21e0),
6726 WRITE_COEF(0x66, 0x03f0), WRITE_COEF(0x67, 0x1000),
6727 WRITE_COEF(0x6e, 0x1005), { }
6731 { 0x12, 0xb7a60130 }, /* Internal microphone*/
6732 { 0x14, 0x90170150 }, /* B&O soundbar speakers */
6733 { 0x17, 0x90170153 }, /* Side speakers */
6734 { 0x19, 0x03a11040 }, /* Headset microphone */
6746 snd_hda_codec_amp_stereo(codec, 0x21, HDA_OUTPUT, 0, -1, 0);
6749 snd_hda_jack_set_gating_jack(codec, 0x19, 0x21);
6752 snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREF50);
6819 for (i = 0; i < HDA_MAX_COMPONENTS; i++) {
6823 for (i = 0; i < HDA_MAX_COMPONENTS; i++) {
6827 for (i = 0; i < HDA_MAX_COMPONENTS; i++) {
6849 return 0;
6868 return 0;
6888 for (i = 0; i < count; i++) {
6926 rec->index = 0;
6927 spec->comps[0].codec = cdc;
6986 WRITE_COEF(0x10, 0x0020), WRITE_COEF(0x24, 0x0000),
6987 WRITE_COEF(0x26, 0x0000), WRITE_COEF(0x29, 0x3000),
6988 WRITE_COEF(0x37, 0xfe05), WRITE_COEF(0x45, 0x5089),
7008 WRITE_COEF(0x1a, 0x9003), WRITE_COEF(0x1b, 0x0e2b), WRITE_COEF(0x37, 0xfe06),
7009 WRITE_COEF(0x38, 0x4981), WRITE_COEF(0x45, 0xd489), WRITE_COEF(0x46, 0x0074),
7010 WRITE_COEF(0x49, 0x0149),
7034 * but uses the 0x8686 subproduct id in both cases. The ALC256 codec
7037 if (codec->core.vendor_id == 0x10ec0256) {
7038 alc_update_coef_idx(codec, 0x10, 1<<9, 0);
7039 snd_hda_codec_set_pincfg(codec, 0x19, 0x04a11120);
7041 snd_hda_codec_set_pincfg(codec, 0x1a, 0x04a1113c);
7058 * Set the vref of pin 0x19 (Headset Mic) and pin 0x1b (Headphone Mic)
7062 snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREFHIZ);
7063 snd_hda_codec_set_pin_target(codec, 0x1b, PIN_VREFHIZ);
7067 * Make the internal mic (0x12) the default input source to
7070 for (i = 0; i < imux->num_items; i++) {
7071 if (spec->gen.imux_pins[i] == 0x12) {
7072 spec->gen.cur_mux[0] = i;
7084 * The Pin Complex 0x17 for the bass speakers is wrongly reported as
7088 { 0x17, 0x90170121 },
7092 * Avoid DAC 0x06 and 0x08, as they have no volume controls.
7093 * DAC 0x02 and 0x03 would be fine.
7095 static const hda_nid_t conn[] = { 0x02, 0x03 };
7097 * Prefer both speakerbar (0x14) and bass speakers (0x17) connected to DAC 0x02.
7098 * Headphones (0x21) are connected to DAC 0x03.
7101 0x14, 0x02,
7102 0x17, 0x02,
7103 0x21, 0x03,
7104 0
7111 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
7121 { 0x14, 0x90170151 },
7122 { 0x17, 0x90170150 },
7125 static const hda_nid_t conn[] = { 0x02, 0x03 };
7127 0x14, 0x02,
7128 0x17, 0x03,
7129 0x21, 0x02,
7130 0
7139 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
7145 /* Forcibly assign NID 0x03 to HP while NID 0x02 to SPK */
7150 static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
7152 0x17, 0x02, 0x21, 0x03, 0
7158 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
7161 if (spec->gen.autocfg.speaker_pins[0] != 0x14) {
7162 snd_hda_codec_write_cache(codec, 0x14, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
7163 0x0); /* Make sure 0x14 was disable */
7172 { 0x19, 0x03a1103c },
7179 alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12);
7477 if (codec->core.vendor_id == 0x10ec0298)
7481 __snd_hda_apply_fixup(codec, id, action, 0);
7497 if (codec->core.subsystem_id == 0x17aa3802)
7501 __snd_hda_apply_fixup(codec, id, action, 0);
7512 {0x19, PIN_VREFGRD},
7526 {0x20, AC_VERB_SET_COEF_INDEX, 13},
7527 {0x20, AC_VERB_SET_PROC_COEF, 0x4040},
7538 { 0x17, 0x99130111 }, /* subwoofer */
7545 { 0x19, 0x03A11050 },
7546 { 0x1a, 0x03A11C30 },
7547 { 0x21, 0x03211420 },
7554 {0x20, AC_VERB_SET_COEF_INDEX, 0x62},
7555 {0x20, AC_VERB_SET_PROC_COEF, 0xa007},
7556 {0x20, AC_VERB_SET_COEF_INDEX, 0x10},
7557 {0x20, AC_VERB_SET_PROC_COEF, 0x8420},
7558 {0x20, AC_VERB_SET_COEF_INDEX, 0x0f},
7559 {0x20, AC_VERB_SET_PROC_COEF, 0x7774},
7568 {0x14, AC_VERB_SET_EAPD_BTLENABLE, 0},
7609 { 0x1a, 0x2101103f }, /* dock line-out */
7610 { 0x1b, 0x23a11040 }, /* dock mic-in */
7619 { 0x19, 0x01a1903c }, /* headset mic, with jack detect */
7626 { 0x21, 0x0221102f }, /* HP out */
7641 { 0x14, 0x90170151 }, /* use as internal speaker (LFE) */
7642 { 0x1b, 0x90170152 }, /* use as internal speaker (back) */
7651 { 0x1b, 0x90170150 }, /* use as internal speaker */
7660 { 0x18, 0x03a19020 }, /* headset mic */
7661 { 0x1b, 0x90170150 }, /* speaker */
7668 { 0x14, 0x99130110 }, /* speaker */
7669 { 0x15, 0x0121401f }, /* HP out */
7670 { 0x18, 0x01a19c20 }, /* mic */
7671 { 0x19, 0x99a3092f }, /* int-mic */
7678 { 0x12, 0x99a3092f }, /* int-mic */
7679 { 0x14, 0x99130110 }, /* speaker */
7680 { 0x15, 0x0121401f }, /* HP out */
7681 { 0x18, 0x01a19c20 }, /* mic */
7688 { 0x14, 0x99130110 }, /* speaker */
7689 { 0x18, 0x01a19c20 }, /* mic */
7690 { 0x19, 0x99a3092f }, /* int-mic */
7691 { 0x21, 0x0121401f }, /* HP out */
7698 { 0x12, 0x99a3092f }, /* int-mic */
7699 { 0x14, 0x99130110 }, /* speaker */
7700 { 0x18, 0x01a19c20 }, /* mic */
7701 { 0x21, 0x0121401f }, /* HP out */
7746 { 0x19, 0x23a11040 }, /* dock mic */
7747 { 0x1b, 0x2121103f }, /* dock headphone */
7768 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
7769 { 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
7784 { 0x16, 0x21014020 }, /* dock line out */
7785 { 0x19, 0x21a19030 }, /* dock mic */
7786 { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */
7795 { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */
7804 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
7805 { 0x1b, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
7824 { 0x19, 0x01a1913c }, /* headset mic w/o jack detect */
7833 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
7842 {0x12, 0x90a60130},
7843 {0x13, 0x40000000},
7844 {0x14, 0x90170110},
7845 {0x18, 0x411111f0},
7846 {0x19, 0x04a11040},
7847 {0x1a, 0x411111f0},
7848 {0x1b, 0x90170112},
7849 {0x1d, 0x40759a05},
7850 {0x1e, 0x411111f0},
7851 {0x21, 0x04211020},
7870 {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
7871 {0x20, AC_VERB_SET_COEF_INDEX, 0x08},
7872 {0x20, AC_VERB_SET_PROC_COEF, 0x0310},
7881 { 0x18, 0x04a1182c }, /* Headset mic */
7890 { 0x14, 0x99130110 }, /* speaker */
7891 { 0x19, 0x01a19c20 }, /* mic */
7892 { 0x1b, 0x99a7012f }, /* int-mic */
7893 { 0x21, 0x0121401f }, /* HP out */
7912 { 0x12, 0x99a3092f }, /* int-mic */
7913 { 0x14, 0x99130110 }, /* speaker */
7914 { 0x18, 0x03a11c20 }, /* mic */
7915 { 0x1e, 0x0346101e }, /* SPDIF1 */
7916 { 0x21, 0x0321101f }, /* HP out */
7938 { 0x20, AC_VERB_SET_COEF_INDEX, 0x12 },
7939 { 0x20, AC_VERB_SET_PROC_COEF, 0x2800 },
7948 { 0x18, 0x01a110f0 }, /* use as headset mic */
7963 { 0x12, 0x99a3092f }, /* int-mic */
7964 { 0x18, 0x03a11d20 }, /* mic */
7965 { 0x19, 0x411111f0 }, /* Unused bogus pin */
7986 {0x20, AC_VERB_SET_COEF_INDEX, 0x1a},
7987 {0x20, AC_VERB_SET_PROC_COEF, 0x0011},
7996 { 0x17, 0x90170112 }, /* subwoofer */
8005 { 0x17, 0x90170112 }, /* subwoofer */
8036 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8045 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8054 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8055 { 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
8070 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8089 { 0x18, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
8090 { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8111 { 0x19, 0x04a110f0 },
8122 { 0x12, 0x90a60130 },
8123 { 0x14, 0x90170110 },
8124 { 0x17, 0x40000008 },
8125 { 0x18, 0x411111f0 },
8126 { 0x19, 0x01a1913c },
8127 { 0x1a, 0x411111f0 },
8128 { 0x1b, 0x411111f0 },
8129 { 0x1d, 0x40f89b2d },
8130 { 0x1e, 0x411111f0 },
8131 { 0x21, 0x0321101f },
8154 { 0x1b, 0x21011020 }, /* line-out */
8155 { 0x1a, 0x01a1903c }, /* headset mic */
8156 { 0x18, 0x2181103f }, /* line-in */
8165 { 0x1b, 0x21011020 }, /* line-out */
8166 { 0x18, 0x2181103f }, /* line-in */
8191 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8192 { 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
8238 { 0x18, 0x01a1913c }, /* headset mic w/o jack detect */
8247 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8248 { 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
8257 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8267 {0x20, AC_VERB_SET_COEF_INDEX, 0x1f},
8268 {0x20, AC_VERB_SET_PROC_COEF, 0x00c0},
8269 {0x20, AC_VERB_SET_COEF_INDEX, 0x30},
8270 {0x20, AC_VERB_SET_PROC_COEF, 0x00b1},
8310 { 0x20, AC_VERB_SET_COEF_INDEX, 0x36 },
8311 { 0x20, AC_VERB_SET_PROC_COEF, 0x57d7 },
8326 { 0x19, 0x02a19020 }, /* Front Mic */
8365 { 0x19, 0x03a11050 },
8366 { 0x1b, 0x03a11c30 },
8375 { 0x14, 0x90170120 },
8390 { 0x19, 0x03a11050 },
8391 { 0x1b, 0x03a11c30 },
8400 { 0x1b, 0x90170151 },
8415 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8416 { 0x1a, 0x01813030 }, /* use as headphone mic, without its own jack detect */
8425 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8426 { 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
8439 { 0x13, 0x90a60160 }, /* use as internal mic */
8440 { 0x19, 0x04a11120 }, /* use as headset mic, without its own jack detect */
8454 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8464 {0x20, AC_VERB_SET_COEF_INDEX, 0x40},
8465 {0x20, AC_VERB_SET_PROC_COEF, 0x8800},
8480 { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 },
8481 { 0x20, AC_VERB_SET_PROC_COEF, 0x5089 },
8495 { 0x1a, 0x04a19040 },
8502 { 0x16, 0x0101102f }, /* Rear Headset HP */
8503 { 0x19, 0x02a1913c }, /* use as Front headset mic, without its own jack detect */
8504 { 0x1a, 0x01a19030 }, /* Rear Headset MIC */
8505 { 0x1b, 0x02011020 },
8521 {0x20, AC_VERB_SET_COEF_INDEX, 0x45},
8522 {0x20, AC_VERB_SET_PROC_COEF, 0x5289},
8523 {0x20, AC_VERB_SET_COEF_INDEX, 0x4A},
8524 {0x20, AC_VERB_SET_PROC_COEF, 0x001b},
8525 {0x58, AC_VERB_SET_COEF_INDEX, 0x00},
8526 {0x58, AC_VERB_SET_PROC_COEF, 0x3888},
8527 {0x20, AC_VERB_SET_COEF_INDEX, 0x6f},
8528 {0x20, AC_VERB_SET_PROC_COEF, 0x2c0b},
8541 { 0x1b, 0x0401102f },
8562 { 0x14, 0x0201101f },
8571 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8586 { 0x19, 0x0181313f},
8605 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8614 { 0x13, 0x90a60160 }, /* use as internal mic */
8615 { 0x19, 0x04a11120 }, /* use as headset mic, without its own jack detect */
8624 { 0x19, 0x01a1103c }, /* use as headset mic */
8634 { 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
8635 { 0x20, AC_VERB_SET_PROC_COEF, 0x8800 },
8636 { 0x20, AC_VERB_SET_COEF_INDEX, 0x0f },
8637 { 0x20, AC_VERB_SET_PROC_COEF, 0x7774 },
8656 { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */
8666 { 0x20, AC_VERB_SET_COEF_INDEX, 0x36 },
8667 { 0x20, AC_VERB_SET_PROC_COEF, 0x57d7 },
8676 { 0x19, 0x03a11130 },
8677 { 0x1a, 0x90a60140 }, /* use as internal mic */
8686 { 0x16, 0x01011020 }, /* Rear Line out */
8687 { 0x19, 0x01a1913c }, /* use as Front headset mic, without its own jack detect */
8708 { 0x20, AC_VERB_SET_COEF_INDEX, 0x4f },
8709 { 0x20, AC_VERB_SET_PROC_COEF, 0x5029 },
8718 { 0x19, 0x03a11020 }, /* headset mic with jack detect */
8727 { 0x19, 0x04a11120 }, /* use as headset mic, without its own jack detect */
8736 { 0x17, 0x90170151 }, /* use as internal speaker (LFE) */
8737 { 0x1b, 0x90170152 } /* use as internal speaker (back) */
8743 { 0x21, 0x90170150 }, /* use as headset mic, without its own jack detect */
8750 { 0x19, 0x04a11040 },
8751 { 0x21, 0x04211020 },
8760 { 0x14, 0x90170140 },
8769 { 0x17, 0x90170130 }, /* bass spk */
8809 { 0x19, 0x03a11050 },
8810 { 0x1a, 0x03a11c30 },
8811 { 0x21, 0x03211420 },
8820 { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 },
8821 { 0x20, AC_VERB_SET_PROC_COEF, 0x5089 },
8822 { 0x20, AC_VERB_SET_COEF_INDEX, 0x46 },
8823 { 0x20, AC_VERB_SET_PROC_COEF, 0x0004 },
8824 { 0x20, AC_VERB_SET_COEF_INDEX, 0x47 },
8825 { 0x20, AC_VERB_SET_PROC_COEF, 0xa47a },
8826 { 0x20, AC_VERB_SET_COEF_INDEX, 0x49 },
8827 { 0x20, AC_VERB_SET_PROC_COEF, 0x0049},
8828 { 0x20, AC_VERB_SET_COEF_INDEX, 0x4a },
8829 { 0x20, AC_VERB_SET_PROC_COEF, 0x201b },
8830 { 0x20, AC_VERB_SET_COEF_INDEX, 0x6b },
8831 { 0x20, AC_VERB_SET_PROC_COEF, 0x4278},
8857 { 0x20, AC_VERB_SET_COEF_INDEX, 0x0f },
8858 { 0x20, AC_VERB_SET_PROC_COEF, 0x7774 },
8867 { 0x19, 0x03a11050 }, /* front HP mic */
8868 { 0x1a, 0x01a11830 }, /* rear external mic */
8869 { 0x21, 0x03211020 }, /* front HP out */
8878 /* set 0x15 to HP-OUT ctrl */
8879 { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0 },
8880 /* unmute the 0x15 amp */
8881 { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000 },
8894 { 0x19, 0x01a11050 }, /* rear HP mic */
8895 { 0x1a, 0x01a11830 }, /* rear external mic */
8896 { 0x21, 0x012110f0 }, /* rear HP out */
8905 /* set 0x15 to HP-OUT ctrl */
8906 { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0 },
8907 /* unmute the 0x15 amp */
8908 { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000 },
8909 /* set 0x1b to HP-OUT */
8910 { 0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
8923 { 0x19, 0x03a11050 }, /* front HP mic */
8924 { 0x1a, 0x03a11c30 }, /* rear external mic */
8925 { 0x21, 0x03211420 }, /* front HP out */
8932 { 0x14, 0x90170152 }, /* Speaker Surround Playback Switch */
8933 { 0x19, 0x03a19020 }, /* Mic Boost Volume */
8934 { 0x1a, 0x03a11c30 }, /* Mic Boost Volume */
8935 { 0x1e, 0x90170151 }, /* Rear jack, IN OUT EAPD Detect */
8936 { 0x21, 0x03211420 },
8946 { 0x20, AC_VERB_SET_COEF_INDEX, 0x1b },
8947 { 0x20, AC_VERB_SET_PROC_COEF, 0x4e4b },
8996 { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc5 },
9003 { 0x20, AC_VERB_SET_COEF_INDEX, 0x08},
9004 { 0x20, AC_VERB_SET_PROC_COEF, 0x2fcf},
9011 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
9020 { 0x14, 0x90100120 }, /* use as internal speaker */
9021 { 0x18, 0x02a111f0 }, /* use as headset mic, without its own jack detect */
9022 { 0x1a, 0x01011020 }, /* use as line out */
9031 { 0x18, 0x02a11030 }, /* use as headset mic */
9040 { 0x18, 0x01a11130 }, /* use as headset mic, without its own jack detect */
9055 { 0x19, 0x03a11020 }, /* headset mic with jack detect */
9062 { 0x19, 0x02a11120 }, /* use as headset mic, without its own jack detect */
9077 { 0x12, 0x411111f0 },
9078 { 0x14, 0x90170110 }, /* speaker */
9079 { 0x15, 0x032f1020 }, /* HP out */
9080 { 0x17, 0x411111f0 },
9081 { 0x18, 0x03ab1040 }, /* mic */
9082 { 0x19, 0xb7a7013f },
9083 { 0x1a, 0x0181305f },
9084 { 0x1b, 0x411111f0 },
9085 { 0x1d, 0x411111f0 },
9086 { 0x1e, 0x411111f0 },
9094 { 0x12, 0x4000c000 },
9095 { 0x14, 0x90170110 }, /* speaker */
9096 { 0x15, 0x0421401f }, /* HP out */
9097 { 0x17, 0x411111f0 },
9098 { 0x18, 0x04a19020 }, /* mic */
9099 { 0x19, 0x411111f0 },
9100 { 0x1a, 0x411111f0 },
9101 { 0x1b, 0x411111f0 },
9102 { 0x1d, 0x40448505 },
9103 { 0x1e, 0x411111f0 },
9104 { 0x20, 0x8000ffff },
9112 { 0x12, 0x40000000 },
9113 { 0x14, 0x01014010 }, /* speaker */
9114 { 0x15, 0x411111f0 }, /* HP out */
9115 { 0x16, 0x411111f0 },
9116 { 0x18, 0x01a19020 }, /* mic */
9117 { 0x19, 0x02a19021 },
9118 { 0x1a, 0x0181302f },
9119 { 0x1b, 0x0221401f },
9120 { 0x1c, 0x411111f0 },
9121 { 0x1d, 0x4044c601 },
9122 { 0x1e, 0x411111f0 },
9130 { 0x12, 0x40000000 },
9131 { 0x14, 0x90170110 }, /* speaker */
9132 { 0x17, 0x411111f0 },
9133 { 0x18, 0x03a19040 }, /* mic1 */
9134 { 0x19, 0x90a70130 }, /* mic2 */
9135 { 0x1a, 0x411111f0 },
9136 { 0x1b, 0x411111f0 },
9137 { 0x1d, 0x40489d2d },
9138 { 0x1e, 0x411111f0 },
9139 { 0x20, 0x0003ffff },
9140 { 0x21, 0x03214020 },
9148 { 0x14, 0x99130110 }, /* speaker */
9149 { 0x15, 0x0121401f }, /* HP out */
9150 { 0x18, 0x01a19c20 }, /* rear mic */
9151 { 0x19, 0x99a3092f }, /* front mic */
9152 { 0x1b, 0x0201401f }, /* front lineout */
9160 { 0x1b, 0x01a1913c }, /* use as headset mic, without its own jack detect */
9169 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
9178 { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 },
9179 { 0x20, AC_VERB_SET_PROC_COEF, 0x5089 },
9188 { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 },
9189 { 0x20, AC_VERB_SET_PROC_COEF, 0x5089 },
9207 { 0x20, AC_VERB_SET_COEF_INDEX, 0x0f },
9208 { 0x20, AC_VERB_SET_PROC_COEF, 0x7778 },
9237 { 0x1b, 0x411111f0 },
9238 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
9253 { 0x19, 0x02a1113c }, /* use as headset mic, without its own jack detect */
9254 { 0x1a, 0x90a1092f }, /* use as internal mic */
9279 { 0x12, 0xb7a60130 },
9280 { 0x13, 0x40000000 },
9281 { 0x14, 0x411111f0 },
9282 { 0x16, 0x411111f0 },
9283 { 0x17, 0x90170110 },
9284 { 0x18, 0x411111f0 },
9285 { 0x19, 0x02a11030 },
9286 { 0x1a, 0x411111f0 },
9287 { 0x1b, 0x04a19030 },
9288 { 0x1d, 0x40600001 },
9289 { 0x1e, 0x411111f0 },
9290 { 0x21, 0x03211020 },
9325 { 0x21, 0x03211030 }, /* Change the Headphone location to Left */
9354 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9355 { 0x20, AC_VERB_SET_PROC_COEF, 0x41 },
9357 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9358 { 0x20, AC_VERB_SET_PROC_COEF, 0xc },
9359 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9360 { 0x20, AC_VERB_SET_PROC_COEF, 0x1a },
9361 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9363 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9364 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9365 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9366 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9367 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9370 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9371 { 0x20, AC_VERB_SET_PROC_COEF, 0x42 },
9373 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9374 { 0x20, AC_VERB_SET_PROC_COEF, 0xc },
9375 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9376 { 0x20, AC_VERB_SET_PROC_COEF, 0x2a },
9377 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9379 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9380 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9381 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9382 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9383 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9399 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9400 { 0x20, AC_VERB_SET_PROC_COEF, 0x41 },
9402 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9403 { 0x20, AC_VERB_SET_PROC_COEF, 0xc },
9404 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9405 { 0x20, AC_VERB_SET_PROC_COEF, 0x1a },
9406 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9408 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9409 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9410 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9411 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9412 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9415 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9416 { 0x20, AC_VERB_SET_PROC_COEF, 0x46 },
9418 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9419 { 0x20, AC_VERB_SET_PROC_COEF, 0xc },
9420 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9421 { 0x20, AC_VERB_SET_PROC_COEF, 0x2a },
9422 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9424 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9425 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9426 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9427 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9428 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9445 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9446 { 0x20, AC_VERB_SET_PROC_COEF, 0x41 },
9447 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9448 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9449 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9450 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9451 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9452 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9453 { 0x20, AC_VERB_SET_PROC_COEF, 0x42 },
9454 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9455 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9456 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9457 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9458 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9475 { 0x19, 0x03a11120 }, /* use as headset mic, without its own jack detect */
9528 { 0x20, AC_VERB_SET_COEF_INDEX, 0x19 },
9529 { 0x20, AC_VERB_SET_PROC_COEF, 0x8e11 },
9544 { 0x19, 0x02a1112c }, /* use as headset mic, without its own jack detect */
9558 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9559 { 0x20, AC_VERB_SET_PROC_COEF, 0x41 },
9561 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9562 { 0x20, AC_VERB_SET_PROC_COEF, 0xc },
9563 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9564 { 0x20, AC_VERB_SET_PROC_COEF, 0x1a },
9565 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9567 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9568 { 0x20, AC_VERB_SET_PROC_COEF, 0xf },
9569 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9570 { 0x20, AC_VERB_SET_PROC_COEF, 0x42 },
9571 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9573 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9574 { 0x20, AC_VERB_SET_PROC_COEF, 0x10 },
9575 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9576 { 0x20, AC_VERB_SET_PROC_COEF, 0x40 },
9577 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9579 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9580 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9581 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9582 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9583 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9586 { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
9587 { 0x20, AC_VERB_SET_PROC_COEF, 0x46 },
9589 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9590 { 0x20, AC_VERB_SET_PROC_COEF, 0xc },
9591 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9592 { 0x20, AC_VERB_SET_PROC_COEF, 0x2a },
9593 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9595 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9596 { 0x20, AC_VERB_SET_PROC_COEF, 0xf },
9597 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9598 { 0x20, AC_VERB_SET_PROC_COEF, 0x46 },
9599 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9601 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9602 { 0x20, AC_VERB_SET_PROC_COEF, 0x10 },
9603 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9604 { 0x20, AC_VERB_SET_PROC_COEF, 0x44 },
9605 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9607 { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
9608 { 0x20, AC_VERB_SET_PROC_COEF, 0x2 },
9609 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9610 { 0x20, AC_VERB_SET_PROC_COEF, 0x0 },
9611 { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
9691 SND_PCI_QUIRK(0x1025, 0x0283, "Acer TravelMate 8371", ALC269_FIXUP_INV_DMIC),
9692 SND_PCI_QUIRK(0x1025, 0x029b, "Acer 1810TZ", ALC269_FIXUP_INV_DMIC),
9693 SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC),
9694 SND_PCI_QUIRK(0x1025, 0x047c, "Acer AC700", ALC269_FIXUP_ACER_AC700),
9695 SND_PCI_QUIRK(0x1025, 0x072d, "Acer Aspire V5-571G", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
9696 SND_PCI_QUIRK(0x1025, 0x0740, "Acer AO725", ALC271_FIXUP_HP_GATE_MIC_JACK),
9697 SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK),
9698 SND_PCI_QUIRK(0x1025, 0x0762, "Acer Aspire E1-472", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572),
9699 SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572),
9700 SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS),
9701 SND_PCI_QUIRK(0x1025, 0x080d, "Acer Aspire V5-122P", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
9702 SND_PCI_QUIRK(0x1025, 0x0840, "Acer Aspire E1", ALC269VB_FIXUP_ASPIRE_E1_COEF),
9703 SND_PCI_QUIRK(0x1025, 0x100c, "Acer Aspire E5-574G", ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST),
9704 SND_PCI_QUIRK(0x1025, 0x101c, "Acer Veriton N2510G", ALC269_FIXUP_LIFEBOOK),
9705 SND_PCI_QUIRK(0x1025, 0x102b, "Acer Aspire C24-860", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE),
9706 SND_PCI_QUIRK(0x1025, 0x1065, "Acer Aspire C20-820", ALC269VC_FIXUP_ACER_HEADSET_MIC),
9707 SND_PCI_QUIRK(0x1025, 0x106d, "Acer Cloudbook 14", ALC283_FIXUP_CHROME_BOOK),
9708 SND_PCI_QUIRK(0x1025, 0x1094, "Acer Aspire E5-575T", ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST),
9709 SND_PCI_QUIRK(0x1025, 0x1099, "Acer Aspire E5-523G", ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
9710 SND_PCI_QUIRK(0x1025, 0x110e, "Acer Aspire ES1-432", ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
9711 SND_PCI_QUIRK(0x1025, 0x1166, "Acer Veriton N4640G", ALC269_FIXUP_LIFEBOOK),
9712 SND_PCI_QUIRK(0x1025, 0x1167, "Acer Veriton N6640G", ALC269_FIXUP_LIFEBOOK),
9713 SND_PCI_QUIRK(0x1025, 0x1177, "Acer Predator G9-593", ALC255_FIXUP_PREDATOR_SUBWOOFER),
9714 SND_PCI_QUIRK(0x1025, 0x1178, "Acer Predator G9-593", ALC255_FIXUP_PREDATOR_SUBWOOFER),
9715 SND_PCI_QUIRK(0x1025, 0x1246, "Acer Predator Helios 500", ALC299_FIXUP_PREDATOR_SPK),
9716 SND_PCI_QUIRK(0x1025, 0x1247, "Acer vCopperbox", ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS),
9717 SND_PCI_QUIRK(0x1025, 0x1248, "Acer Veriton N4660G", ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE),
9718 SND_PCI_QUIRK(0x1025, 0x1269, "Acer SWIFT SF314-54", ALC256_FIXUP_ACER_HEADSET_MIC),
9719 SND_PCI_QUIRK(0x1025, 0x126a, "Acer Swift SF114-32", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
9720 SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
9721 SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
9722 SND_PCI_QUIRK(0x1025, 0x1291, "Acer Veriton Z4660G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
9723 SND_PCI_QUIRK(0x1025, 0x129c, "Acer SWIFT SF314-55", ALC256_FIXUP_ACER_HEADSET_MIC),
9724 SND_PCI_QUIRK(0x1025, 0x129d, "Acer SWIFT SF313-51", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
9725 SND_PCI_QUIRK(0x1025, 0x1300, "Acer SWIFT SF314-56", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
9726 SND_PCI_QUIRK(0x1025, 0x1308, "Acer Aspire Z24-890", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
9727 SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21", ALC233_FIXUP_ACER_HEADSET_MIC),
9728 SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T", ALC255_FIXUP_ACER_HEADSET_MIC),
9729 SND_PCI_QUIRK(0x1025, 0x141f, "Acer Spin SP513-54N", ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
9730 SND_PCI_QUIRK(0x1025, 0x142b, "Acer Swift SF314-42", ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
9731 SND_PCI_QUIRK(0x1025, 0x1430, "Acer TravelMate B311R-31", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
9732 SND_PCI_QUIRK(0x1025, 0x1466, "Acer Aspire A515-56", ALC255_FIXUP_ACER_HEADPHONE_AND_MIC),
9733 SND_PCI_QUIRK(0x1025, 0x1534, "Acer Predator PH315-54", ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
9734 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
9735 SND_PCI_QUIRK(0x1028, 0x053c, "Dell Latitude E5430", ALC292_FIXUP_DELL_E7X),
9736 SND_PCI_QUIRK(0x1028, 0x054b, "Dell XPS one 2710", ALC275_FIXUP_DELL_XPS),
9737 SND_PCI_QUIRK(0x1028, 0x05bd, "Dell Latitude E6440", ALC292_FIXUP_DELL_E7X),
9738 SND_PCI_QUIRK(0x1028, 0x05be, "Dell Latitude E6540", ALC292_FIXUP_DELL_E7X),
9739 SND_PCI_QUIRK(0x1028, 0x05ca, "Dell Latitude E7240", ALC292_FIXUP_DELL_E7X),
9740 SND_PCI_QUIRK(0x1028, 0x05cb, "Dell Latitude E7440", ALC292_FIXUP_DELL_E7X),
9741 SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER),
9742 SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
9743 SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
9744 SND_PCI_QUIRK(0x1028, 0x05f6, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
9745 SND_PCI_QUIRK(0x1028, 0x0615, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
9746 SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
9747 SND_PCI_QUIRK(0x1028, 0x062c, "Dell Latitude E5550", ALC292_FIXUP_DELL_E7X),
9748 SND_PCI_QUIRK(0x1028, 0x062e, "Dell Latitude E7450", ALC292_FIXUP_DELL_E7X),
9749 SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS_HSJACK),
9750 SND_PCI_QUIRK(0x1028, 0x064a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
9751 SND_PCI_QUIRK(0x1028, 0x064b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
9752 SND_PCI_QUIRK(0x1028, 0x0665, "Dell XPS 13", ALC288_FIXUP_DELL_XPS_13),
9753 SND_PCI_QUIRK(0x1028, 0x0669, "Dell Optiplex 9020m", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
9754 SND_PCI_QUIRK(0x1028, 0x069a, "Dell Vostro 5480", ALC290_FIXUP_SUBWOOFER_HSJACK),
9755 SND_PCI_QUIRK(0x1028, 0x06c7, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
9756 SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
9757 SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
9758 SND_PCI_QUIRK(0x1028, 0x06db, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
9759 SND_PCI_QUIRK(0x1028, 0x06dd, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
9760 SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
9761 SND_PCI_QUIRK(0x1028, 0x06df, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
9762 SND_PCI_QUIRK(0x1028, 0x06e0, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
9763 SND_PCI_QUIRK(0x1028, 0x0706, "Dell Inspiron 7559", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
9764 SND_PCI_QUIRK(0x1028, 0x0725, "Dell Inspiron 3162", ALC255_FIXUP_DELL_SPK_NOISE),
9765 SND_PCI_QUIRK(0x1028, 0x0738, "Dell Precision 5820", ALC269_FIXUP_NO_SHUTUP),
9766 SND_PCI_QUIRK(0x1028, 0x075c, "Dell XPS 27 7760", ALC298_FIXUP_SPK_VOLUME),
9767 SND_PCI_QUIRK(0x1028, 0x075d, "Dell AIO", ALC298_FIXUP_SPK_VOLUME),
9768 SND_PCI_QUIRK(0x1028, 0x0798, "Dell Inspiron 17 7000 Gaming", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
9769 SND_PCI_QUIRK(0x1028, 0x07b0, "Dell Precision 7520", ALC295_FIXUP_DISABLE_DAC3),
9770 SND_PCI_QUIRK(0x1028, 0x080c, "Dell WYSE", ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE),
9771 SND_PCI_QUIRK(0x1028, 0x084b, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
9772 SND_PCI_QUIRK(0x1028, 0x084e, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
9773 SND_PCI_QUIRK(0x1028, 0x0871, "Dell Precision 3630", ALC255_FIXUP_DELL_HEADSET_MIC),
9774 SND_PCI_QUIRK(0x1028, 0x0872, "Dell Precision 3630", ALC255_FIXUP_DELL_HEADSET_MIC),
9775 SND_PCI_QUIRK(0x1028, 0x0873, "Dell Precision 3930", ALC255_FIXUP_DUMMY_LINEOUT_VERB),
9776 SND_PCI_QUIRK(0x1028, 0x08ad, "Dell WYSE AIO", ALC225_FIXUP_DELL_WYSE_AIO_MIC_NO_PRESENCE),
9777 SND_PCI_QUIRK(0x1028, 0x08ae, "Dell WYSE NB", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE),
9778 SND_PCI_QUIRK(0x1028, 0x0935, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
9779 SND_PCI_QUIRK(0x1028, 0x097d, "Dell Precision", ALC289_FIXUP_DUAL_SPK),
9780 SND_PCI_QUIRK(0x1028, 0x097e, "Dell Precision", ALC289_FIXUP_DUAL_SPK),
9781 SND_PCI_QUIRK(0x1028, 0x098d, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE),
9782 SND_PCI_QUIRK(0x1028, 0x09bf, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE),
9783 SND_PCI_QUIRK(0x1028, 0x0a2e, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC),
9784 SND_PCI_QUIRK(0x1028, 0x0a30, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC),
9785 SND_PCI_QUIRK(0x1028, 0x0a38, "Dell Latitude 7520", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE_QUIET),
9786 SND_PCI_QUIRK(0x1028, 0x0a58, "Dell", ALC255_FIXUP_DELL_HEADSET_MIC),
9787 SND_PCI_QUIRK(0x1028, 0x0a61, "Dell XPS 15 9510", ALC289_FIXUP_DUAL_SPK),
9788 SND_PCI_QUIRK(0x1028, 0x0a62, "Dell Precision 5560", ALC289_FIXUP_DUAL_SPK),
9789 SND_PCI_QUIRK(0x1028, 0x0a9d, "Dell Latitude 5430", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE),
9790 SND_PCI_QUIRK(0x1028, 0x0a9e, "Dell Latitude 5430", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE),
9791 SND_PCI_QUIRK(0x1028, 0x0b19, "Dell XPS 15 9520", ALC289_FIXUP_DUAL_SPK),
9792 SND_PCI_QUIRK(0x1028, 0x0b1a, "Dell Precision 5570", ALC289_FIXUP_DUAL_SPK),
9793 SND_PCI_QUIRK(0x1028, 0x0b37, "Dell Inspiron 16 Plus 7620 2-in-1", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS),
9794 SND_PCI_QUIRK(0x1028, 0x0b71, "Dell Inspiron 16 Plus 7620", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS),
9795 SND_PCI_QUIRK(0x1028, 0x0beb, "Dell XPS 15 9530 (2023)", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9796 SND_PCI_QUIRK(0x1028, 0x0c03, "Dell Precision 5340", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE),
9797 SND_PCI_QUIRK(0x1028, 0x0c0b, "Dell Oasis 14 RPL-P", ALC289_FIXUP_RTK_AMP_DUAL_SPK),
9798 SND_PCI_QUIRK(0x1028, 0x0c0d, "Dell Oasis", ALC289_FIXUP_RTK_AMP_DUAL_SPK),
9799 SND_PCI_QUIRK(0x1028, 0x0c0e, "Dell Oasis 16", ALC289_FIXUP_RTK_AMP_DUAL_SPK),
9800 SND_PCI_QUIRK(0x1028, 0x0c19, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS),
9801 SND_PCI_QUIRK(0x1028, 0x0c1a, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS),
9802 SND_PCI_QUIRK(0x1028, 0x0c1b, "Dell Precision 3440", ALC236_FIXUP_DELL_DUAL_CODECS),
9803 SND_PCI_QUIRK(0x1028, 0x0c1c, "Dell Precision 3540", ALC236_FIXUP_DELL_DUAL_CODECS),
9804 SND_PCI_QUIRK(0x1028, 0x0c1d, "Dell Precision 3440", ALC236_FIXUP_DELL_DUAL_CODECS),
9805 SND_PCI_QUIRK(0x1028, 0x0c1e, "Dell Precision 3540", ALC236_FIXUP_DELL_DUAL_CODECS),
9806 SND_PCI_QUIRK(0x1028, 0x0cbd, "Dell Oasis 13 CS MTL-U", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9807 SND_PCI_QUIRK(0x1028, 0x0cbe, "Dell Oasis 13 2-IN-1 MTL-U", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9808 SND_PCI_QUIRK(0x1028, 0x0cbf, "Dell Oasis 13 Low Weight MTU-L", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9809 SND_PCI_QUIRK(0x1028, 0x0cc0, "Dell Oasis 13", ALC289_FIXUP_RTK_AMP_DUAL_SPK),
9810 SND_PCI_QUIRK(0x1028, 0x0cc1, "Dell Oasis 14 MTL-H/U", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9811 SND_PCI_QUIRK(0x1028, 0x0cc2, "Dell Oasis 14 2-in-1 MTL-H/U", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9812 SND_PCI_QUIRK(0x1028, 0x0cc3, "Dell Oasis 14 Low Weight MTL-U", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9813 SND_PCI_QUIRK(0x1028, 0x0cc4, "Dell Oasis 16 MTL-H/U", ALC289_FIXUP_DELL_CS35L41_SPI_2),
9814 SND_PCI_QUIRK(0x1028, 0x0cc5, "Dell Oasis 14", ALC289_FIXUP_RTK_AMP_DUAL_SPK),
9815 SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
9816 SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
9817 SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
9818 SND_PCI_QUIRK(0x103c, 0x18e6, "HP", ALC269_FIXUP_HP_GPIO_LED),
9819 SND_PCI_QUIRK(0x103c, 0x218b, "HP", ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED),
9820 SND_PCI_QUIRK(0x103c, 0x21f9, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9821 SND_PCI_QUIRK(0x103c, 0x2210, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9822 SND_PCI_QUIRK(0x103c, 0x2214, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9823 SND_PCI_QUIRK(0x103c, 0x221b, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9824 SND_PCI_QUIRK(0x103c, 0x221c, "HP EliteBook 755 G2", ALC280_FIXUP_HP_HEADSET_MIC),
9825 SND_PCI_QUIRK(0x103c, 0x2221, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9826 SND_PCI_QUIRK(0x103c, 0x2225, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9827 SND_PCI_QUIRK(0x103c, 0x2236, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
9828 SND_PCI_QUIRK(0x103c, 0x2237, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
9829 SND_PCI_QUIRK(0x103c, 0x2238, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
9830 SND_PCI_QUIRK(0x103c, 0x2239, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
9831 SND_PCI_QUIRK(0x103c, 0x224b, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
9832 SND_PCI_QUIRK(0x103c, 0x2253, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9833 SND_PCI_QUIRK(0x103c, 0x2254, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9834 SND_PCI_QUIRK(0x103c, 0x2255, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9835 SND_PCI_QUIRK(0x103c, 0x2256, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9836 SND_PCI_QUIRK(0x103c, 0x2257, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9837 SND_PCI_QUIRK(0x103c, 0x2259, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9838 SND_PCI_QUIRK(0x103c, 0x225a, "HP", ALC269_FIXUP_HP_DOCK_GPIO_MIC1_LED),
9839 SND_PCI_QUIRK(0x103c, 0x225f, "HP", ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY),
9840 SND_PCI_QUIRK(0x103c, 0x2260, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9841 SND_PCI_QUIRK(0x103c, 0x2263, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9842 SND_PCI_QUIRK(0x103c, 0x2264, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9843 SND_PCI_QUIRK(0x103c, 0x2265, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9844 SND_PCI_QUIRK(0x103c, 0x2268, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9845 SND_PCI_QUIRK(0x103c, 0x226a, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9846 SND_PCI_QUIRK(0x103c, 0x226b, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9847 SND_PCI_QUIRK(0x103c, 0x226e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9848 SND_PCI_QUIRK(0x103c, 0x2271, "HP", ALC286_FIXUP_HP_GPIO_LED),
9849 SND_PCI_QUIRK(0x103c, 0x2272, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9850 SND_PCI_QUIRK(0x103c, 0x2272, "HP", ALC280_FIXUP_HP_DOCK_PINS),
9851 SND_PCI_QUIRK(0x103c, 0x2273, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9852 SND_PCI_QUIRK(0x103c, 0x2273, "HP", ALC280_FIXUP_HP_DOCK_PINS),
9853 SND_PCI_QUIRK(0x103c, 0x2278, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9854 SND_PCI_QUIRK(0x103c, 0x227f, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9855 SND_PCI_QUIRK(0x103c, 0x2282, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9856 SND_PCI_QUIRK(0x103c, 0x228b, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9857 SND_PCI_QUIRK(0x103c, 0x228e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9858 SND_PCI_QUIRK(0x103c, 0x229e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9859 SND_PCI_QUIRK(0x103c, 0x22b2, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9860 SND_PCI_QUIRK(0x103c, 0x22b7, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9861 SND_PCI_QUIRK(0x103c, 0x22bf, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9862 SND_PCI_QUIRK(0x103c, 0x22c4, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9863 SND_PCI_QUIRK(0x103c, 0x22c5, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9864 SND_PCI_QUIRK(0x103c, 0x22c7, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9865 SND_PCI_QUIRK(0x103c, 0x22c8, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9866 SND_PCI_QUIRK(0x103c, 0x22cf, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9867 SND_PCI_QUIRK(0x103c, 0x22db, "HP", ALC280_FIXUP_HP_9480M),
9868 SND_PCI_QUIRK(0x103c, 0x22dc, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9869 SND_PCI_QUIRK(0x103c, 0x22fb, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
9870 SND_PCI_QUIRK(0x103c, 0x2334, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9871 SND_PCI_QUIRK(0x103c, 0x2335, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9872 SND_PCI_QUIRK(0x103c, 0x2336, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9873 SND_PCI_QUIRK(0x103c, 0x2337, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
9874 SND_PCI_QUIRK(0x103c, 0x2b5e, "HP 288 Pro G2 MT", ALC221_FIXUP_HP_288PRO_MIC_NO_PRESENCE),
9875 SND_PCI_QUIRK(0x103c, 0x802e, "HP Z240 SFF", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
9876 SND_PCI_QUIRK(0x103c, 0x802f, "HP Z240", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
9877 SND_PCI_QUIRK(0x103c, 0x8077, "HP", ALC256_FIXUP_HP_HEADSET_MIC),
9878 SND_PCI_QUIRK(0x103c, 0x8158, "HP", ALC256_FIXUP_HP_HEADSET_MIC),
9879 SND_PCI_QUIRK(0x103c, 0x820d, "HP Pavilion 15", ALC295_FIXUP_HP_X360),
9880 SND_PCI_QUIRK(0x103c, 0x8256, "HP", ALC221_FIXUP_HP_FRONT_MIC),
9881 SND_PCI_QUIRK(0x103c, 0x827e, "HP x360", ALC295_FIXUP_HP_X360),
9882 SND_PCI_QUIRK(0x103c, 0x827f, "HP x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
9883 SND_PCI_QUIRK(0x103c, 0x82bf, "HP G3 mini", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
9884 SND_PCI_QUIRK(0x103c, 0x82c0, "HP G3 mini premium", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
9885 SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
9886 SND_PCI_QUIRK(0x103c, 0x841c, "HP Pavilion 15-CK0xx", ALC269_FIXUP_HP_MUTE_LED_MIC3),
9887 SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
9888 SND_PCI_QUIRK(0x103c, 0x84a6, "HP 250 G7 Notebook PC", ALC269_FIXUP_HP_LINE1_MIC1_LED),
9889 SND_PCI_QUIRK(0x103c, 0x84ae, "HP 15-db0403ng", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9890 SND_PCI_QUIRK(0x103c, 0x84da, "HP OMEN dc0019-ur", ALC295_FIXUP_HP_OMEN),
9891 SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
9892 SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_HP_SPECTRE_X360),
9893 SND_PCI_QUIRK(0x103c, 0x8537, "HP ProBook 440 G6", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
9894 SND_PCI_QUIRK(0x103c, 0x85de, "HP Envy x360 13-ar0xxx", ALC285_FIXUP_HP_ENVY_X360),
9895 SND_PCI_QUIRK(0x103c, 0x860f, "HP ZBook 15 G6", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9896 SND_PCI_QUIRK(0x103c, 0x861f, "HP Elite Dragonfly G1", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9897 SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED),
9898 SND_PCI_QUIRK(0x103c, 0x86c1, "HP Laptop 15-da3001TU", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9899 SND_PCI_QUIRK(0x103c, 0x86c7, "HP Envy AiO 32", ALC274_FIXUP_HP_ENVY_GPIO),
9900 SND_PCI_QUIRK(0x103c, 0x86e7, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1),
9901 SND_PCI_QUIRK(0x103c, 0x86e8, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1),
9902 SND_PCI_QUIRK(0x103c, 0x86f9, "HP Spectre x360 13-aw0xxx", ALC285_FIXUP_HP_SPECTRE_X360_MUTE_LED),
9903 SND_PCI_QUIRK(0x103c, 0x8716, "HP Elite Dragonfly G2 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9904 SND_PCI_QUIRK(0x103c, 0x8720, "HP EliteBook x360 1040 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9905 SND_PCI_QUIRK(0x103c, 0x8724, "HP EliteBook 850 G7", ALC285_FIXUP_HP_GPIO_LED),
9906 SND_PCI_QUIRK(0x103c, 0x8728, "HP EliteBook 840 G7", ALC285_FIXUP_HP_GPIO_LED),
9907 SND_PCI_QUIRK(0x103c, 0x8729, "HP", ALC285_FIXUP_HP_GPIO_LED),
9908 SND_PCI_QUIRK(0x103c, 0x8730, "HP ProBook 445 G7", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
9909 SND_PCI_QUIRK(0x103c, 0x8735, "HP ProBook 435 G7", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
9910 SND_PCI_QUIRK(0x103c, 0x8736, "HP", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9911 SND_PCI_QUIRK(0x103c, 0x8760, "HP", ALC285_FIXUP_HP_MUTE_LED),
9912 SND_PCI_QUIRK(0x103c, 0x876e, "HP ENVY x360 Convertible 13-ay0xxx", ALC245_FIXUP_HP_X360_MUTE_LEDS),
9913 SND_PCI_QUIRK(0x103c, 0x877a, "HP", ALC285_FIXUP_HP_MUTE_LED),
9914 SND_PCI_QUIRK(0x103c, 0x877d, "HP", ALC236_FIXUP_HP_MUTE_LED),
9915 SND_PCI_QUIRK(0x103c, 0x8780, "HP ZBook Fury 17 G7 Mobile Workstation",
9917 SND_PCI_QUIRK(0x103c, 0x8783, "HP ZBook Fury 15 G7 Mobile Workstation",
9919 SND_PCI_QUIRK(0x103c, 0x8786, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED),
9920 SND_PCI_QUIRK(0x103c, 0x8787, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED),
9921 SND_PCI_QUIRK(0x103c, 0x8788, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED),
9922 SND_PCI_QUIRK(0x103c, 0x87b7, "HP Laptop 14-fq0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9923 SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED),
9924 SND_PCI_QUIRK(0x103c, 0x87d3, "HP Laptop 15-gw0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9925 SND_PCI_QUIRK(0x103c, 0x87df, "HP ProBook 430 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
9926 SND_PCI_QUIRK(0x103c, 0x87e5, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
9927 SND_PCI_QUIRK(0x103c, 0x87e7, "HP ProBook 450 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
9928 SND_PCI_QUIRK(0x103c, 0x87f1, "HP ProBook 630 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
9929 SND_PCI_QUIRK(0x103c, 0x87f2, "HP ProBook 640 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
9930 SND_PCI_QUIRK(0x103c, 0x87f4, "HP", ALC287_FIXUP_HP_GPIO_LED),
9931 SND_PCI_QUIRK(0x103c, 0x87f5, "HP", ALC287_FIXUP_HP_GPIO_LED),
9932 SND_PCI_QUIRK(0x103c, 0x87f6, "HP Spectre x360 14", ALC245_FIXUP_HP_X360_AMP),
9933 SND_PCI_QUIRK(0x103c, 0x87f7, "HP Spectre x360 14", ALC245_FIXUP_HP_X360_AMP),
9934 SND_PCI_QUIRK(0x103c, 0x87fd, "HP Laptop 14-dq2xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9935 SND_PCI_QUIRK(0x103c, 0x87fe, "HP Laptop 15s-fq2xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9936 SND_PCI_QUIRK(0x103c, 0x8805, "HP ProBook 650 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
9937 SND_PCI_QUIRK(0x103c, 0x880d, "HP EliteBook 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
9938 SND_PCI_QUIRK(0x103c, 0x8811, "HP Spectre x360 15-eb1xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1),
9939 SND_PCI_QUIRK(0x103c, 0x8812, "HP Spectre x360 15-eb1xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1),
9940 SND_PCI_QUIRK(0x103c, 0x881d, "HP 250 G8 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9941 SND_PCI_QUIRK(0x103c, 0x8846, "HP EliteBook 850 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
9942 SND_PCI_QUIRK(0x103c, 0x8847, "HP EliteBook x360 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
9943 SND_PCI_QUIRK(0x103c, 0x884b, "HP EliteBook 840 Aero G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
9944 SND_PCI_QUIRK(0x103c, 0x884c, "HP EliteBook 840 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
9945 SND_PCI_QUIRK(0x103c, 0x8862, "HP ProBook 445 G8 Notebook PC", ALC236_FIXUP_HP_LIMIT_INT_MIC_BOOST),
9946 SND_PCI_QUIRK(0x103c, 0x8863, "HP ProBook 445 G8 Notebook PC", ALC236_FIXUP_HP_LIMIT_INT_MIC_BOOST),
9947 SND_PCI_QUIRK(0x103c, 0x886d, "HP ZBook Fury 17.3 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9948 SND_PCI_QUIRK(0x103c, 0x8870, "HP ZBook Fury 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9949 SND_PCI_QUIRK(0x103c, 0x8873, "HP ZBook Studio 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
9950 SND_PCI_QUIRK(0x103c, 0x887a, "HP Laptop 15s-eq2xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9951 SND_PCI_QUIRK(0x103c, 0x888a, "HP ENVY x360 Convertible 15-eu0xxx", ALC245_FIXUP_HP_X360_MUTE_LEDS),
9952 SND_PCI_QUIRK(0x103c, 0x888d, "HP ZBook Power 15.6 inch G8 Mobile Workstation PC", ALC236_FIXUP_HP_GPIO_LED),
9953 SND_PCI_QUIRK(0x103c, 0x8895, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_SPEAKERS_MICMUTE_LED),
9954 SND_PCI_QUIRK(0x103c, 0x8896, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_MUTE_LED),
9955 SND_PCI_QUIRK(0x103c, 0x8898, "HP EliteBook 845 G8 Notebook PC", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST),
9956 SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED),
9957 SND_PCI_QUIRK(0x103c, 0x88dd, "HP Pavilion 15z-ec200", ALC285_FIXUP_HP_MUTE_LED),
9958 SND_PCI_QUIRK(0x103c, 0x8902, "HP OMEN 16", ALC285_FIXUP_HP_MUTE_LED),
9959 SND_PCI_QUIRK(0x103c, 0x890e, "HP 255 G8 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9960 SND_PCI_QUIRK(0x103c, 0x8919, "HP Pavilion Aero Laptop 13-be0xxx", ALC287_FIXUP_HP_GPIO_LED),
9961 SND_PCI_QUIRK(0x103c, 0x896d, "HP ZBook Firefly 16 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9962 SND_PCI_QUIRK(0x103c, 0x896e, "HP EliteBook x360 830 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9963 SND_PCI_QUIRK(0x103c, 0x8971, "HP EliteBook 830 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9964 SND_PCI_QUIRK(0x103c, 0x8972, "HP EliteBook 840 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9965 SND_PCI_QUIRK(0x103c, 0x8973, "HP EliteBook 860 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9966 SND_PCI_QUIRK(0x103c, 0x8974, "HP EliteBook 840 Aero G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9967 SND_PCI_QUIRK(0x103c, 0x8975, "HP EliteBook x360 840 Aero G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9968 SND_PCI_QUIRK(0x103c, 0x897d, "HP mt440 Mobile Thin Client U74", ALC236_FIXUP_HP_GPIO_LED),
9969 SND_PCI_QUIRK(0x103c, 0x8981, "HP Elite Dragonfly G3", ALC245_FIXUP_CS35L41_SPI_4),
9970 SND_PCI_QUIRK(0x103c, 0x898e, "HP EliteBook 835 G9", ALC287_FIXUP_CS35L41_I2C_2),
9971 SND_PCI_QUIRK(0x103c, 0x898f, "HP EliteBook 835 G9", ALC287_FIXUP_CS35L41_I2C_2),
9972 SND_PCI_QUIRK(0x103c, 0x8991, "HP EliteBook 845 G9", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
9973 SND_PCI_QUIRK(0x103c, 0x8992, "HP EliteBook 845 G9", ALC287_FIXUP_CS35L41_I2C_2),
9974 SND_PCI_QUIRK(0x103c, 0x8994, "HP EliteBook 855 G9", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
9975 SND_PCI_QUIRK(0x103c, 0x8995, "HP EliteBook 855 G9", ALC287_FIXUP_CS35L41_I2C_2),
9976 SND_PCI_QUIRK(0x103c, 0x89a4, "HP ProBook 440 G9", ALC236_FIXUP_HP_GPIO_LED),
9977 SND_PCI_QUIRK(0x103c, 0x89a6, "HP ProBook 450 G9", ALC236_FIXUP_HP_GPIO_LED),
9978 SND_PCI_QUIRK(0x103c, 0x89aa, "HP EliteBook 630 G9", ALC236_FIXUP_HP_GPIO_LED),
9979 SND_PCI_QUIRK(0x103c, 0x89ac, "HP EliteBook 640 G9", ALC236_FIXUP_HP_GPIO_LED),
9980 SND_PCI_QUIRK(0x103c, 0x89ae, "HP EliteBook 650 G9", ALC236_FIXUP_HP_GPIO_LED),
9981 SND_PCI_QUIRK(0x103c, 0x89c0, "HP ZBook Power 15.6 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9982 SND_PCI_QUIRK(0x103c, 0x89c3, "Zbook Studio G9", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
9983 SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9984 SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
9985 SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
9986 SND_PCI_QUIRK(0x103c, 0x8a0f, "HP Pavilion 14-ec1xxx", ALC287_FIXUP_HP_GPIO_LED),
9987 SND_PCI_QUIRK(0x103c, 0x8a20, "HP Laptop 15s-fq5xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
9988 SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
9989 SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST),
9990 SND_PCI_QUIRK(0x103c, 0x8aa0, "HP ProBook 440 G9 (MB 8A9E)", ALC236_FIXUP_HP_GPIO_LED),
9991 SND_PCI_QUIRK(0x103c, 0x8aa3, "HP ProBook 450 G9 (MB 8AA1)", ALC236_FIXUP_HP_GPIO_LED),
9992 SND_PCI_QUIRK(0x103c, 0x8aa8, "HP EliteBook 640 G9 (MB 8AA6)", ALC236_FIXUP_HP_GPIO_LED),
9993 SND_PCI_QUIRK(0x103c, 0x8aab, "HP EliteBook 650 G9 (MB 8AA9)", ALC236_FIXUP_HP_GPIO_LED),
9994 SND_PCI_QUIRK(0x103c, 0x8ab9, "HP EliteBook 840 G8 (MB 8AB8)", ALC285_FIXUP_HP_GPIO_LED),
9995 SND_PCI_QUIRK(0x103c, 0x8abb, "HP ZBook Firefly 14 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9996 SND_PCI_QUIRK(0x103c, 0x8ad1, "HP EliteBook 840 14 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9997 SND_PCI_QUIRK(0x103c, 0x8ad2, "HP EliteBook 860 16 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
9998 SND_PCI_QUIRK(0x103c, 0x8b0f, "HP Elite mt645 G7 Mobile Thin Client U81", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
9999 SND_PCI_QUIRK(0x103c, 0x8b2f, "HP 255 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
10000 SND_PCI_QUIRK(0x103c, 0x8b3f, "HP mt440 Mobile Thin Client U91", ALC236_FIXUP_HP_GPIO_LED),
10001 SND_PCI_QUIRK(0x103c, 0x8b42, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10002 SND_PCI_QUIRK(0x103c, 0x8b43, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10003 SND_PCI_QUIRK(0x103c, 0x8b44, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10004 SND_PCI_QUIRK(0x103c, 0x8b45, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10005 SND_PCI_QUIRK(0x103c, 0x8b46, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10006 SND_PCI_QUIRK(0x103c, 0x8b47, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10007 SND_PCI_QUIRK(0x103c, 0x8b59, "HP Elite mt645 G7 Mobile Thin Client U89", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10008 SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10009 SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10010 SND_PCI_QUIRK(0x103c, 0x8b5f, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10011 SND_PCI_QUIRK(0x103c, 0x8b63, "HP Elite Dragonfly 13.5 inch G4", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
10012 SND_PCI_QUIRK(0x103c, 0x8b65, "HP ProBook 455 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10013 SND_PCI_QUIRK(0x103c, 0x8b66, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10014 SND_PCI_QUIRK(0x103c, 0x8b70, "HP EliteBook 835 G10", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
10015 SND_PCI_QUIRK(0x103c, 0x8b72, "HP EliteBook 845 G10", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
10016 SND_PCI_QUIRK(0x103c, 0x8b74, "HP EliteBook 845W G10", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
10017 SND_PCI_QUIRK(0x103c, 0x8b77, "HP ElieBook 865 G10", ALC287_FIXUP_CS35L41_I2C_2),
10018 SND_PCI_QUIRK(0x103c, 0x8b7a, "HP", ALC236_FIXUP_HP_GPIO_LED),
10019 SND_PCI_QUIRK(0x103c, 0x8b7d, "HP", ALC236_FIXUP_HP_GPIO_LED),
10020 SND_PCI_QUIRK(0x103c, 0x8b87, "HP", ALC236_FIXUP_HP_GPIO_LED),
10021 SND_PCI_QUIRK(0x103c, 0x8b8a, "HP", ALC236_FIXUP_HP_GPIO_LED),
10022 SND_PCI_QUIRK(0x103c, 0x8b8b, "HP", ALC236_FIXUP_HP_GPIO_LED),
10023 SND_PCI_QUIRK(0x103c, 0x8b8d, "HP", ALC236_FIXUP_HP_GPIO_LED),
10024 SND_PCI_QUIRK(0x103c, 0x8b8f, "HP", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
10025 SND_PCI_QUIRK(0x103c, 0x8b92, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10026 SND_PCI_QUIRK(0x103c, 0x8b96, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10027 SND_PCI_QUIRK(0x103c, 0x8b97, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10028 SND_PCI_QUIRK(0x103c, 0x8bf0, "HP", ALC236_FIXUP_HP_GPIO_LED),
10029 SND_PCI_QUIRK(0x103c, 0x8c46, "HP EliteBook 830 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10030 SND_PCI_QUIRK(0x103c, 0x8c47, "HP EliteBook 840 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10031 SND_PCI_QUIRK(0x103c, 0x8c48, "HP EliteBook 860 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10032 SND_PCI_QUIRK(0x103c, 0x8c49, "HP Elite x360 830 2-in-1 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10033 SND_PCI_QUIRK(0x103c, 0x8c70, "HP EliteBook 835 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
10034 SND_PCI_QUIRK(0x103c, 0x8c71, "HP EliteBook 845 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
10035 SND_PCI_QUIRK(0x103c, 0x8c72, "HP EliteBook 865 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
10036 SND_PCI_QUIRK(0x103c, 0x8c7b, "HP ProBook 445 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10037 SND_PCI_QUIRK(0x103c, 0x8c7c, "HP ProBook 445 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10038 SND_PCI_QUIRK(0x103c, 0x8c7d, "HP ProBook 465 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10039 SND_PCI_QUIRK(0x103c, 0x8c7e, "HP ProBook 465 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10040 SND_PCI_QUIRK(0x103c, 0x8c7f, "HP EliteBook 645 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10041 SND_PCI_QUIRK(0x103c, 0x8c80, "HP EliteBook 645 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10042 SND_PCI_QUIRK(0x103c, 0x8c81, "HP EliteBook 665 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10043 SND_PCI_QUIRK(0x103c, 0x8c89, "HP ProBook 460 G11", ALC236_FIXUP_HP_GPIO_LED),
10044 SND_PCI_QUIRK(0x103c, 0x8c8a, "HP EliteBook 630", ALC236_FIXUP_HP_GPIO_LED),
10045 SND_PCI_QUIRK(0x103c, 0x8c8c, "HP EliteBook 660", ALC236_FIXUP_HP_GPIO_LED),
10046 SND_PCI_QUIRK(0x103c, 0x8c8d, "HP ProBook 440 G11", ALC236_FIXUP_HP_GPIO_LED),
10047 SND_PCI_QUIRK(0x103c, 0x8c8e, "HP ProBook 460 G11", ALC236_FIXUP_HP_GPIO_LED),
10048 SND_PCI_QUIRK(0x103c, 0x8c90, "HP EliteBook 640", ALC236_FIXUP_HP_GPIO_LED),
10049 SND_PCI_QUIRK(0x103c, 0x8c91, "HP EliteBook 660", ALC236_FIXUP_HP_GPIO_LED),
10050 SND_PCI_QUIRK(0x103c, 0x8c96, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10051 SND_PCI_QUIRK(0x103c, 0x8c97, "HP ZBook", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10052 SND_PCI_QUIRK(0x103c, 0x8ca1, "HP ZBook Power", ALC236_FIXUP_HP_GPIO_LED),
10053 SND_PCI_QUIRK(0x103c, 0x8ca2, "HP ZBook Power", ALC236_FIXUP_HP_GPIO_LED),
10054 SND_PCI_QUIRK(0x103c, 0x8ca4, "HP ZBook Fury", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10055 SND_PCI_QUIRK(0x103c, 0x8ca7, "HP ZBook Fury", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
10056 SND_PCI_QUIRK(0x103c, 0x8cf5, "HP ZBook Studio 16", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
10057 SND_PCI_QUIRK(0x103c, 0x8d01, "HP ZBook Power 14 G12", ALC285_FIXUP_HP_GPIO_LED),
10058 SND_PCI_QUIRK(0x103c, 0x8d84, "HP EliteBook X G1i", ALC285_FIXUP_HP_GPIO_LED),
10059 SND_PCI_QUIRK(0x103c, 0x8d91, "HP ZBook Firefly 14 G12", ALC285_FIXUP_HP_GPIO_LED),
10060 SND_PCI_QUIRK(0x103c, 0x8d92, "HP ZBook Firefly 16 G12", ALC285_FIXUP_HP_GPIO_LED),
10061 SND_PCI_QUIRK(0x103c, 0x8e18, "HP ZBook Firefly 14 G12A", ALC285_FIXUP_HP_GPIO_LED),
10062 SND_PCI_QUIRK(0x103c, 0x8e19, "HP ZBook Firefly 14 G12A", ALC285_FIXUP_HP_GPIO_LED),
10063 SND_PCI_QUIRK(0x103c, 0x8e1a, "HP ZBook Firefly 14 G12A", ALC285_FIXUP_HP_GPIO_LED),
10064 SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
10065 SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300),
10066 SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10067 SND_PCI_QUIRK(0x1043, 0x10a1, "ASUS UX391UA", ALC294_FIXUP_ASUS_SPK),
10068 SND_PCI_QUIRK(0x1043, 0x10c0, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
10069 SND_PCI_QUIRK(0x1043, 0x10d0, "ASUS X540LA/X540LJ", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
10070 SND_PCI_QUIRK(0x1043, 0x10d3, "ASUS K6500ZC", ALC294_FIXUP_ASUS_SPK),
10071 SND_PCI_QUIRK(0x1043, 0x115d, "Asus 1015E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10072 SND_PCI_QUIRK(0x1043, 0x11c0, "ASUS X556UR", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
10073 SND_PCI_QUIRK(0x1043, 0x125e, "ASUS Q524UQK", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
10074 SND_PCI_QUIRK(0x1043, 0x1271, "ASUS X430UN", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
10075 SND_PCI_QUIRK(0x1043, 0x1290, "ASUS X441SA", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE),
10076 SND_PCI_QUIRK(0x1043, 0x12a0, "ASUS X441UV", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE),
10077 SND_PCI_QUIRK(0x1043, 0x12a3, "Asus N7691ZM", ALC269_FIXUP_ASUS_N7601ZM),
10078 SND_PCI_QUIRK(0x1043, 0x12af, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2),
10079 SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC),
10080 SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC),
10081 SND_PCI_QUIRK(0x1043, 0x1313, "Asus K42JZ", ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE),
10082 SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC),
10083 SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
10084 SND_PCI_QUIRK(0x1043, 0x1433, "ASUS GX650P", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC),
10085 SND_PCI_QUIRK(0x1043, 0x1463, "Asus GA402X", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC),
10086 SND_PCI_QUIRK(0x1043, 0x1473, "ASUS GU604V", ALC285_FIXUP_ASUS_HEADSET_MIC),
10087 SND_PCI_QUIRK(0x1043, 0x1483, "ASUS GU603V", ALC285_FIXUP_ASUS_HEADSET_MIC),
10088 SND_PCI_QUIRK(0x1043, 0x1493, "ASUS GV601V", ALC285_FIXUP_ASUS_HEADSET_MIC),
10089 SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A),
10090 SND_PCI_QUIRK(0x1043, 0x1533, "ASUS GV302XA", ALC287_FIXUP_CS35L41_I2C_2),
10091 SND_PCI_QUIRK(0x1043, 0x1573, "ASUS GZ301V", ALC285_FIXUP_ASUS_HEADSET_MIC),
10092 SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK),
10093 SND_PCI_QUIRK(0x1043, 0x1663, "ASUS GU603ZV", ALC285_FIXUP_ASUS_HEADSET_MIC),
10094 SND_PCI_QUIRK(0x1043, 0x1683, "ASUS UM3402YAR", ALC287_FIXUP_CS35L41_I2C_2),
10095 SND_PCI_QUIRK(0x1043, 0x16a3, "ASUS UX3402VA", ALC245_FIXUP_CS35L41_SPI_2),
10096 SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
10097 SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
10098 SND_PCI_QUIRK(0x1043, 0x1740, "ASUS UX430UA", ALC295_FIXUP_ASUS_DACS),
10099 SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK),
10100 SND_PCI_QUIRK(0x1043, 0x17f3, "ROG Ally RC71L_RC71L", ALC294_FIXUP_ASUS_ALLY),
10101 SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS),
10102 SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),
10103 SND_PCI_QUIRK(0x1043, 0x18d3, "ASUS UM3504DA", ALC294_FIXUP_CS35L41_I2C_2),
10104 SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC),
10105 SND_PCI_QUIRK(0x1043, 0x194e, "ASUS UX563FD", ALC294_FIXUP_ASUS_HPE),
10106 SND_PCI_QUIRK(0x1043, 0x1970, "ASUS UX550VE", ALC289_FIXUP_ASUS_GA401),
10107 SND_PCI_QUIRK(0x1043, 0x1982, "ASUS B1400CEPE", ALC256_FIXUP_ASUS_HPE),
10108 SND_PCI_QUIRK(0x1043, 0x19ce, "ASUS B9450FA", ALC294_FIXUP_ASUS_HPE),
10109 SND_PCI_QUIRK(0x1043, 0x19e1, "ASUS UX581LV", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE),
10110 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
10111 SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC),
10112 SND_PCI_QUIRK(0x1043, 0x1a63, "ASUS UX3405MA", ALC245_FIXUP_CS35L41_SPI_2),
10113 SND_PCI_QUIRK(0x1043, 0x1a83, "ASUS UM5302LA", ALC294_FIXUP_CS35L41_I2C_2),
10114 SND_PCI_QUIRK(0x1043, 0x1a8f, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2),
10115 SND_PCI_QUIRK(0x1043, 0x1b11, "ASUS UX431DA", ALC294_FIXUP_ASUS_COEF_1B),
10116 SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),
10117 SND_PCI_QUIRK(0x1043, 0x1b93, "ASUS G614JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2),
10118 SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
10119 SND_PCI_QUIRK(0x1043, 0x1c03, "ASUS UM3406HA", ALC287_FIXUP_CS35L41_I2C_2),
10120 SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10121 SND_PCI_QUIRK(0x1043, 0x1c33, "ASUS UX5304MA", ALC245_FIXUP_CS35L41_SPI_2),
10122 SND_PCI_QUIRK(0x1043, 0x1c43, "ASUS UX8406MA", ALC245_FIXUP_CS35L41_SPI_2),
10123 SND_PCI_QUIRK(0x1043, 0x1c62, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
10124 SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS),
10125 SND_PCI_QUIRK(0x1043, 0x1c9f, "ASUS G614JI", ALC285_FIXUP_ASUS_HEADSET_MIC),
10126 SND_PCI_QUIRK(0x1043, 0x1caf, "ASUS G634JYR/JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
10127 SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC),
10128 SND_PCI_QUIRK(0x1043, 0x1d1f, "ASUS ROG Strix G17 2023 (G713PV)", ALC287_FIXUP_CS35L41_I2C_2),
10129 SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401),
10130 SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE),
10131 SND_PCI_QUIRK(0x1043, 0x1da2, "ASUS UP6502ZA/ZD", ALC245_FIXUP_CS35L41_SPI_2),
10132 SND_PCI_QUIRK(0x1043, 0x1e02, "ASUS UX3402ZA", ALC245_FIXUP_CS35L41_SPI_2),
10133 SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502),
10134 SND_PCI_QUIRK(0x1043, 0x1e12, "ASUS UM3402", ALC287_FIXUP_CS35L41_I2C_2),
10135 SND_PCI_QUIRK(0x1043, 0x1e51, "ASUS Zephyrus M15", ALC294_FIXUP_ASUS_GU502_PINS),
10136 SND_PCI_QUIRK(0x1043, 0x1e5e, "ASUS ROG Strix G513", ALC294_FIXUP_ASUS_G513_PINS),
10137 SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401),
10138 SND_PCI_QUIRK(0x1043, 0x1ee2, "ASUS UM6702RA/RC", ALC287_FIXUP_CS35L41_I2C_2),
10139 SND_PCI_QUIRK(0x1043, 0x1c52, "ASUS Zephyrus G15 2022", ALC289_FIXUP_ASUS_GA401),
10140 SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401),
10141 SND_PCI_QUIRK(0x1043, 0x1f12, "ASUS UM5302", ALC287_FIXUP_CS35L41_I2C_2),
10142 SND_PCI_QUIRK(0x1043, 0x1f62, "ASUS UX7602ZM", ALC245_FIXUP_CS35L41_SPI_2),
10143 SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401),
10144 SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
10145 SND_PCI_QUIRK(0x1043, 0x3a20, "ASUS G614JZR", ALC245_FIXUP_CS35L41_SPI_2),
10146 SND_PCI_QUIRK(0x1043, 0x3a30, "ASUS G814JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2),
10147 SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
10148 SND_PCI_QUIRK(0x1043, 0x3a50, "ASUS G834JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2),
10149 SND_PCI_QUIRK(0x1043, 0x3a60, "ASUS G634JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2),
10150 SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC),
10151 SND_PCI_QUIRK(0x1043, 0x834a, "ASUS S101", ALC269_FIXUP_STEREO_DMIC),
10152 SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
10153 SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
10154 SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101),
10155 SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2),
10156 SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
10157 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
10158 SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX),
10159 SND_PCI_QUIRK(0x104d, 0x90b5, "Sony VAIO Pro 11", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
10160 SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
10161 SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK),
10162 SND_PCI_QUIRK(0x10cf, 0x159f, "Lifebook E780", ALC269_FIXUP_LIFEBOOK_NO_HP_TO_LINEOUT),
10163 SND_PCI_QUIRK(0x10cf, 0x15dc, "Lifebook T731", ALC269_FIXUP_LIFEBOOK_HP_PIN),
10164 SND_PCI_QUIRK(0x10cf, 0x1629, "Lifebook U7x7", ALC255_FIXUP_LIFEBOOK_U7x7_HEADSET_MIC),
10165 SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
10166 SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
10167 SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
10168 SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
10169 SND_PCI_QUIRK(0x10ec, 0x119e, "Positivo SU C1400", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
10170 SND_PCI_QUIRK(0x10ec, 0x11bc, "VAIO VJFE-IL", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10171 SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
10172 SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
10173 SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
10174 SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
10175 SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
10176 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
10177 SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
10178 SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
10179 SND_PCI_QUIRK(0x144d, 0xc176, "Samsung Notebook 9 Pro (NP930MBE-K04US)", ALC298_FIXUP_SAMSUNG_AMP),
10180 SND_PCI_QUIRK(0x144d, 0xc189, "Samsung Galaxy Flex Book (NT950QCG-X716)", ALC298_FIXUP_SAMSUNG_AMP),
10181 SND_PCI_QUIRK(0x144d, 0xc18a, "Samsung Galaxy Book Ion (NP930XCJ-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
10182 SND_PCI_QUIRK(0x144d, 0xc1a3, "Samsung Galaxy Book Pro (NP935XDB-KC1SE)", ALC298_FIXUP_SAMSUNG_AMP),
10183 SND_PCI_QUIRK(0x144d, 0xc1a4, "Samsung Galaxy Book Pro 360 (NT935QBD)", ALC298_FIXUP_SAMSUNG_AMP),
10184 SND_PCI_QUIRK(0x144d, 0xc1a6, "Samsung Galaxy Book Pro 360 (NP930QBD)", ALC298_FIXUP_SAMSUNG_AMP),
10185 SND_PCI_QUIRK(0x144d, 0xc740, "Samsung Ativ book 8 (NP870Z5G)", ALC269_FIXUP_ATIV_BOOK_8),
10186 SND_PCI_QUIRK(0x144d, 0xc812, "Samsung Notebook Pen S (NT950SBE-X58)", ALC298_FIXUP_SAMSUNG_AMP),
10187 SND_PCI_QUIRK(0x144d, 0xc830, "Samsung Galaxy Book Ion (NT950XCJ-X716A)", ALC298_FIXUP_SAMSUNG_AMP),
10188 SND_PCI_QUIRK(0x144d, 0xc832, "Samsung Galaxy Book Flex Alpha (NP730QCJ)", ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
10189 SND_PCI_QUIRK(0x144d, 0xca03, "Samsung Galaxy Book2 Pro 360 (NP930QED)", ALC298_FIXUP_SAMSUNG_AMP),
10190 SND_PCI_QUIRK(0x144d, 0xca06, "Samsung Galaxy Book3 360 (NP730QFG)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
10191 SND_PCI_QUIRK(0x144d, 0xc868, "Samsung Galaxy Book2 Pro (NP930XED)", ALC298_FIXUP_SAMSUNG_AMP),
10192 SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_HEADSET_MIC),
10193 SND_PCI_QUIRK(0x1462, 0xb120, "MSI Cubi MS-B120", ALC283_FIXUP_HEADSET_MIC),
10194 SND_PCI_QUIRK(0x1462, 0xb171, "Cubi N 8GL (MS-B171)", ALC283_FIXUP_HEADSET_MIC),
10195 SND_PCI_QUIRK(0x152d, 0x1082, "Quanta NL3", ALC269_FIXUP_LIFEBOOK),
10196 SND_PCI_QUIRK(0x152d, 0x1262, "Huawei NBLB-WAX9N", ALC2XX_FIXUP_HEADSET_MIC),
10197 SND_PCI_QUIRK(0x1558, 0x0353, "Clevo V35[05]SN[CDE]Q", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10198 SND_PCI_QUIRK(0x1558, 0x1323, "Clevo N130ZU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10199 SND_PCI_QUIRK(0x1558, 0x1325, "Clevo N15[01][CW]U", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10200 SND_PCI_QUIRK(0x1558, 0x1401, "Clevo L140[CZ]U", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10201 SND_PCI_QUIRK(0x1558, 0x1403, "Clevo N140CU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10202 SND_PCI_QUIRK(0x1558, 0x1404, "Clevo N150CU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10203 SND_PCI_QUIRK(0x1558, 0x14a1, "Clevo L141MU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10204 SND_PCI_QUIRK(0x1558, 0x2624, "Clevo L240TU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10205 SND_PCI_QUIRK(0x1558, 0x28c1, "Clevo V370VND", ALC2XX_FIXUP_HEADSET_MIC),
10206 SND_PCI_QUIRK(0x1558, 0x4018, "Clevo NV40M[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10207 SND_PCI_QUIRK(0x1558, 0x4019, "Clevo NV40MZ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10208 SND_PCI_QUIRK(0x1558, 0x4020, "Clevo NV40MB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10209 SND_PCI_QUIRK(0x1558, 0x4041, "Clevo NV4[15]PZ", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10210 SND_PCI_QUIRK(0x1558, 0x40a1, "Clevo NL40GU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10211 SND_PCI_QUIRK(0x1558, 0x40c1, "Clevo NL40[CZ]U", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10212 SND_PCI_QUIRK(0x1558, 0x40d1, "Clevo NL41DU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10213 SND_PCI_QUIRK(0x1558, 0x5015, "Clevo NH5[58]H[HJK]Q", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10214 SND_PCI_QUIRK(0x1558, 0x5017, "Clevo NH7[79]H[HJK]Q", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10215 SND_PCI_QUIRK(0x1558, 0x50a3, "Clevo NJ51GU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10216 SND_PCI_QUIRK(0x1558, 0x50b3, "Clevo NK50S[BEZ]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10217 SND_PCI_QUIRK(0x1558, 0x50b6, "Clevo NK50S5", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10218 SND_PCI_QUIRK(0x1558, 0x50b8, "Clevo NK50SZ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10219 SND_PCI_QUIRK(0x1558, 0x50d5, "Clevo NP50D5", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10220 SND_PCI_QUIRK(0x1558, 0x50e1, "Clevo NH5[58]HPQ", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10221 SND_PCI_QUIRK(0x1558, 0x50e2, "Clevo NH7[79]HPQ", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10222 SND_PCI_QUIRK(0x1558, 0x50f0, "Clevo NH50A[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10223 SND_PCI_QUIRK(0x1558, 0x50f2, "Clevo NH50E[PR]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10224 SND_PCI_QUIRK(0x1558, 0x50f3, "Clevo NH58DPQ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10225 SND_PCI_QUIRK(0x1558, 0x50f5, "Clevo NH55EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10226 SND_PCI_QUIRK(0x1558, 0x50f6, "Clevo NH55DPQ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10227 SND_PCI_QUIRK(0x1558, 0x5101, "Clevo S510WU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10228 SND_PCI_QUIRK(0x1558, 0x5157, "Clevo W517GU1", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10229 SND_PCI_QUIRK(0x1558, 0x51a1, "Clevo NS50MU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10230 SND_PCI_QUIRK(0x1558, 0x51b1, "Clevo NS50AU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10231 SND_PCI_QUIRK(0x1558, 0x51b3, "Clevo NS70AU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10232 SND_PCI_QUIRK(0x1558, 0x5630, "Clevo NP50RNJS", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10233 SND_PCI_QUIRK(0x1558, 0x70a1, "Clevo NB70T[HJK]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10234 SND_PCI_QUIRK(0x1558, 0x70b3, "Clevo NK70SB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10235 SND_PCI_QUIRK(0x1558, 0x70f2, "Clevo NH79EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10236 SND_PCI_QUIRK(0x1558, 0x70f3, "Clevo NH77DPQ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10237 SND_PCI_QUIRK(0x1558, 0x70f4, "Clevo NH77EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10238 SND_PCI_QUIRK(0x1558, 0x70f6, "Clevo NH77DPQ-Y", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10239 SND_PCI_QUIRK(0x1558, 0x7716, "Clevo NS50PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10240 SND_PCI_QUIRK(0x1558, 0x7717, "Clevo NS70PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10241 SND_PCI_QUIRK(0x1558, 0x7718, "Clevo L140PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10242 SND_PCI_QUIRK(0x1558, 0x7724, "Clevo L140AU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10243 SND_PCI_QUIRK(0x1558, 0x8228, "Clevo NR40BU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10244 SND_PCI_QUIRK(0x1558, 0x8520, "Clevo NH50D[CD]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10245 SND_PCI_QUIRK(0x1558, 0x8521, "Clevo NH77D[CD]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10246 SND_PCI_QUIRK(0x1558, 0x8535, "Clevo NH50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10247 SND_PCI_QUIRK(0x1558, 0x8536, "Clevo NH79D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10248 SND_PCI_QUIRK(0x1558, 0x8550, "Clevo NH[57][0-9][ER][ACDH]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10249 SND_PCI_QUIRK(0x1558, 0x8551, "Clevo NH[57][0-9][ER][ACDH]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10250 SND_PCI_QUIRK(0x1558, 0x8560, "Clevo NH[57][0-9][ER][ACDH]Q", ALC269_FIXUP_HEADSET_MIC),
10251 SND_PCI_QUIRK(0x1558, 0x8561, "Clevo NH[57][0-9][ER][ACDH]Q", ALC269_FIXUP_HEADSET_MIC),
10252 SND_PCI_QUIRK(0x1558, 0x8562, "Clevo NH[57][0-9]RZ[Q]", ALC269_FIXUP_DMIC),
10253 SND_PCI_QUIRK(0x1558, 0x8668, "Clevo NP50B[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10254 SND_PCI_QUIRK(0x1558, 0x866d, "Clevo NP5[05]PN[HJK]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10255 SND_PCI_QUIRK(0x1558, 0x867c, "Clevo NP7[01]PNP", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10256 SND_PCI_QUIRK(0x1558, 0x867d, "Clevo NP7[01]PN[HJK]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10257 SND_PCI_QUIRK(0x1558, 0x8680, "Clevo NJ50LU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10258 SND_PCI_QUIRK(0x1558, 0x8686, "Clevo NH50[CZ]U", ALC256_FIXUP_MIC_NO_PRESENCE_AND_RESUME),
10259 SND_PCI_QUIRK(0x1558, 0x8a20, "Clevo NH55DCQ-Y", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10260 SND_PCI_QUIRK(0x1558, 0x8a51, "Clevo NH70RCQ-Y", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10261 SND_PCI_QUIRK(0x1558, 0x8d50, "Clevo NH55RCQ-M", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10262 SND_PCI_QUIRK(0x1558, 0x951d, "Clevo N950T[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10263 SND_PCI_QUIRK(0x1558, 0x9600, "Clevo N960K[PR]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10264 SND_PCI_QUIRK(0x1558, 0x961d, "Clevo N960S[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10265 SND_PCI_QUIRK(0x1558, 0x971d, "Clevo N970T[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10266 SND_PCI_QUIRK(0x1558, 0xa500, "Clevo NL5[03]RU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10267 SND_PCI_QUIRK(0x1558, 0xa600, "Clevo NL50NU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10268 SND_PCI_QUIRK(0x1558, 0xa650, "Clevo NP[567]0SN[CD]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10269 SND_PCI_QUIRK(0x1558, 0xa671, "Clevo NP70SN[CDE]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10270 SND_PCI_QUIRK(0x1558, 0xa763, "Clevo V54x_6x_TU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10271 SND_PCI_QUIRK(0x1558, 0xb018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10272 SND_PCI_QUIRK(0x1558, 0xb019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10273 SND_PCI_QUIRK(0x1558, 0xb022, "Clevo NH77D[DC][QW]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10274 SND_PCI_QUIRK(0x1558, 0xc018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10275 SND_PCI_QUIRK(0x1558, 0xc019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10276 SND_PCI_QUIRK(0x1558, 0xc022, "Clevo NH77[DC][QW]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
10277 SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC233_FIXUP_LENOVO_MULTI_CODECS),
10278 SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
10279 SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE),
10280 SND_PCI_QUIRK(0x17aa, 0x215e, "Thinkpad L512", ALC269_FIXUP_SKU_IGNORE),
10281 SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE),
10282 SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE),
10283 SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE),
10284 SND_PCI_QUIRK(0x17aa, 0x21f3, "Thinkpad T430", ALC269_FIXUP_LENOVO_DOCK),
10285 SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST),
10286 SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK),
10287 SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
10288 SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
10289 SND_PCI_QUIRK(0x17aa, 0x2208, "Thinkpad T431s", ALC269_FIXUP_LENOVO_DOCK),
10290 SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440),
10291 SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK),
10292 SND_PCI_QUIRK(0x17aa, 0x2210, "Thinkpad T540p", ALC292_FIXUP_TPT440_DOCK),
10293 SND_PCI_QUIRK(0x17aa, 0x2211, "Thinkpad W541", ALC292_FIXUP_TPT440_DOCK),
10294 SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad T440", ALC292_FIXUP_TPT440_DOCK),
10295 SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad X240", ALC292_FIXUP_TPT440_DOCK),
10296 SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10297 SND_PCI_QUIRK(0x17aa, 0x2218, "Thinkpad X1 Carbon 2nd", ALC292_FIXUP_TPT440_DOCK),
10298 SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
10299 SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
10300 SND_PCI_QUIRK(0x17aa, 0x222d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10301 SND_PCI_QUIRK(0x17aa, 0x222e, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10302 SND_PCI_QUIRK(0x17aa, 0x2231, "Thinkpad T560", ALC292_FIXUP_TPT460),
10303 SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC292_FIXUP_TPT460),
10304 SND_PCI_QUIRK(0x17aa, 0x2234, "Thinkpad ICE-1", ALC287_FIXUP_TAS2781_I2C),
10305 SND_PCI_QUIRK(0x17aa, 0x2245, "Thinkpad T470", ALC298_FIXUP_TPT470_DOCK),
10306 SND_PCI_QUIRK(0x17aa, 0x2246, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10307 SND_PCI_QUIRK(0x17aa, 0x2247, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10308 SND_PCI_QUIRK(0x17aa, 0x2249, "Thinkpad", ALC292_FIXUP_TPT460),
10309 SND_PCI_QUIRK(0x17aa, 0x224b, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10310 SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10311 SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10312 SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10313 SND_PCI_QUIRK(0x17aa, 0x2292, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK),
10314 SND_PCI_QUIRK(0x17aa, 0x22be, "Thinkpad X1 Carbon 8th", ALC285_FIXUP_THINKPAD_HEADSET_JACK),
10315 SND_PCI_QUIRK(0x17aa, 0x22c1, "Thinkpad P1 Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
10316 SND_PCI_QUIRK(0x17aa, 0x22c2, "Thinkpad X1 Extreme Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
10317 SND_PCI_QUIRK(0x17aa, 0x22f1, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10318 SND_PCI_QUIRK(0x17aa, 0x22f2, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10319 SND_PCI_QUIRK(0x17aa, 0x22f3, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10320 SND_PCI_QUIRK(0x17aa, 0x2316, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10321 SND_PCI_QUIRK(0x17aa, 0x2317, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10322 SND_PCI_QUIRK(0x17aa, 0x2318, "Thinkpad Z13 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10323 SND_PCI_QUIRK(0x17aa, 0x2319, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10324 SND_PCI_QUIRK(0x17aa, 0x231a, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10325 SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
10326 SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
10327 SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
10328 SND_PCI_QUIRK(0x17aa, 0x3111, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
10329 SND_PCI_QUIRK(0x17aa, 0x312a, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
10330 SND_PCI_QUIRK(0x17aa, 0x312f, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
10331 SND_PCI_QUIRK(0x17aa, 0x313c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
10332 SND_PCI_QUIRK(0x17aa, 0x3151, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
10333 SND_PCI_QUIRK(0x17aa, 0x3176, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
10334 SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
10335 SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
10336 SND_PCI_QUIRK(0x17aa, 0x334b, "Lenovo ThinkCentre M70 Gen5", ALC283_FIXUP_HEADSET_MIC),
10337 SND_PCI_QUIRK(0x17aa, 0x3801, "Lenovo Yoga9 14IAP7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
10338 SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga Pro 9 14IRP8 / DuetITL 2021", ALC287_FIXUP_LENOVO_14IRP8_DUETITL),
10339 SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS),
10340 SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7),
10341 SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS),
10342 SND_PCI_QUIRK(0x17aa, 0x3820, "IdeaPad 330-17IKB 81DM", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
10343 SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS),
10344 SND_PCI_QUIRK(0x17aa, 0x3827, "Ideapad S740", ALC285_FIXUP_IDEAPAD_S740_COEF),
10345 SND_PCI_QUIRK(0x17aa, 0x3834, "Lenovo IdeaPad Slim 9i 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
10346 SND_PCI_QUIRK(0x17aa, 0x383d, "Legion Y9000X 2019", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS),
10347 SND_PCI_QUIRK(0x17aa, 0x3843, "Yoga 9i", ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP),
10348 SND_PCI_QUIRK(0x17aa, 0x3847, "Legion 7 16ACHG6", ALC287_FIXUP_LEGION_16ACHG6),
10349 SND_PCI_QUIRK(0x17aa, 0x384a, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
10350 SND_PCI_QUIRK(0x17aa, 0x3852, "Lenovo Yoga 7 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
10351 SND_PCI_QUIRK(0x17aa, 0x3853, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
10352 SND_PCI_QUIRK(0x17aa, 0x3855, "Legion 7 16ITHG6", ALC287_FIXUP_LEGION_16ITHG6),
10353 SND_PCI_QUIRK(0x17aa, 0x3865, "Lenovo 13X", ALC287_FIXUP_CS35L41_I2C_2),
10354 SND_PCI_QUIRK(0x17aa, 0x3866, "Lenovo 13X", ALC287_FIXUP_CS35L41_I2C_2),
10355 SND_PCI_QUIRK(0x17aa, 0x3869, "Lenovo Yoga7 14IAL7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
10356 SND_PCI_QUIRK(0x17aa, 0x387d, "Yoga S780-16 pro Quad AAC", ALC287_FIXUP_TAS2781_I2C),
10357 SND_PCI_QUIRK(0x17aa, 0x387e, "Yoga S780-16 pro Quad YC", ALC287_FIXUP_TAS2781_I2C),
10358 SND_PCI_QUIRK(0x17aa, 0x3881, "YB9 dual power mode2 YC", ALC287_FIXUP_TAS2781_I2C),
10359 SND_PCI_QUIRK(0x17aa, 0x3882, "Lenovo Yoga Pro 7 14APH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
10360 SND_PCI_QUIRK(0x17aa, 0x3884, "Y780 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
10361 SND_PCI_QUIRK(0x17aa, 0x3886, "Y780 VECO DUAL", ALC287_FIXUP_TAS2781_I2C),
10362 SND_PCI_QUIRK(0x17aa, 0x3891, "Lenovo Yoga Pro 7 14AHP9", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
10363 SND_PCI_QUIRK(0x17aa, 0x38a7, "Y780P AMD YG dual", ALC287_FIXUP_TAS2781_I2C),
10364 SND_PCI_QUIRK(0x17aa, 0x38a8, "Y780P AMD VECO dual", ALC287_FIXUP_TAS2781_I2C),
10365 SND_PCI_QUIRK(0x17aa, 0x38ba, "Yoga S780-14.5 Air AMD quad YC", ALC287_FIXUP_TAS2781_I2C),
10366 SND_PCI_QUIRK(0x17aa, 0x38bb, "Yoga S780-14.5 Air AMD quad AAC", ALC287_FIXUP_TAS2781_I2C),
10367 SND_PCI_QUIRK(0x17aa, 0x38be, "Yoga S980-14.5 proX YC Dual", ALC287_FIXUP_TAS2781_I2C),
10368 SND_PCI_QUIRK(0x17aa, 0x38bf, "Yoga S980-14.5 proX LX Dual", ALC287_FIXUP_TAS2781_I2C),
10369 SND_PCI_QUIRK(0x17aa, 0x38c3, "Y980 DUAL", ALC287_FIXUP_TAS2781_I2C),
10370 SND_PCI_QUIRK(0x17aa, 0x38cb, "Y790 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
10371 SND_PCI_QUIRK(0x17aa, 0x38cd, "Y790 VECO DUAL", ALC287_FIXUP_TAS2781_I2C),
10372 SND_PCI_QUIRK(0x17aa, 0x38d2, "Lenovo Yoga 9 14IMH9", ALC287_FIXUP_YOGA9_14IMH9_BASS_SPK_PIN),
10373 SND_PCI_QUIRK(0x17aa, 0x38d7, "Lenovo Yoga 9 14IMH9", ALC287_FIXUP_YOGA9_14IMH9_BASS_SPK_PIN),
10374 SND_PCI_QUIRK(0x17aa, 0x38df, "Y990 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
10375 SND_PCI_QUIRK(0x17aa, 0x38f9, "Thinkbook 16P Gen5", ALC287_FIXUP_CS35L41_I2C_2),
10376 SND_PCI_QUIRK(0x17aa, 0x38fa, "Thinkbook 16P Gen5", ALC287_FIXUP_CS35L41_I2C_2),
10377 SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
10378 SND_PCI_QUIRK(0x17aa, 0x3913, "Lenovo 145", ALC236_FIXUP_LENOVO_INV_DMIC),
10379 SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
10380 SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo B50-70", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
10381 SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
10382 SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10383 SND_PCI_QUIRK(0x17aa, 0x501a, "Thinkpad", ALC283_FIXUP_INT_MIC),
10384 SND_PCI_QUIRK(0x17aa, 0x501e, "Thinkpad L440", ALC292_FIXUP_TPT440_DOCK),
10385 SND_PCI_QUIRK(0x17aa, 0x5026, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10386 SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
10387 SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
10388 SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
10389 SND_PCI_QUIRK(0x17aa, 0x504a, "ThinkPad X260", ALC292_FIXUP_TPT440_DOCK),
10390 SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
10391 SND_PCI_QUIRK(0x17aa, 0x5050, "Thinkpad T560p", ALC292_FIXUP_TPT460),
10392 SND_PCI_QUIRK(0x17aa, 0x5051, "Thinkpad L460", ALC292_FIXUP_TPT460),
10393 SND_PCI_QUIRK(0x17aa, 0x5053, "Thinkpad T460", ALC292_FIXUP_TPT460),
10394 SND_PCI_QUIRK(0x17aa, 0x505d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10395 SND_PCI_QUIRK(0x17aa, 0x505f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10396 SND_PCI_QUIRK(0x17aa, 0x5062, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10397 SND_PCI_QUIRK(0x17aa, 0x508b, "Thinkpad X12 Gen 1", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS),
10398 SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10399 SND_PCI_QUIRK(0x17aa, 0x511e, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10400 SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
10401 SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
10402 SND_PCI_QUIRK(0x17aa, 0x9e56, "Lenovo ZhaoYang CF4620Z", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
10403 SND_PCI_QUIRK(0x1849, 0x1233, "ASRock NUC Box 1100", ALC233_FIXUP_NO_AUDIO_JACK),
10404 SND_PCI_QUIRK(0x1849, 0xa233, "Positivo Master C6300", ALC269_FIXUP_HEADSET_MIC),
10405 SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
10406 SND_PCI_QUIRK(0x19e5, 0x320f, "Huawei WRT-WX9 ", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
10407 SND_PCI_QUIRK(0x19e5, 0x3212, "Huawei KLV-WX9 ", ALC256_FIXUP_ACER_HEADSET_MIC),
10408 SND_PCI_QUIRK(0x1b35, 0x1235, "CZC B20", ALC269_FIXUP_CZC_B20),
10409 SND_PCI_QUIRK(0x1b35, 0x1236, "CZC TMI", ALC269_FIXUP_CZC_TMI),
10410 SND_PCI_QUIRK(0x1b35, 0x1237, "CZC L101", ALC269_FIXUP_CZC_L101),
10411 SND_PCI_QUIRK(0x1b7d, 0xa831, "Ordissimo EVE2 ", ALC269VB_FIXUP_ORDISSIMO_EVE2), /* Also known as Malata PC-B1303 */
10412 SND_PCI_QUIRK(0x1c06, 0x2013, "Lemote A1802", ALC269_FIXUP_LEMOTE_A1802),
10413 SND_PCI_QUIRK(0x1c06, 0x2015, "Lemote A190X", ALC269_FIXUP_LEMOTE_A190X),
10414 SND_PCI_QUIRK(0x1c6c, 0x122a, "Positivo N14AP7", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10415 SND_PCI_QUIRK(0x1c6c, 0x1251, "Positivo N14KP6-TG", ALC288_FIXUP_DELL1_MIC_NO_PRESENCE),
10416 SND_PCI_QUIRK(0x1d05, 0x1132, "TongFang PHxTxX1", ALC256_FIXUP_SET_COEF_DEFAULTS),
10417 SND_PCI_QUIRK(0x1d05, 0x1096, "TongFang GMxMRxx", ALC269_FIXUP_NO_SHUTUP),
10418 SND_PCI_QUIRK(0x1d05, 0x1100, "TongFang GKxNRxx", ALC269_FIXUP_NO_SHUTUP),
10419 SND_PCI_QUIRK(0x1d05, 0x1111, "TongFang GMxZGxx", ALC269_FIXUP_NO_SHUTUP),
10420 SND_PCI_QUIRK(0x1d05, 0x1119, "TongFang GMxZGxx", ALC269_FIXUP_NO_SHUTUP),
10421 SND_PCI_QUIRK(0x1d05, 0x1129, "TongFang GMxZGxx", ALC269_FIXUP_NO_SHUTUP),
10422 SND_PCI_QUIRK(0x1d05, 0x1147, "TongFang GMxTGxx", ALC269_FIXUP_NO_SHUTUP),
10423 SND_PCI_QUIRK(0x1d05, 0x115c, "TongFang GMxTGxx", ALC269_FIXUP_NO_SHUTUP),
10424 SND_PCI_QUIRK(0x1d05, 0x121b, "TongFang GMxAGxx", ALC269_FIXUP_NO_SHUTUP),
10425 SND_PCI_QUIRK(0x1d05, 0x1387, "TongFang GMxIXxx", ALC2XX_FIXUP_HEADSET_MIC),
10426 SND_PCI_QUIRK(0x1d05, 0x1409, "TongFang GMxIXxx", ALC2XX_FIXUP_HEADSET_MIC),
10427 SND_PCI_QUIRK(0x1d17, 0x3288, "Haier Boyue G42", ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS),
10428 SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
10429 SND_PCI_QUIRK(0x1d72, 0x1701, "XiaomiNotebook Pro", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE),
10430 SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
10431 SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC),
10432 SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
10433 SND_PCI_QUIRK(0x1f66, 0x0105, "Ayaneo Portable Game Player", ALC287_FIXUP_CS35L41_I2C_2),
10434 SND_PCI_QUIRK(0x2782, 0x0214, "VAIO VJFE-CL", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
10435 SND_PCI_QUIRK(0x2782, 0x0228, "Infinix ZERO BOOK 13", ALC269VB_FIXUP_INFINIX_ZERO_BOOK_13),
10436 SND_PCI_QUIRK(0x2782, 0x0232, "CHUWI CoreBook XPro", ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO),
10437 SND_PCI_QUIRK(0x2782, 0x1701, "Infinix Y4 Max", ALC269VC_FIXUP_INFINIX_Y4_MAX),
10438 SND_PCI_QUIRK(0x2782, 0x1705, "MEDION E15433", ALC269VC_FIXUP_INFINIX_Y4_MAX),
10439 SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME),
10440 SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
10441 SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
10442 SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10),
10443 SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC295_FIXUP_CHROME_BOOK),
10444 SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
10445 SND_PCI_QUIRK(0xf111, 0x0006, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
10446 SND_PCI_QUIRK(0xf111, 0x0009, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
10447 SND_PCI_QUIRK(0xf111, 0x000c, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
10449 #if 0
10455 SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A",
10457 SND_PCI_QUIRK(0x1043, 0x1013, "ASUS N61Da", ALC269_FIXUP_AMIC),
10458 SND_PCI_QUIRK(0x1043, 0x1143, "ASUS B53f", ALC269_FIXUP_AMIC),
10459 SND_PCI_QUIRK(0x1043, 0x1133, "ASUS UJ20ft", ALC269_FIXUP_AMIC),
10460 SND_PCI_QUIRK(0x1043, 0x1183, "ASUS K72DR", ALC269_FIXUP_AMIC),
10461 SND_PCI_QUIRK(0x1043, 0x11b3, "ASUS K52DR", ALC269_FIXUP_AMIC),
10462 SND_PCI_QUIRK(0x1043, 0x11e3, "ASUS U33Jc", ALC269_FIXUP_AMIC),
10463 SND_PCI_QUIRK(0x1043, 0x1273, "ASUS UL80Jt", ALC269_FIXUP_AMIC),
10464 SND_PCI_QUIRK(0x1043, 0x1283, "ASUS U53Jc", ALC269_FIXUP_AMIC),
10465 SND_PCI_QUIRK(0x1043, 0x12b3, "ASUS N82JV", ALC269_FIXUP_AMIC),
10466 SND_PCI_QUIRK(0x1043, 0x12d3, "ASUS N61Jv", ALC269_FIXUP_AMIC),
10467 SND_PCI_QUIRK(0x1043, 0x13a3, "ASUS UL30Vt", ALC269_FIXUP_AMIC),
10468 SND_PCI_QUIRK(0x1043, 0x1373, "ASUS G73JX", ALC269_FIXUP_AMIC),
10469 SND_PCI_QUIRK(0x1043, 0x1383, "ASUS UJ30Jc", ALC269_FIXUP_AMIC),
10470 SND_PCI_QUIRK(0x1043, 0x13d3, "ASUS N61JA", ALC269_FIXUP_AMIC),
10471 SND_PCI_QUIRK(0x1043, 0x1413, "ASUS UL50", ALC269_FIXUP_AMIC),
10472 SND_PCI_QUIRK(0x1043, 0x1443, "ASUS UL30", ALC269_FIXUP_AMIC),
10473 SND_PCI_QUIRK(0x1043, 0x1453, "ASUS M60Jv", ALC269_FIXUP_AMIC),
10474 SND_PCI_QUIRK(0x1043, 0x1483, "ASUS UL80", ALC269_FIXUP_AMIC),
10475 SND_PCI_QUIRK(0x1043, 0x14f3, "ASUS F83Vf", ALC269_FIXUP_AMIC),
10476 SND_PCI_QUIRK(0x1043, 0x14e3, "ASUS UL20", ALC269_FIXUP_AMIC),
10477 SND_PCI_QUIRK(0x1043, 0x1513, "ASUS UX30", ALC269_FIXUP_AMIC),
10478 SND_PCI_QUIRK(0x1043, 0x1593, "ASUS N51Vn", ALC269_FIXUP_AMIC),
10479 SND_PCI_QUIRK(0x1043, 0x15a3, "ASUS N60Jv", ALC269_FIXUP_AMIC),
10480 SND_PCI_QUIRK(0x1043, 0x15b3, "ASUS N60Dp", ALC269_FIXUP_AMIC),
10481 SND_PCI_QUIRK(0x1043, 0x15c3, "ASUS N70De", ALC269_FIXUP_AMIC),
10482 SND_PCI_QUIRK(0x1043, 0x15e3, "ASUS F83T", ALC269_FIXUP_AMIC),
10483 SND_PCI_QUIRK(0x1043, 0x1643, "ASUS M60J", ALC269_FIXUP_AMIC),
10484 SND_PCI_QUIRK(0x1043, 0x1653, "ASUS U50", ALC269_FIXUP_AMIC),
10485 SND_PCI_QUIRK(0x1043, 0x1693, "ASUS F50N", ALC269_FIXUP_AMIC),
10486 SND_PCI_QUIRK(0x1043, 0x16a3, "ASUS F5Q", ALC269_FIXUP_AMIC),
10487 SND_PCI_QUIRK(0x1043, 0x1723, "ASUS P80", ALC269_FIXUP_AMIC),
10488 SND_PCI_QUIRK(0x1043, 0x1743, "ASUS U80", ALC269_FIXUP_AMIC),
10489 SND_PCI_QUIRK(0x1043, 0x1773, "ASUS U20A", ALC269_FIXUP_AMIC),
10490 SND_PCI_QUIRK(0x1043, 0x1883, "ASUS F81Se", ALC269_FIXUP_AMIC),
10491 SND_PCI_QUIRK(0x152d, 0x1778, "Quanta ON1", ALC269_FIXUP_DMIC),
10492 SND_PCI_QUIRK(0x17aa, 0x3be9, "Quanta Wistron", ALC269_FIXUP_AMIC),
10493 SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_AMIC),
10494 SND_PCI_QUIRK(0x17ff, 0x059a, "Quanta EL3", ALC269_FIXUP_DMIC),
10495 SND_PCI_QUIRK(0x17ff, 0x059b, "Quanta JR1", ALC269_FIXUP_DMIC),
10501 SND_PCI_QUIRK_VENDOR(0x1025, "Acer Aspire", ALC271_FIXUP_DMIC),
10502 SND_PCI_QUIRK_VENDOR(0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED),
10503 SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO),
10504 SND_PCI_QUIRK_VENDOR(0x17aa, "Thinkpad", ALC269_FIXUP_THINKPAD_ACPI),
10505 SND_PCI_QUIRK_VENDOR(0x19e5, "Huawei Matebook", ALC255_FIXUP_MIC_MUTE_LED),
10640 {0x21, 0x04211020}
10643 {0x12, 0x90a60140}, \
10644 {0x14, 0x90170110}, \
10645 {0x21, 0x02211020}
10648 {0x14, 0x90170110}
10651 {0x12, 0x99a30130}
10654 {0x14, 0x90170110}, \
10655 {0x15, 0x0221401f}
10658 {0x12, 0xb7a60130}, \
10659 {0x14, 0x90170110}, \
10660 {0x21, 0x04211020}
10663 {0x12, 0x90a60130}, \
10664 {0x21, 0x03211020}
10667 SND_HDA_PIN_QUIRK(0x10ec0221, 0x103c, "HP Workstation", ALC221_FIXUP_HP_HEADSET_MIC,
10668 {0x14, 0x01014020},
10669 {0x17, 0x90170110},
10670 {0x18, 0x02a11030},
10671 {0x19, 0x0181303F},
10672 {0x21, 0x0221102f}),
10673 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1025, "Acer", ALC255_FIXUP_ACER_MIC_NO_PRESENCE,
10674 {0x12, 0x90a601c0},
10675 {0x14, 0x90171120},
10676 {0x21, 0x02211030}),
10677 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1043, "ASUS", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE,
10678 {0x14, 0x90170110},
10679 {0x1b, 0x90a70130},
10680 {0x21, 0x03211020}),
10681 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1043, "ASUS", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE,
10682 {0x1a, 0x90a70130},
10683 {0x1b, 0x90170110},
10684 {0x21, 0x03211020}),
10685 SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
10687 {0x12, 0xb7a60130},
10688 {0x14, 0x901701a0}),
10689 SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
10691 {0x12, 0xb7a60130},
10692 {0x14, 0x901701b0}),
10693 SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
10695 {0x12, 0xb7a60150},
10696 {0x14, 0x901701a0}),
10697 SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
10699 {0x12, 0xb7a60150},
10700 {0x14, 0x901701b0}),
10701 SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
10703 {0x12, 0xb7a60130},
10704 {0x1b, 0x90170110}),
10705 SND_HDA_PIN_QUIRK(0x10ec0233, 0x8086, "Intel NUC Skull Canyon", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
10706 {0x1b, 0x01111010},
10707 {0x1e, 0x01451130},
10708 {0x21, 0x02211020}),
10709 SND_HDA_PIN_QUIRK(0x10ec0235, 0x17aa, "Lenovo", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY,
10710 {0x12, 0x90a60140},
10711 {0x14, 0x90170110},
10712 {0x19, 0x02a11030},
10713 {0x21, 0x02211020}),
10714 SND_HDA_PIN_QUIRK(0x10ec0235, 0x17aa, "Lenovo", ALC294_FIXUP_LENOVO_MIC_LOCATION,
10715 {0x14, 0x90170110},
10716 {0x19, 0x02a11030},
10717 {0x1a, 0x02a11040},
10718 {0x1b, 0x01014020},
10719 {0x21, 0x0221101f}),
10720 SND_HDA_PIN_QUIRK(0x10ec0235, 0x17aa, "Lenovo", ALC294_FIXUP_LENOVO_MIC_LOCATION,
10721 {0x14, 0x90170110},
10722 {0x19, 0x02a11030},
10723 {0x1a, 0x02a11040},
10724 {0x1b, 0x01011020},
10725 {0x21, 0x0221101f}),
10726 SND_HDA_PIN_QUIRK(0x10ec0235, 0x17aa, "Lenovo", ALC294_FIXUP_LENOVO_MIC_LOCATION,
10727 {0x14, 0x90170110},
10728 {0x19, 0x02a11020},
10729 {0x1a, 0x02a11030},
10730 {0x21, 0x0221101f}),
10731 SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC,
10732 {0x21, 0x02211010}),
10733 SND_HDA_PIN_QUIRK(0x10ec0236, 0x103c, "HP", ALC256_FIXUP_HP_HEADSET_MIC,
10734 {0x14, 0x90170110},
10735 {0x19, 0x02a11020},
10736 {0x21, 0x02211030}),
10737 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
10738 {0x14, 0x90170110},
10739 {0x21, 0x02211020}),
10740 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10741 {0x14, 0x90170130},
10742 {0x21, 0x02211040}),
10743 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10744 {0x12, 0x90a60140},
10745 {0x14, 0x90170110},
10746 {0x21, 0x02211020}),
10747 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10748 {0x12, 0x90a60160},
10749 {0x14, 0x90170120},
10750 {0x21, 0x02211030}),
10751 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10752 {0x14, 0x90170110},
10753 {0x1b, 0x02011020},
10754 {0x21, 0x0221101f}),
10755 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10756 {0x14, 0x90170110},
10757 {0x1b, 0x01011020},
10758 {0x21, 0x0221101f}),
10759 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10760 {0x14, 0x90170130},
10761 {0x1b, 0x01014020},
10762 {0x21, 0x0221103f}),
10763 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10764 {0x14, 0x90170130},
10765 {0x1b, 0x01011020},
10766 {0x21, 0x0221103f}),
10767 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10768 {0x14, 0x90170130},
10769 {0x1b, 0x02011020},
10770 {0x21, 0x0221103f}),
10771 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10772 {0x14, 0x90170150},
10773 {0x1b, 0x02011020},
10774 {0x21, 0x0221105f}),
10775 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10776 {0x14, 0x90170110},
10777 {0x1b, 0x01014020},
10778 {0x21, 0x0221101f}),
10779 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10780 {0x12, 0x90a60160},
10781 {0x14, 0x90170120},
10782 {0x17, 0x90170140},
10783 {0x21, 0x0321102f}),
10784 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10785 {0x12, 0x90a60160},
10786 {0x14, 0x90170130},
10787 {0x21, 0x02211040}),
10788 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10789 {0x12, 0x90a60160},
10790 {0x14, 0x90170140},
10791 {0x21, 0x02211050}),
10792 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10793 {0x12, 0x90a60170},
10794 {0x14, 0x90170120},
10795 {0x21, 0x02211030}),
10796 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10797 {0x12, 0x90a60170},
10798 {0x14, 0x90170130},
10799 {0x21, 0x02211040}),
10800 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10801 {0x12, 0x90a60170},
10802 {0x14, 0x90171130},
10803 {0x21, 0x02211040}),
10804 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10805 {0x12, 0x90a60170},
10806 {0x14, 0x90170140},
10807 {0x21, 0x02211050}),
10808 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell Inspiron 5548", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10809 {0x12, 0x90a60180},
10810 {0x14, 0x90170130},
10811 {0x21, 0x02211040}),
10812 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell Inspiron 5565", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10813 {0x12, 0x90a60180},
10814 {0x14, 0x90170120},
10815 {0x21, 0x02211030}),
10816 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
10817 {0x1b, 0x01011020},
10818 {0x21, 0x02211010}),
10819 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC256_FIXUP_ASUS_MIC,
10820 {0x14, 0x90170110},
10821 {0x1b, 0x90a70130},
10822 {0x21, 0x04211020}),
10823 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC256_FIXUP_ASUS_MIC,
10824 {0x14, 0x90170110},
10825 {0x1b, 0x90a70130},
10826 {0x21, 0x03211020}),
10827 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE,
10828 {0x12, 0x90a60130},
10829 {0x14, 0x90170110},
10830 {0x21, 0x03211020}),
10831 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE,
10832 {0x12, 0x90a60130},
10833 {0x14, 0x90170110},
10834 {0x21, 0x04211020}),
10835 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE,
10836 {0x1a, 0x90a70130},
10837 {0x1b, 0x90170110},
10838 {0x21, 0x03211020}),
10839 SND_HDA_PIN_QUIRK(0x10ec0256, 0x103c, "HP", ALC256_FIXUP_HP_HEADSET_MIC,
10840 {0x14, 0x90170110},
10841 {0x19, 0x02a11020},
10842 {0x21, 0x0221101f}),
10843 SND_HDA_PIN_QUIRK(0x10ec0274, 0x103c, "HP", ALC274_FIXUP_HP_HEADSET_MIC,
10844 {0x17, 0x90170110},
10845 {0x19, 0x03a11030},
10846 {0x21, 0x03211020}),
10847 SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4,
10848 {0x12, 0x90a60130},
10849 {0x14, 0x90170110},
10850 {0x15, 0x0421101f},
10851 {0x1a, 0x04a11020}),
10852 SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED,
10853 {0x12, 0x90a60140},
10854 {0x14, 0x90170110},
10855 {0x15, 0x0421101f},
10856 {0x18, 0x02811030},
10857 {0x1a, 0x04a1103f},
10858 {0x1b, 0x02011020}),
10859 SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP 15 Touchsmart", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10861 {0x12, 0x99a30130},
10862 {0x19, 0x03a11020},
10863 {0x21, 0x0321101f}),
10864 SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10866 {0x12, 0x99a30130},
10867 {0x19, 0x03a11020},
10868 {0x21, 0x03211040}),
10869 SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10871 {0x12, 0x99a30130},
10872 {0x19, 0x03a11030},
10873 {0x21, 0x03211020}),
10874 SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10876 {0x12, 0x99a30130},
10877 {0x19, 0x04a11020},
10878 {0x21, 0x0421101f}),
10879 SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED,
10881 {0x12, 0x90a60140},
10882 {0x19, 0x04a11030},
10883 {0x21, 0x04211020}),
10884 SND_HDA_PIN_QUIRK(0x10ec0282, 0x1025, "Acer", ALC282_FIXUP_ACER_DISABLE_LINEOUT,
10886 {0x12, 0x90a609c0},
10887 {0x18, 0x03a11830},
10888 {0x19, 0x04a19831},
10889 {0x1a, 0x0481303f},
10890 {0x1b, 0x04211020},
10891 {0x21, 0x0321101f}),
10892 SND_HDA_PIN_QUIRK(0x10ec0282, 0x1025, "Acer", ALC282_FIXUP_ACER_DISABLE_LINEOUT,
10894 {0x12, 0x90a60940},
10895 {0x18, 0x03a11830},
10896 {0x19, 0x04a19831},
10897 {0x1a, 0x0481303f},
10898 {0x1b, 0x04211020},
10899 {0x21, 0x0321101f}),
10900 SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
10902 {0x12, 0x90a60130},
10903 {0x21, 0x0321101f}),
10904 SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
10905 {0x12, 0x90a60160},
10906 {0x14, 0x90170120},
10907 {0x21, 0x02211030}),
10908 SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
10910 {0x12, 0x90a60130},
10911 {0x19, 0x03a11020},
10912 {0x21, 0x0321101f}),
10913 SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
10914 {0x12, 0x90a60130},
10915 {0x14, 0x90170110},
10916 {0x19, 0x04a11040},
10917 {0x21, 0x04211020}),
10918 SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
10919 {0x14, 0x90170110},
10920 {0x19, 0x04a11040},
10921 {0x1d, 0x40600001},
10922 {0x21, 0x04211020}),
10923 SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK,
10924 {0x14, 0x90170110},
10925 {0x19, 0x04a11040},
10926 {0x21, 0x04211020}),
10927 SND_HDA_PIN_QUIRK(0x10ec0287, 0x17aa, "Lenovo", ALC285_FIXUP_THINKPAD_HEADSET_JACK,
10928 {0x14, 0x90170110},
10929 {0x17, 0x90170111},
10930 {0x19, 0x03a11030},
10931 {0x21, 0x03211020}),
10932 SND_HDA_PIN_QUIRK(0x10ec0287, 0x17aa, "Lenovo", ALC287_FIXUP_THINKPAD_I2S_SPK,
10933 {0x17, 0x90170110},
10934 {0x19, 0x03a11030},
10935 {0x21, 0x03211020}),
10936 SND_HDA_PIN_QUIRK(0x10ec0287, 0x17aa, "Lenovo", ALC287_FIXUP_THINKPAD_I2S_SPK,
10937 {0x17, 0x90170110}, /* 0x231f with RTK I2S AMP */
10938 {0x19, 0x04a11040},
10939 {0x21, 0x04211020}),
10940 SND_HDA_PIN_QUIRK(0x10ec0286, 0x1025, "Acer", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE,
10941 {0x12, 0x90a60130},
10942 {0x17, 0x90170110},
10943 {0x21, 0x02211020}),
10944 SND_HDA_PIN_QUIRK(0x10ec0288, 0x1028, "Dell", ALC288_FIXUP_DELL1_MIC_NO_PRESENCE,
10945 {0x12, 0x90a60120},
10946 {0x14, 0x90170110},
10947 {0x21, 0x0321101f}),
10948 SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10950 {0x15, 0x04211040},
10951 {0x18, 0x90170112},
10952 {0x1a, 0x04a11020}),
10953 SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10955 {0x15, 0x04211040},
10956 {0x18, 0x90170110},
10957 {0x1a, 0x04a11020}),
10958 SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10960 {0x15, 0x0421101f},
10961 {0x1a, 0x04a11020}),
10962 SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10964 {0x15, 0x04211020},
10965 {0x1a, 0x04a11040}),
10966 SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10968 {0x14, 0x90170110},
10969 {0x15, 0x04211020},
10970 {0x1a, 0x04a11040}),
10971 SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10973 {0x14, 0x90170110},
10974 {0x15, 0x04211020},
10975 {0x1a, 0x04a11020}),
10976 SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
10978 {0x14, 0x90170110},
10979 {0x15, 0x0421101f},
10980 {0x1a, 0x04a11020}),
10981 SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE,
10983 {0x12, 0x90a60140},
10984 {0x16, 0x01014020},
10985 {0x19, 0x01a19030}),
10986 SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE,
10988 {0x12, 0x90a60140},
10989 {0x16, 0x01014020},
10990 {0x18, 0x02a19031},
10991 {0x19, 0x01a1903e}),
10992 SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
10994 {0x12, 0x90a60140}),
10995 SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
10997 {0x13, 0x90a60140},
10998 {0x16, 0x21014020},
10999 {0x19, 0x21a19030}),
11000 SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
11002 {0x13, 0x90a60140}),
11003 SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_HPE,
11004 {0x17, 0x90170110},
11005 {0x21, 0x04211020}),
11006 SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_MIC,
11007 {0x14, 0x90170110},
11008 {0x1b, 0x90a70130},
11009 {0x21, 0x04211020}),
11010 SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_SPK,
11011 {0x12, 0x90a60130},
11012 {0x17, 0x90170110},
11013 {0x21, 0x03211020}),
11014 SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_SPK,
11015 {0x12, 0x90a60130},
11016 {0x17, 0x90170110},
11017 {0x21, 0x04211020}),
11018 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1043, "ASUS", ALC294_FIXUP_ASUS_SPK,
11019 {0x12, 0x90a60130},
11020 {0x17, 0x90170110},
11021 {0x21, 0x03211020}),
11022 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1043, "ASUS", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE,
11023 {0x12, 0x90a60120},
11024 {0x17, 0x90170110},
11025 {0x21, 0x04211030}),
11026 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1043, "ASUS", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE,
11027 {0x12, 0x90a60130},
11028 {0x17, 0x90170110},
11029 {0x21, 0x03211020}),
11030 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1043, "ASUS", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE,
11031 {0x12, 0x90a60130},
11032 {0x17, 0x90170110},
11033 {0x21, 0x03211020}),
11034 SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
11036 {0x17, 0x90170110}),
11037 SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
11039 {0x17, 0x90170140}),
11040 SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
11042 {0x17, 0x90170150}),
11043 SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_SPK_VOLUME,
11044 {0x12, 0xb7a60140},
11045 {0x13, 0xb7a60150},
11046 {0x17, 0x90170110},
11047 {0x1a, 0x03011020},
11048 {0x21, 0x03211030}),
11049 SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_ALIENWARE_MIC_NO_PRESENCE,
11050 {0x12, 0xb7a60140},
11051 {0x17, 0x90170110},
11052 {0x1a, 0x03a11030},
11053 {0x21, 0x03211020}),
11054 SND_HDA_PIN_QUIRK(0x10ec0299, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
11056 {0x12, 0xb7a60130},
11057 {0x17, 0x90170110}),
11058 SND_HDA_PIN_QUIRK(0x10ec0623, 0x17aa, "Lenovo", ALC283_FIXUP_HEADSET_MIC,
11059 {0x14, 0x01014010},
11060 {0x17, 0x90170120},
11061 {0x18, 0x02a11030},
11062 {0x19, 0x02a1103f},
11063 {0x21, 0x0221101f}),
11074 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1025, "Acer", ALC2XX_FIXUP_HEADSET_MIC,
11075 {0x19, 0x40000000}),
11076 SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
11077 {0x19, 0x40000000},
11078 {0x1b, 0x40000000}),
11079 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE_QUIET,
11080 {0x19, 0x40000000},
11081 {0x1b, 0x40000000}),
11082 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
11083 {0x19, 0x40000000},
11084 {0x1a, 0x40000000}),
11085 SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_LIMIT_INT_MIC_BOOST,
11086 {0x19, 0x40000000},
11087 {0x1a, 0x40000000}),
11088 SND_HDA_PIN_QUIRK(0x10ec0274, 0x1028, "Dell", ALC269_FIXUP_DELL1_LIMIT_INT_MIC_BOOST,
11089 {0x19, 0x40000000},
11090 {0x1a, 0x40000000}),
11091 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC,
11092 {0x19, 0x40000000}),
11093 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1558, "Clevo", ALC2XX_FIXUP_HEADSET_MIC,
11094 {0x19, 0x40000000}),
11106 if ((alc_get_coef0(codec) & 0x00ff) < 0x015) {
11107 alc_write_coef_idx(codec, 0xf, 0x960b);
11108 alc_write_coef_idx(codec, 0xe, 0x8817);
11111 if ((alc_get_coef0(codec) & 0x00ff) == 0x016) {
11112 alc_write_coef_idx(codec, 0xf, 0x960b);
11113 alc_write_coef_idx(codec, 0xe, 0x8814);
11116 if ((alc_get_coef0(codec) & 0x00ff) == 0x017) {
11118 alc_update_coef_idx(codec, 0x04, 0, 1<<11);
11121 if ((alc_get_coef0(codec) & 0x00ff) == 0x018) {
11122 val = alc_read_coef_idx(codec, 0xd);
11123 if (val != -1 && (val & 0x0c00) >> 10 != 0x1) {
11125 alc_write_coef_idx(codec, 0xd, val | (1<<10));
11127 val = alc_read_coef_idx(codec, 0x17);
11128 if (val != -1 && (val & 0x01c0) >> 6 != 0x4) {
11130 alc_write_coef_idx(codec, 0x17, val | (1<<7));
11135 alc_update_coef_idx(codec, 0x4, 0, 1<<11);
11145 err = alc_alloc_spec(codec, 0x0b);
11146 if (err < 0)
11150 spec->gen.shared_mic_vref_pin = 0x18;
11151 codec->power_save_node = 0;
11162 case 0x10ec0269:
11164 switch (alc_get_coef0(codec) & 0x00f0) {
11165 case 0x0010:
11167 codec->bus->pci->subsystem_vendor == 0x1025 &&
11172 case 0x0020:
11174 codec->bus->pci->subsystem_vendor == 0x17aa &&
11175 codec->bus->pci->subsystem_device == 0x21f3)
11179 case 0x0030:
11183 alc_fix_pll_init(codec, 0x20, 0x04, 15);
11185 if (err < 0)
11192 case 0x10ec0280:
11193 case 0x10ec0290:
11196 case 0x10ec0282:
11201 case 0x10ec0233:
11202 case 0x10ec0283:
11207 case 0x10ec0284:
11208 case 0x10ec0292:
11211 case 0x10ec0293:
11214 case 0x10ec0286:
11215 case 0x10ec0288:
11218 case 0x10ec0298:
11221 case 0x10ec0235:
11222 case 0x10ec0255:
11227 case 0x10ec0230:
11228 case 0x10ec0236:
11229 case 0x10ec0256:
11230 case 0x19e58326:
11234 spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */
11235 if (codec->core.vendor_id == 0x10ec0236 &&
11239 case 0x10ec0257:
11243 spec->gen.mixer_nid = 0;
11246 case 0x10ec0215:
11247 case 0x10ec0245:
11248 case 0x10ec0285:
11249 case 0x10ec0289:
11250 if (alc_get_coef0(codec) & 0x0010)
11256 spec->gen.mixer_nid = 0;
11258 case 0x10ec0225:
11259 case 0x10ec0295:
11260 case 0x10ec0299:
11264 spec->gen.mixer_nid = 0; /* no loopback on ALC225, ALC295 and ALC299 */
11266 case 0x10ec0287:
11270 spec->gen.mixer_nid = 0; /* no loopback on ALC287 */
11272 case 0x10ec0234:
11273 case 0x10ec0274:
11274 case 0x10ec0294:
11276 spec->gen.mixer_nid = 0; /* ALC2x4 does not have any loopback mixer path */
11277 alc_update_coef_idx(codec, 0x6b, 0x0018, (1<<4) | (1<<3)); /* UAJ MIC Vref control by verb */
11280 case 0x10ec0300:
11282 spec->gen.mixer_nid = 0; /* no loopback on ALC300 */
11284 case 0x10ec0623:
11287 case 0x10ec0700:
11288 case 0x10ec0701:
11289 case 0x10ec0703:
11290 case 0x10ec0711:
11292 spec->gen.mixer_nid = 0; /* ALC700 does not have any loopback mixer path */
11293 alc_update_coef_idx(codec, 0x4a, 1 << 15, 0); /* Combo jack auto trigger control */
11299 if (snd_hda_codec_read(codec, 0x51, 0, AC_VERB_PARAMETERS, 0) == 0x10ec5505) {
11313 codec->core.vendor_id == 0x10ec0294) {
11327 spec->gen.beep_nid = 0x01;
11331 if (err < 0)
11335 err = set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT);
11336 if (err < 0)
11342 return 0;
11355 static const hda_nid_t alc861_ignore[] = { 0x1d, 0 };
11356 static const hda_nid_t alc861_ssids[] = { 0x0e, 0x0f, 0x0b, 0 };
11369 /* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */
11378 val = snd_hda_codec_get_pin_target(codec, 0x0f);
11382 snd_hda_set_pin_ctl(codec, 0x0f, val);
11398 { 0x0b, 0x0221101f }, /* HP */
11399 { 0x0f, 0x90170310 }, /* speaker */
11420 /* ASUS W7J needs a magic pin setup on unused NID 0x10
11423 {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24},
11430 SND_PCI_QUIRK(0x1043, 0x1253, "ASUS W7J", ALC660_FIXUP_ASUS_W7J),
11431 SND_PCI_QUIRK(0x1043, 0x1263, "ASUS Z35HL", ALC660_FIXUP_ASUS_W7J),
11432 SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP),
11433 SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F),
11434 SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT),
11435 SND_PCI_QUIRK_VENDOR(0x1584, "Haier/Uniwill", ALC861_FIXUP_AMP_VREF_0F),
11436 SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", ALC861_FIXUP_FSC_AMILO_PI1505),
11447 err = alc_alloc_spec(codec, 0x15);
11448 if (err < 0)
11453 spec->gen.beep_nid = 0x23;
11466 if (err < 0)
11470 err = set_beep_amp(spec, 0x23, 0, HDA_OUTPUT);
11471 if (err < 0)
11477 return 0;
11493 static const hda_nid_t alc861vd_ignore[] = { 0x1d, 0 };
11494 static const hda_nid_t alc861vd_ssids[] = { 0x15, 0x1b, 0x14, 0 };
11508 snd_hda_override_pin_caps(codec, 0x18, 0x00000734);
11509 snd_hda_override_pin_caps(codec, 0x19, 0x0000073c);
11520 spec->gpio_mask |= 0x02;
11521 alc_fixup_gpio(codec, action, 0x01);
11536 SND_PCI_QUIRK(0x103c, 0x30bf, "HP TX1000", ALC861VD_FIX_DALLAS),
11537 SND_PCI_QUIRK(0x1043, 0x1339, "ASUS A7-K", ALC660VD_FIX_ASUS_GPIO1),
11538 SND_PCI_QUIRK(0x1179, 0xff31, "Toshiba L30-149", ALC861VD_FIX_DALLAS),
11549 err = alc_alloc_spec(codec, 0x0b);
11550 if (err < 0)
11555 spec->gen.beep_nid = 0x23;
11566 if (err < 0)
11570 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
11571 if (err < 0)
11577 return 0;
11602 static const hda_nid_t alc662_ignore[] = { 0x1d, 0 };
11603 static const hda_nid_t alc663_ssids[] = { 0x15, 0x1b, 0x14, 0x21 };
11604 static const hda_nid_t alc662_ssids[] = { 0x15, 0x1b, 0x14, 0 };
11607 if (codec->core.vendor_id == 0x10ec0272 || codec->core.vendor_id == 0x10ec0663 ||
11608 codec->core.vendor_id == 0x10ec0665 || codec->core.vendor_id == 0x10ec0670 ||
11609 codec->core.vendor_id == 0x10ec0671)
11621 if (snd_hda_override_amp_caps(codec, 0x2, HDA_OUTPUT,
11622 (0x3b << AC_AMPCAP_OFFSET_SHIFT) |
11623 (0x3b << AC_AMPCAP_NUM_STEPS_SHIFT) |
11624 (0x03 << AC_AMPCAP_STEP_SIZE_SHIFT) |
11625 (0 << AC_AMPCAP_MUTE_SHIFT)))
11626 codec_warn(codec, "failed to override amp caps for NID 0x2\n");
11644 spec->gen.pcm_rec[0]->stream[0].chmap = asus_pcm_2_1_chmaps;
11664 alc_fixup_hp_gpio_led(codec, action, 0x01, 0);
11679 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0;
11681 snd_hda_codec_write(codec, 0x19, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
11698 /* surround speakers at 0x1b already get muted automatically when
11701 * 0x15 - front left/front right
11702 * 0x18 - front center/ LFE
11704 if (snd_hda_jack_detect_state(codec, 0x1b) == HDA_JACK_PRESENT) {
11705 snd_hda_set_pin_ctl_cache(codec, 0x15, 0);
11706 snd_hda_set_pin_ctl_cache(codec, 0x18, 0);
11708 snd_hda_set_pin_ctl_cache(codec, 0x15, PIN_OUT);
11709 snd_hda_set_pin_ctl_cache(codec, 0x18, PIN_OUT);
11716 /* Pin 0x1b: shared headphones jack and surround speakers */
11717 if (!is_jack_detectable(codec, 0x1b))
11722 snd_hda_jack_detect_enable_callback(codec, 0x1b,
11725 alc_setup_gpio(codec, 0x02);
11742 { 0x19, 0x02a11040 }, /* use as headset mic, with its own jack detect */
11743 { 0x1b, 0x0181304f },
11749 spec->gen.mixer_nid = 0;
11754 alc_write_coef_idx(codec, 0x19, 0xa054);
11767 snd_hda_set_pin_ctl(codec, 0x1b, vref);
11779 snd_hda_set_pin_ctl_cache(codec, 0x1a, PIN_IN | AC_PINCTL_VREF_100);
11795 WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
11796 WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
11797 WRITE_COEF(0x08, 0x0031), WRITE_COEF(0x0a, 0x0060), WRITE_COEF(0x0b, 0x0),
11798 WRITE_COEF(0x0c, 0x7cf7), WRITE_COEF(0x0d, 0x1080), WRITE_COEF(0x0e, 0x7f7f),
11799 WRITE_COEF(0x0f, 0xcccc), WRITE_COEF(0x10, 0xddcc), WRITE_COEF(0x11, 0x0001),
11800 WRITE_COEF(0x13, 0x0), WRITE_COEF(0x14, 0x2aa0), WRITE_COEF(0x17, 0xa940),
11801 WRITE_COEF(0x19, 0x0), WRITE_COEF(0x1a, 0x0), WRITE_COEF(0x1b, 0x0),
11802 WRITE_COEF(0x1c, 0x0), WRITE_COEF(0x1d, 0x0), WRITE_COEF(0x1e, 0x7418),
11803 WRITE_COEF(0x1f, 0x0804), WRITE_COEF(0x20, 0x4200), WRITE_COEF(0x21, 0x0468),
11804 WRITE_COEF(0x22, 0x8ccc), WRITE_COEF(0x23, 0x0250), WRITE_COEF(0x24, 0x7418),
11805 WRITE_COEF(0x27, 0x0), WRITE_COEF(0x28, 0x8ccc), WRITE_COEF(0x2a, 0xff00),
11806 WRITE_COEF(0x2b, 0x8000), WRITE_COEF(0xa7, 0xff00), WRITE_COEF(0xa8, 0x8000),
11807 WRITE_COEF(0xaa, 0x2e17), WRITE_COEF(0xab, 0xa0c0), WRITE_COEF(0xac, 0x0),
11808 WRITE_COEF(0xad, 0x0), WRITE_COEF(0xae, 0x2ac6), WRITE_COEF(0xaf, 0xa480),
11809 WRITE_COEF(0xb0, 0x0), WRITE_COEF(0xb1, 0x0), WRITE_COEF(0xb2, 0x0),
11810 WRITE_COEF(0xb3, 0x0), WRITE_COEF(0xb4, 0x0), WRITE_COEF(0xb5, 0x1040),
11811 WRITE_COEF(0xb6, 0xd697), WRITE_COEF(0xb7, 0x902b), WRITE_COEF(0xb8, 0xd697),
11812 WRITE_COEF(0xb9, 0x902b), WRITE_COEF(0xba, 0xb8ba), WRITE_COEF(0xbb, 0xaaab),
11813 WRITE_COEF(0xbc, 0xaaaf), WRITE_COEF(0xbd, 0x6aaa), WRITE_COEF(0xbe, 0x1c02),
11814 WRITE_COEF(0xc0, 0x00ff), WRITE_COEF(0xc1, 0x0fa6),
11887 { 0x15, 0x99130112 }, /* subwoofer */
11898 { 0x17, 0x99130112 }, /* subwoofer */
11911 {0x12, 0x403cc000},
11912 {0x14, 0x90170110}, /* speaker */
11913 {0x15, 0x411111f0},
11914 {0x16, 0x411111f0},
11915 {0x18, 0x01a19030}, /* mic */
11916 {0x19, 0x90a7013f}, /* int-mic */
11917 {0x1a, 0x01014020},
11918 {0x1b, 0x0121401f},
11919 {0x1c, 0x411111f0},
11920 {0x1d, 0x411111f0},
11921 {0x1e, 0x40478e35},
11930 {0x14, AC_VERB_SET_EAPD_BTLENABLE, 0},
11941 { 0x14, 0x0221201f }, /* HP out */
11950 { 0x14, 0x99130110 }, /* speaker */
11951 { 0x18, 0x01a19c20 }, /* mic */
11952 { 0x19, 0x99a3092f }, /* int-mic */
11953 { 0x21, 0x0121401f }, /* HP out */
11962 { 0x14, 0x99130110 }, /* speaker */
11963 { 0x18, 0x01a19820 }, /* mic */
11964 { 0x19, 0x99a3092f }, /* int-mic */
11965 { 0x1b, 0x0121401f }, /* HP out */
11974 { 0x14, 0x99130110 }, /* speaker */
11975 { 0x15, 0x0121441f }, /* HP */
11976 { 0x18, 0x01a19840 }, /* mic */
11977 { 0x19, 0x99a3094f }, /* int-mic */
11978 { 0x21, 0x01211420 }, /* HP2 */
11987 { 0x14, 0x99130110 }, /* speaker */
11988 { 0x16, 0x99130111 }, /* speaker */
11989 { 0x18, 0x01a19840 }, /* mic */
11990 { 0x19, 0x99a3094f }, /* int-mic */
11991 { 0x21, 0x0121441f }, /* HP */
12000 { 0x14, 0x99130110 }, /* speaker */
12001 { 0x15, 0x0121441f }, /* HP */
12002 { 0x16, 0x99130111 }, /* speaker */
12003 { 0x18, 0x01a19840 }, /* mic */
12004 { 0x19, 0x99a3094f }, /* int-mic */
12013 { 0x14, 0x99130110 }, /* speaker */
12014 { 0x15, 0x01211420 }, /* HP2 */
12015 { 0x18, 0x01a19840 }, /* mic */
12016 { 0x19, 0x99a3094f }, /* int-mic */
12017 { 0x1b, 0x0121441f }, /* HP */
12026 { 0x14, 0x99130110 }, /* speaker */
12027 { 0x17, 0x99130111 }, /* speaker */
12028 { 0x18, 0x01a19840 }, /* mic */
12029 { 0x19, 0x99a3094f }, /* int-mic */
12030 { 0x1b, 0x01214020 }, /* HP */
12031 { 0x21, 0x0121401f }, /* HP */
12040 { 0x14, 0x99130110 }, /* speaker */
12041 { 0x12, 0x99a30970 }, /* int-mic */
12042 { 0x15, 0x01214020 }, /* HP */
12043 { 0x17, 0x99130111 }, /* speaker */
12044 { 0x18, 0x01a19840 }, /* mic */
12045 { 0x21, 0x0121401f }, /* HP */
12058 { 0x1b, 0x02214020 }, /* Front HP */
12087 { 0x19, 0x03a1113c }, /* use as headset mic, without its own jack detect */
12088 /* headphone mic by setting pin control of 0x1b (headphone out) to in + vref_50 */
12101 { 0x19, 0x03a1913d }, /* use as headphone mic, without its own jack detect */
12102 { 0x1b, 0x03a1113c }, /* use as headset mic, without its own jack detect */
12121 {0x16, 0x80106111}, /* bass speaker */
12130 {0x1a, 0x80106111}, /* bass speaker */
12154 { 0x19, 0x03a1913d }, /* use as headphone mic, without its own jack detect */
12155 { 0x1a, 0x90170151 }, /* bass speaker */
12156 { 0x1b, 0x03a1113c }, /* use as headset mic, without its own jack detect */
12165 { 0x20, AC_VERB_SET_COEF_INDEX, 0xc3 },
12166 { 0x20, AC_VERB_SET_PROC_COEF, 0x4000 },
12173 { 0x16, 0x0421101f }, /* HP */
12186 { 0x19, 0x03a1913d }, /* use as headphone mic, without its own jack detect */
12187 { 0x1b, 0x03a1113c }, /* use as headset mic, without its own jack detect */
12196 { 0x15, 0x50170120 }, /* no internal speaker */
12203 { 0x15, 0x40f000f0 }, /* disabled */
12204 { 0x16, 0x40f000f0 }, /* disabled */
12215 { 0x19, 0x02a1913c }, /* use as headset mic, without its own jack detect */
12216 { 0x18, 0x01a1903d },
12233 { 0x15, 0x92130110 }, /* front speakers */
12234 { 0x18, 0x99130111 }, /* center/subwoofer */
12235 { 0x1b, 0x11130012 }, /* surround plus jack for HP */
12248 { 0x1a, 0x02a1113c }, /* use as headset mic, without its own jack detect */
12257 { 0x1a, 0x01a11140 }, /* use as headset mic, without its own jack detect */
12258 { 0x1b, 0x0221144f },
12267 { 0x1b, 0x04a1112c },
12282 { 0x20, AC_VERB_SET_COEF_INDEX, 0x15 },
12283 { 0x20, AC_VERB_SET_PROC_COEF, 0x0d60 },
12294 { 0x1a, 0x03a11050 },
12303 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
12314 { 0x1a, 0x01a11140 }, /* use as headset mic, without its own jack detect */
12323 { 0x14, AC_VERB_SET_EAPD_BTLENABLE, 0 },
12330 { 0x19, 0x03a11050 }, /* use as headset mic */
12337 SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_FIXUP_ASUS_MODE2),
12338 SND_PCI_QUIRK(0x1019, 0x9859, "JP-IK LEAP W502", ALC897_FIXUP_HEADSET_MIC_PIN3),
12339 SND_PCI_QUIRK(0x1025, 0x022f, "Acer Aspire One", ALC662_FIXUP_INV_DMIC),
12340 SND_PCI_QUIRK(0x1025, 0x0241, "Packard Bell DOTS", ALC662_FIXUP_INV_DMIC),
12341 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE),
12342 SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE),
12343 SND_PCI_QUIRK(0x1025, 0x0349, "eMachines eM250", ALC662_FIXUP_INV_DMIC),
12344 SND_PCI_QUIRK(0x1025, 0x034a, "Gateway LT27", ALC662_FIXUP_INV_DMIC),
12345 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
12346 SND_PCI_QUIRK(0x1025, 0x0566, "Acer Aspire Ethos 8951G", ALC669_FIXUP_ACER_ASPIRE_ETHOS),
12347 SND_PCI_QUIRK(0x1025, 0x123c, "Acer Nitro N50-600", ALC662_FIXUP_ACER_NITRO_HEADSET_MODE),
12348 SND_PCI_QUIRK(0x1025, 0x124e, "Acer 2660G", ALC662_FIXUP_ACER_X2660G_HEADSET_MODE),
12349 SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
12350 SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
12351 SND_PCI_QUIRK(0x1028, 0x05fe, "Dell XPS 15", ALC668_FIXUP_DELL_XPS13),
12352 SND_PCI_QUIRK(0x1028, 0x060a, "Dell XPS 13", ALC668_FIXUP_DELL_XPS13),
12353 SND_PCI_QUIRK(0x1028, 0x060d, "Dell M3800", ALC668_FIXUP_DELL_XPS13),
12354 SND_PCI_QUIRK(0x1028, 0x0625, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
12355 SND_PCI_QUIRK(0x1028, 0x0626, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
12356 SND_PCI_QUIRK(0x1028, 0x0696, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
12357 SND_PCI_QUIRK(0x1028, 0x0698, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
12358 SND_PCI_QUIRK(0x1028, 0x069f, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
12359 SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
12360 SND_PCI_QUIRK(0x103c, 0x870c, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
12361 SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
12362 SND_PCI_QUIRK(0x103c, 0x872b, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
12363 SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2),
12364 SND_PCI_QUIRK(0x103c, 0x8768, "HP Slim Desktop S01", ALC671_FIXUP_HP_HEADSET_MIC2),
12365 SND_PCI_QUIRK(0x103c, 0x877e, "HP 288 Pro G6", ALC671_FIXUP_HP_HEADSET_MIC2),
12366 SND_PCI_QUIRK(0x103c, 0x885f, "HP 288 Pro G8", ALC671_FIXUP_HP_HEADSET_MIC2),
12367 SND_PCI_QUIRK(0x1043, 0x1080, "Asus UX501VW", ALC668_FIXUP_HEADSET_MODE),
12368 SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_ASUS_Nx50),
12369 SND_PCI_QUIRK(0x1043, 0x129d, "Asus N750", ALC662_FIXUP_ASUS_Nx50),
12370 SND_PCI_QUIRK(0x1043, 0x12ff, "ASUS G751", ALC668_FIXUP_ASUS_G751),
12371 SND_PCI_QUIRK(0x1043, 0x13df, "Asus N550JX", ALC662_FIXUP_BASS_1A),
12372 SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),
12373 SND_PCI_QUIRK(0x1043, 0x15a7, "ASUS UX51VZH", ALC662_FIXUP_BASS_16),
12374 SND_PCI_QUIRK(0x1043, 0x177d, "ASUS N551", ALC668_FIXUP_ASUS_Nx51),
12375 SND_PCI_QUIRK(0x1043, 0x17bd, "ASUS N751", ALC668_FIXUP_ASUS_Nx51),
12376 SND_PCI_QUIRK(0x1043, 0x185d, "ASUS G551JW", ALC668_FIXUP_ASUS_NO_HEADSET_MIC),
12377 SND_PCI_QUIRK(0x1043, 0x1963, "ASUS X71SL", ALC662_FIXUP_ASUS_MODE8),
12378 SND_PCI_QUIRK(0x1043, 0x1b73, "ASUS N55SF", ALC662_FIXUP_BASS_16),
12379 SND_PCI_QUIRK(0x1043, 0x1bf3, "ASUS N76VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),
12380 SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT),
12381 SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2),
12382 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
12383 SND_PCI_QUIRK(0x14cd, 0x5003, "USI", ALC662_FIXUP_USI_HEADSET_MODE),
12384 SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC662_FIXUP_LENOVO_MULTI_CODECS),
12385 SND_PCI_QUIRK(0x17aa, 0x1057, "Lenovo P360", ALC897_FIXUP_HEADSET_MIC_PIN),
12386 SND_PCI_QUIRK(0x17aa, 0x1064, "Lenovo P3 Tower", ALC897_FIXUP_HEADSET_MIC_PIN),
12387 SND_PCI_QUIRK(0x17aa, 0x32ca, "Lenovo ThinkCentre M80", ALC897_FIXUP_HEADSET_MIC_PIN),
12388 SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN),
12389 SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN),
12390 SND_PCI_QUIRK(0x17aa, 0x32f7, "Lenovo ThinkCentre M90", ALC897_FIXUP_HEADSET_MIC_PIN),
12391 SND_PCI_QUIRK(0x17aa, 0x3321, "Lenovo ThinkCentre M70 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN),
12392 SND_PCI_QUIRK(0x17aa, 0x331b, "Lenovo ThinkCentre M90 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN),
12393 SND_PCI_QUIRK(0x17aa, 0x3364, "Lenovo ThinkCentre M90 Gen5", ALC897_FIXUP_HEADSET_MIC_PIN),
12394 SND_PCI_QUIRK(0x17aa, 0x3742, "Lenovo TianYi510Pro-14IOB", ALC897_FIXUP_HEADSET_MIC_PIN2),
12395 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
12396 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
12397 SND_PCI_QUIRK(0x1849, 0x5892, "ASRock B150M", ALC892_FIXUP_ASROCK_MOBO),
12398 SND_PCI_QUIRK(0x19da, 0xa130, "Zotac Z68", ALC662_FIXUP_ZOTAC_Z68),
12399 SND_PCI_QUIRK(0x1b0a, 0x01b8, "ACER Veriton", ALC662_FIXUP_ACER_VERITON),
12400 SND_PCI_QUIRK(0x1b35, 0x1234, "CZC ET26", ALC662_FIXUP_CZC_ET26),
12401 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
12402 SND_PCI_QUIRK(0x1c6c, 0x1239, "Compaq N14JP6-V2", ALC897_FIXUP_HP_HSMIC_VERB),
12404 #if 0
12410 SND_PCI_QUIRK(0x1043, 0x1000, "ASUS N50Vm", ALC662_FIXUP_ASUS_MODE1),
12411 SND_PCI_QUIRK(0x1043, 0x1092, "ASUS NB", ALC662_FIXUP_ASUS_MODE3),
12412 SND_PCI_QUIRK(0x1043, 0x1173, "ASUS K73Jn", ALC662_FIXUP_ASUS_MODE1),
12413 SND_PCI_QUIRK(0x1043, 0x11c3, "ASUS M70V", ALC662_FIXUP_ASUS_MODE3),
12414 SND_PCI_QUIRK(0x1043, 0x11d3, "ASUS NB", ALC662_FIXUP_ASUS_MODE1),
12415 SND_PCI_QUIRK(0x1043, 0x11f3, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12416 SND_PCI_QUIRK(0x1043, 0x1203, "ASUS NB", ALC662_FIXUP_ASUS_MODE1),
12417 SND_PCI_QUIRK(0x1043, 0x1303, "ASUS G60J", ALC662_FIXUP_ASUS_MODE1),
12418 SND_PCI_QUIRK(0x1043, 0x1333, "ASUS G60Jx", ALC662_FIXUP_ASUS_MODE1),
12419 SND_PCI_QUIRK(0x1043, 0x1339, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12420 SND_PCI_QUIRK(0x1043, 0x13e3, "ASUS N71JA", ALC662_FIXUP_ASUS_MODE7),
12421 SND_PCI_QUIRK(0x1043, 0x1463, "ASUS N71", ALC662_FIXUP_ASUS_MODE7),
12422 SND_PCI_QUIRK(0x1043, 0x14d3, "ASUS G72", ALC662_FIXUP_ASUS_MODE8),
12423 SND_PCI_QUIRK(0x1043, 0x1563, "ASUS N90", ALC662_FIXUP_ASUS_MODE3),
12424 SND_PCI_QUIRK(0x1043, 0x15d3, "ASUS N50SF F50SF", ALC662_FIXUP_ASUS_MODE1),
12425 SND_PCI_QUIRK(0x1043, 0x16c3, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12426 SND_PCI_QUIRK(0x1043, 0x16f3, "ASUS K40C K50C", ALC662_FIXUP_ASUS_MODE2),
12427 SND_PCI_QUIRK(0x1043, 0x1733, "ASUS N81De", ALC662_FIXUP_ASUS_MODE1),
12428 SND_PCI_QUIRK(0x1043, 0x1753, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12429 SND_PCI_QUIRK(0x1043, 0x1763, "ASUS NB", ALC662_FIXUP_ASUS_MODE6),
12430 SND_PCI_QUIRK(0x1043, 0x1765, "ASUS NB", ALC662_FIXUP_ASUS_MODE6),
12431 SND_PCI_QUIRK(0x1043, 0x1783, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12432 SND_PCI_QUIRK(0x1043, 0x1793, "ASUS F50GX", ALC662_FIXUP_ASUS_MODE1),
12433 SND_PCI_QUIRK(0x1043, 0x17b3, "ASUS F70SL", ALC662_FIXUP_ASUS_MODE3),
12434 SND_PCI_QUIRK(0x1043, 0x17f3, "ASUS X58LE", ALC662_FIXUP_ASUS_MODE2),
12435 SND_PCI_QUIRK(0x1043, 0x1813, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12436 SND_PCI_QUIRK(0x1043, 0x1823, "ASUS NB", ALC662_FIXUP_ASUS_MODE5),
12437 SND_PCI_QUIRK(0x1043, 0x1833, "ASUS NB", ALC662_FIXUP_ASUS_MODE6),
12438 SND_PCI_QUIRK(0x1043, 0x1843, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12439 SND_PCI_QUIRK(0x1043, 0x1853, "ASUS F50Z", ALC662_FIXUP_ASUS_MODE1),
12440 SND_PCI_QUIRK(0x1043, 0x1864, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12441 SND_PCI_QUIRK(0x1043, 0x1876, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12442 SND_PCI_QUIRK(0x1043, 0x1893, "ASUS M50Vm", ALC662_FIXUP_ASUS_MODE3),
12443 SND_PCI_QUIRK(0x1043, 0x1894, "ASUS X55", ALC662_FIXUP_ASUS_MODE3),
12444 SND_PCI_QUIRK(0x1043, 0x18b3, "ASUS N80Vc", ALC662_FIXUP_ASUS_MODE1),
12445 SND_PCI_QUIRK(0x1043, 0x18c3, "ASUS VX5", ALC662_FIXUP_ASUS_MODE1),
12446 SND_PCI_QUIRK(0x1043, 0x18d3, "ASUS N81Te", ALC662_FIXUP_ASUS_MODE1),
12447 SND_PCI_QUIRK(0x1043, 0x18f3, "ASUS N505Tp", ALC662_FIXUP_ASUS_MODE1),
12448 SND_PCI_QUIRK(0x1043, 0x1903, "ASUS F5GL", ALC662_FIXUP_ASUS_MODE1),
12449 SND_PCI_QUIRK(0x1043, 0x1913, "ASUS NB", ALC662_FIXUP_ASUS_MODE2),
12450 SND_PCI_QUIRK(0x1043, 0x1933, "ASUS F80Q", ALC662_FIXUP_ASUS_MODE2),
12451 SND_PCI_QUIRK(0x1043, 0x1943, "ASUS Vx3V", ALC662_FIXUP_ASUS_MODE1),
12452 SND_PCI_QUIRK(0x1043, 0x1953, "ASUS NB", ALC662_FIXUP_ASUS_MODE1),
12453 SND_PCI_QUIRK(0x1043, 0x1963, "ASUS X71C", ALC662_FIXUP_ASUS_MODE3),
12454 SND_PCI_QUIRK(0x1043, 0x1983, "ASUS N5051A", ALC662_FIXUP_ASUS_MODE1),
12455 SND_PCI_QUIRK(0x1043, 0x1993, "ASUS N20", ALC662_FIXUP_ASUS_MODE1),
12456 SND_PCI_QUIRK(0x1043, 0x19b3, "ASUS F7Z", ALC662_FIXUP_ASUS_MODE1),
12457 SND_PCI_QUIRK(0x1043, 0x19c3, "ASUS F5Z/F6x", ALC662_FIXUP_ASUS_MODE2),
12458 SND_PCI_QUIRK(0x1043, 0x19e3, "ASUS NB", ALC662_FIXUP_ASUS_MODE1),
12459 SND_PCI_QUIRK(0x1043, 0x19f3, "ASUS NB", ALC662_FIXUP_ASUS_MODE4),
12502 SND_HDA_PIN_QUIRK(0x10ec0867, 0x1028, "Dell", ALC891_FIXUP_DELL_MIC_NO_PRESENCE,
12503 {0x17, 0x02211010},
12504 {0x18, 0x01a19030},
12505 {0x1a, 0x01813040},
12506 {0x21, 0x01014020}),
12507 SND_HDA_PIN_QUIRK(0x10ec0867, 0x1028, "Dell", ALC891_FIXUP_DELL_MIC_NO_PRESENCE,
12508 {0x16, 0x01813030},
12509 {0x17, 0x02211010},
12510 {0x18, 0x01a19040},
12511 {0x21, 0x01014020}),
12512 SND_HDA_PIN_QUIRK(0x10ec0662, 0x1028, "Dell", ALC662_FIXUP_DELL_MIC_NO_PRESENCE,
12513 {0x14, 0x01014010},
12514 {0x18, 0x01a19020},
12515 {0x1a, 0x0181302f},
12516 {0x1b, 0x0221401f}),
12517 SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
12518 {0x12, 0x99a30130},
12519 {0x14, 0x90170110},
12520 {0x15, 0x0321101f},
12521 {0x16, 0x03011020}),
12522 SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
12523 {0x12, 0x99a30140},
12524 {0x14, 0x90170110},
12525 {0x15, 0x0321101f},
12526 {0x16, 0x03011020}),
12527 SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
12528 {0x12, 0x99a30150},
12529 {0x14, 0x90170110},
12530 {0x15, 0x0321101f},
12531 {0x16, 0x03011020}),
12532 SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
12533 {0x14, 0x90170110},
12534 {0x15, 0x0321101f},
12535 {0x16, 0x03011020}),
12536 SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell XPS 15", ALC668_FIXUP_AUTO_MUTE,
12537 {0x12, 0x90a60130},
12538 {0x14, 0x90170110},
12539 {0x15, 0x0321101f}),
12540 SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
12541 {0x14, 0x01014010},
12542 {0x17, 0x90170150},
12543 {0x19, 0x02a11060},
12544 {0x1b, 0x01813030},
12545 {0x21, 0x02211020}),
12546 SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
12547 {0x14, 0x01014010},
12548 {0x18, 0x01a19040},
12549 {0x1b, 0x01813030},
12550 {0x21, 0x02211020}),
12551 SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
12552 {0x14, 0x01014020},
12553 {0x17, 0x90170110},
12554 {0x18, 0x01a19050},
12555 {0x1b, 0x01813040},
12556 {0x21, 0x02211030}),
12567 err = alc_alloc_spec(codec, 0x0b);
12568 if (err < 0)
12578 alc_fix_pll_init(codec, 0x20, 0x04, 15);
12581 case 0x10ec0668:
12596 spec->gen.beep_nid = 0x01;
12599 codec->bus->pci && codec->bus->pci->subsystem_vendor == 0x1025 &&
12602 if (err < 0)
12608 if (err < 0)
12613 case 0x10ec0662:
12614 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
12616 case 0x10ec0272:
12617 case 0x10ec0663:
12618 case 0x10ec0665:
12619 case 0x10ec0668:
12620 err = set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT);
12622 case 0x10ec0273:
12623 err = set_beep_amp(spec, 0x0b, 0x03, HDA_INPUT);
12626 if (err < 0)
12632 return 0;
12655 err = alc_alloc_spec(codec, 0);
12656 if (err < 0)
12661 if (err < 0) {
12666 return 0;
12673 HDA_CODEC_ENTRY(0x10ec0215, "ALC215", patch_alc269),
12674 HDA_CODEC_ENTRY(0x10ec0221, "ALC221", patch_alc269),
12675 HDA_CODEC_ENTRY(0x10ec0222, "ALC222", patch_alc269),
12676 HDA_CODEC_ENTRY(0x10ec0225, "ALC225", patch_alc269),
12677 HDA_CODEC_ENTRY(0x10ec0230, "ALC236", patch_alc269),
12678 HDA_CODEC_ENTRY(0x10ec0231, "ALC231", patch_alc269),
12679 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269),
12680 HDA_CODEC_ENTRY(0x10ec0234, "ALC234", patch_alc269),
12681 HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269),
12682 HDA_CODEC_ENTRY(0x10ec0236, "ALC236", patch_alc269),
12683 HDA_CODEC_ENTRY(0x10ec0245, "ALC245", patch_alc269),
12684 HDA_CODEC_ENTRY(0x10ec0255, "ALC255", patch_alc269),
12685 HDA_CODEC_ENTRY(0x10ec0256, "ALC256", patch_alc269),
12686 HDA_CODEC_ENTRY(0x10ec0257, "ALC257", patch_alc269),
12687 HDA_CODEC_ENTRY(0x10ec0260, "ALC260", patch_alc260),
12688 HDA_CODEC_ENTRY(0x10ec0262, "ALC262", patch_alc262),
12689 HDA_CODEC_ENTRY(0x10ec0267, "ALC267", patch_alc268),
12690 HDA_CODEC_ENTRY(0x10ec0268, "ALC268", patch_alc268),
12691 HDA_CODEC_ENTRY(0x10ec0269, "ALC269", patch_alc269),
12692 HDA_CODEC_ENTRY(0x10ec0270, "ALC270", patch_alc269),
12693 HDA_CODEC_ENTRY(0x10ec0272, "ALC272", patch_alc662),
12694 HDA_CODEC_ENTRY(0x10ec0274, "ALC274", patch_alc269),
12695 HDA_CODEC_ENTRY(0x10ec0275, "ALC275", patch_alc269),
12696 HDA_CODEC_ENTRY(0x10ec0276, "ALC276", patch_alc269),
12697 HDA_CODEC_ENTRY(0x10ec0280, "ALC280", patch_alc269),
12698 HDA_CODEC_ENTRY(0x10ec0282, "ALC282", patch_alc269),
12699 HDA_CODEC_ENTRY(0x10ec0283, "ALC283", patch_alc269),
12700 HDA_CODEC_ENTRY(0x10ec0284, "ALC284", patch_alc269),
12701 HDA_CODEC_ENTRY(0x10ec0285, "ALC285", patch_alc269),
12702 HDA_CODEC_ENTRY(0x10ec0286, "ALC286", patch_alc269),
12703 HDA_CODEC_ENTRY(0x10ec0287, "ALC287", patch_alc269),
12704 HDA_CODEC_ENTRY(0x10ec0288, "ALC288", patch_alc269),
12705 HDA_CODEC_ENTRY(0x10ec0289, "ALC289", patch_alc269),
12706 HDA_CODEC_ENTRY(0x10ec0290, "ALC290", patch_alc269),
12707 HDA_CODEC_ENTRY(0x10ec0292, "ALC292", patch_alc269),
12708 HDA_CODEC_ENTRY(0x10ec0293, "ALC293", patch_alc269),
12709 HDA_CODEC_ENTRY(0x10ec0294, "ALC294", patch_alc269),
12710 HDA_CODEC_ENTRY(0x10ec0295, "ALC295", patch_alc269),
12711 HDA_CODEC_ENTRY(0x10ec0298, "ALC298", patch_alc269),
12712 HDA_CODEC_ENTRY(0x10ec0299, "ALC299", patch_alc269),
12713 HDA_CODEC_ENTRY(0x10ec0300, "ALC300", patch_alc269),
12714 HDA_CODEC_ENTRY(0x10ec0623, "ALC623", patch_alc269),
12715 HDA_CODEC_REV_ENTRY(0x10ec0861, 0x100340, "ALC660", patch_alc861),
12716 HDA_CODEC_ENTRY(0x10ec0660, "ALC660-VD", patch_alc861vd),
12717 HDA_CODEC_ENTRY(0x10ec0861, "ALC861", patch_alc861),
12718 HDA_CODEC_ENTRY(0x10ec0862, "ALC861-VD", patch_alc861vd),
12719 HDA_CODEC_REV_ENTRY(0x10ec0662, 0x100002, "ALC662 rev2", patch_alc882),
12720 HDA_CODEC_REV_ENTRY(0x10ec0662, 0x100101, "ALC662 rev1", patch_alc662),
12721 HDA_CODEC_REV_ENTRY(0x10ec0662, 0x100300, "ALC662 rev3", patch_alc662),
12722 HDA_CODEC_ENTRY(0x10ec0663, "ALC663", patch_alc662),
12723 HDA_CODEC_ENTRY(0x10ec0665, "ALC665", patch_alc662),
12724 HDA_CODEC_ENTRY(0x10ec0667, "ALC667", patch_alc662),
12725 HDA_CODEC_ENTRY(0x10ec0668, "ALC668", patch_alc662),
12726 HDA_CODEC_ENTRY(0x10ec0670, "ALC670", patch_alc662),
12727 HDA_CODEC_ENTRY(0x10ec0671, "ALC671", patch_alc662),
12728 HDA_CODEC_ENTRY(0x10ec0680, "ALC680", patch_alc680),
12729 HDA_CODEC_ENTRY(0x10ec0700, "ALC700", patch_alc269),
12730 HDA_CODEC_ENTRY(0x10ec0701, "ALC701", patch_alc269),
12731 HDA_CODEC_ENTRY(0x10ec0703, "ALC703", patch_alc269),
12732 HDA_CODEC_ENTRY(0x10ec0711, "ALC711", patch_alc269),
12733 HDA_CODEC_ENTRY(0x10ec0867, "ALC891", patch_alc662),
12734 HDA_CODEC_ENTRY(0x10ec0880, "ALC880", patch_alc880),
12735 HDA_CODEC_ENTRY(0x10ec0882, "ALC882", patch_alc882),
12736 HDA_CODEC_ENTRY(0x10ec0883, "ALC883", patch_alc882),
12737 HDA_CODEC_REV_ENTRY(0x10ec0885, 0x100101, "ALC889A", patch_alc882),
12738 HDA_CODEC_REV_ENTRY(0x10ec0885, 0x100103, "ALC889A", patch_alc882),
12739 HDA_CODEC_ENTRY(0x10ec0885, "ALC885", patch_alc882),
12740 HDA_CODEC_ENTRY(0x10ec0887, "ALC887", patch_alc882),
12741 HDA_CODEC_REV_ENTRY(0x10ec0888, 0x100101, "ALC1200", patch_alc882),
12742 HDA_CODEC_ENTRY(0x10ec0888, "ALC888", patch_alc882),
12743 HDA_CODEC_ENTRY(0x10ec0889, "ALC889", patch_alc882),
12744 HDA_CODEC_ENTRY(0x10ec0892, "ALC892", patch_alc662),
12745 HDA_CODEC_ENTRY(0x10ec0897, "ALC897", patch_alc662),
12746 HDA_CODEC_ENTRY(0x10ec0899, "ALC898", patch_alc882),
12747 HDA_CODEC_ENTRY(0x10ec0900, "ALC1150", patch_alc882),
12748 HDA_CODEC_ENTRY(0x10ec0b00, "ALCS1200A", patch_alc882),
12749 HDA_CODEC_ENTRY(0x10ec1168, "ALC1220", patch_alc882),
12750 HDA_CODEC_ENTRY(0x10ec1220, "ALC1220", patch_alc882),
12751 HDA_CODEC_ENTRY(0x19e58326, "HW8326", patch_alc269),