1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2018 Khamba Staring <k.staring@quickdecay.com> 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 * 28 * $FreeBSD$ 29 */ 30 31 #ifndef PIN_PATCH_REALTEK_H 32 #define PIN_PATCH_REALTEK_H 33 34 #include "hdac.h" 35 #include "pin_patch.h" 36 37 /* 38 * Pin patches 39 */ 40 static struct pin_patch_t pin_patches_lg_lw20[] = { 41 { 42 .nid = 26, 43 .type = PIN_PATCH_TYPE_MASK, 44 .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, 45 HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } 46 }, { 47 .nid = 27, 48 .type = PIN_PATCH_TYPE_MASK, 49 .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, 50 HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT } 51 }, { } 52 }; 53 54 static struct pin_patch_t pin_patches_clevo_d900t_asus_m5200[] = { 55 { 56 .nid = 24, 57 .type = PIN_PATCH_TYPE_MASK, 58 .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, 59 HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } 60 }, { 61 .nid = 25, 62 .type = PIN_PATCH_TYPE_MASK, 63 .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, 64 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN } 65 }, { 66 .nid = 26, 67 .type = PIN_PATCH_TYPE_MASK, 68 .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, 69 HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } 70 }, { 71 .nid = 27, 72 .type = PIN_PATCH_TYPE_MASK, 73 .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, 74 HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } 75 }, { 76 .nid = 28, 77 .type = PIN_PATCH_TYPE_MASK, 78 .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, 79 HDA_CONFIG_DEFAULTCONF_DEVICE_CD } 80 }, { } 81 }; 82 83 static struct pin_patch_t pin_patches_msi_ms034a[] = { 84 { 85 .nid = 25, 86 .type = PIN_PATCH_TYPE_MASK, 87 .patch.mask = { 88 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 89 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 90 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 91 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 92 }, { 93 .nid = 28, 94 .type = PIN_PATCH_TYPE_MASK, 95 .patch.mask = { 96 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 97 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 98 HDA_CONFIG_DEFAULTCONF_DEVICE_CD | 99 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 100 }, { } 101 }; 102 103 static struct pin_patch_t pin_patches_asus_w6f[] = { 104 { 105 .nid = 11, 106 .type = PIN_PATCH_TYPE_MASK, 107 .patch.mask = { 108 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 109 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 110 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 111 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 112 }, { 113 .nid = 12, 114 .type = PIN_PATCH_TYPE_MASK, 115 .patch.mask = { 116 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 117 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 118 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 119 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 120 }, { 121 .nid = 14, 122 .type = PIN_PATCH_TYPE_MASK, 123 .patch.mask = { 124 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 125 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 126 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 127 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 128 }, { 129 .nid = 15, 130 .type = PIN_PATCH_TYPE_MASK, 131 .patch.mask = { 132 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 133 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 134 HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT | 135 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK } 136 }, { 137 .nid = 16, 138 .type = PIN_PATCH_TYPE_MASK, 139 .patch.mask = { 140 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 141 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 142 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 143 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 144 }, { 145 .nid = 31, 146 .type = PIN_PATCH_TYPE_MASK, 147 .patch.mask = { 148 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 149 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 150 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 151 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 152 }, { 153 .nid = 32, 154 .type = PIN_PATCH_TYPE_MASK, 155 .patch.mask = { 156 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 157 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 158 HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 159 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } 160 }, { } 161 }; 162 163 static struct pin_patch_t pin_patches_uniwill_9075[] = { 164 { 165 .nid = 15, 166 .type = PIN_PATCH_TYPE_MASK, 167 .patch.mask = { 168 HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 169 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, 170 HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT | 171 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK } 172 }, { } 173 }; 174 175 static struct pin_patch_t pin_patches_dell_xps_jack[] = { 176 PIN_PATCH_JACK_WO_DETECT(24), 177 PIN_PATCH_HPMIC_WO_DETECT(26), 178 { } 179 }; 180 181 /* 182 * List of models and patches 183 */ 184 static struct hdaa_model_pin_patch_t realtek_model_pin_patches[] = { 185 { /**** CODEC: HDA_CODEC_ALC255 ****/ 186 .id = HDA_CODEC_ALC255, 187 .patches = (struct model_pin_patch_t[]){ 188 { 189 .models = (struct pin_machine_model_t[]){ 190 PIN_SUBVENDOR(ASUS_X556UR_SUBVENDOR), 191 PIN_SUBVENDOR(ASUS_X540LA_SUBVENDOR), 192 PIN_SUBVENDOR(ASUS_Z550MA_SUBVENDOR), 193 { } 194 }, 195 .pin_patches = (struct pin_patch_t[]){ 196 PIN_PATCH_JACK_WO_DETECT(25), 197 { } 198 } 199 }, { 200 .models = (struct pin_machine_model_t[]){ 201 PIN_SUBVENDOR(DELL_9020M_SUBVENDOR), 202 { } 203 }, 204 .pin_patches = (struct pin_patch_t[]){ 205 PIN_PATCH_JACK_WO_DETECT(25), 206 PIN_PATCH_HPMIC_WO_DETECT(26), 207 { } 208 } 209 }, { } 210 } 211 }, { /**** CODEC: HDA_CODEC_ALC256 ****/ 212 .id = HDA_CODEC_ALC256, 213 .patches = (struct model_pin_patch_t[]){ 214 { 215 .models = (struct pin_machine_model_t[]){ 216 PIN_SUBVENDOR(DELL_9020M_SUBVENDOR), 217 PIN_SUBVENDOR(DELL_7000_SUBVENDOR), 218 { } 219 }, 220 .pin_patches = (struct pin_patch_t[]){ 221 PIN_PATCH_STRING(27, "seq=1 as=5 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), 222 { } 223 } 224 }, { 225 .models = (struct pin_machine_model_t[]){ 226 PIN_SUBVENDOR(ASUS_X540A_SUBVENDOR), 227 PIN_SUBVENDOR(ASUS_X540SA_SUBVENDOR), 228 PIN_SUBVENDOR(ASUS_X541SA_SUBVENDOR), 229 PIN_SUBVENDOR(ASUS_X541UV_SUBVENDOR), 230 PIN_SUBVENDOR(ASUS_Z550SA_SUBVENDOR), 231 PIN_SUBVENDOR(ASUS_X705UD_SUBVENDOR), 232 PIN_SUBVENDOR(ASUS_X555UB_SUBVENDOR), 233 { } 234 }, 235 .pin_patches = (struct pin_patch_t[]){ 236 PIN_PATCH_MIC_INTERNAL(19), 237 PIN_PATCH_STRING(25, "as=2 misc=1 color=Black ctype=1/8 device=Mic loc=Right"), 238 { } 239 } 240 }, { } 241 } 242 }, { /**** CODEC: HDA_CODEC_ALC260 ****/ 243 .id = HDA_CODEC_ALC260, 244 .patches = (struct model_pin_patch_t[]){ 245 { 246 .models = (struct pin_machine_model_t[]){ 247 PIN_SUBVENDOR(SONY_S5_SUBVENDOR), 248 { } 249 }, 250 .pin_patches = (struct pin_patch_t[]){ 251 PIN_PATCH_STRING(16, "seq=15 device=Headphones"), 252 { } 253 } 254 }, { 255 .models = (struct pin_machine_model_t[]){ 256 PIN_SUBVENDOR(HP_DC5750_SUBVENDOR), 257 { } 258 }, 259 .pin_patches = (struct pin_patch_t[]){ 260 PIN_PATCH_STRING(17, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Internal conn=Fixed"), 261 { } 262 } 263 }, { 264 .models = (struct pin_machine_model_t[]){ 265 PIN_SUBVENDOR(SONY_VAIO_TX_SUBVENDOR), 266 { } 267 }, 268 .pin_patches = (struct pin_patch_t[]){ 269 PIN_PATCH_STRING(15, "color=Green ctype=1/8 device=Headphones loc=Rear"), 270 { } 271 } 272 }, { 273 .models = (struct pin_machine_model_t[]){ 274 PIN_SUBVENDOR(SONY_81BBID_SUBVENDOR), 275 { } 276 }, 277 .pin_patches = (struct pin_patch_t[]){ 278 PIN_PATCH_STRING(15, "as=2 color=Black ctype=1/8 device=Headphones loc=Rear"), 279 PIN_PATCH_STRING(16, "seq=15 as=3 ctype=1/8"), 280 PIN_PATCH_NOT_APPLICABLE(17), 281 PIN_PATCH_STRING(18, "as=3 misc=9 color=Red ctype=1/8 device=Mic loc=Rear"), 282 PIN_PATCH_NOT_APPLICABLE(19), 283 PIN_PATCH_NOT_APPLICABLE(20), 284 PIN_PATCH_NOT_APPLICABLE(21), 285 PIN_PATCH_NOT_APPLICABLE(22), 286 PIN_PATCH_NOT_APPLICABLE(23), 287 PIN_PATCH_NOT_APPLICABLE(24), 288 PIN_PATCH_NOT_APPLICABLE(25), 289 { } 290 } 291 }, { } 292 } 293 }, { /**** CODEC: HDA_CODEC_ALC262 ****/ 294 .id = HDA_CODEC_ALC262, 295 .patches = (struct model_pin_patch_t[]){ 296 { 297 .models = (struct pin_machine_model_t[]){ 298 PIN_SUBVENDOR(FS_H270_SUBVENDOR), 299 { } 300 }, 301 .pin_patches = (struct pin_patch_t[]){ 302 PIN_PATCH_STRING(20, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), 303 PIN_PATCH_STRING(21, "seq=15 as=2 misc=4 color=Black ctype=1/8 device=Headphones loc=Front"), 304 PIN_PATCH_STRING(22, "seq=15 as=1 misc=4 color=Black ctype=1/8 device=Headphones loc=Rear"), 305 { } 306 } 307 }, { 308 .models = (struct pin_machine_model_t[]){ 309 PIN_SUBVENDOR(FL_LB_S7110_SUBVENDOR), 310 { } 311 }, 312 .pin_patches = (struct pin_patch_t[]){ 313 PIN_PATCH_STRING(21, "as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), 314 { } 315 } 316 }, { 317 .models = (struct pin_machine_model_t[]){ 318 PIN_SUBVENDOR(HP_Z200_SUBVENDOR), 319 { } 320 }, 321 .pin_patches = (struct pin_patch_t[]){ 322 PIN_PATCH_STRING(22, "as=2 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), 323 { } 324 } 325 }, { 326 .models = (struct pin_machine_model_t[]){ 327 PIN_SUBVENDOR(TYAN_N6650W_SUBVENDOR), 328 { } 329 }, 330 .pin_patches = (struct pin_patch_t[]){ 331 PIN_PATCH_STRING(22, "as=15 misc=1 color=White ctype=ATAPI device=AUX loc=Onboard"), 332 { } 333 } 334 }, { 335 .models = (struct pin_machine_model_t[]){ 336 PIN_SUBVENDOR(LENOVO_3000_SUBVENDOR), 337 { } 338 }, 339 .pin_patches = (struct pin_patch_t[]){ 340 PIN_PATCH_STRING(22, "seq=1 as=2"), 341 { } 342 } 343 }, { } 344 } 345 }, { /**** CODEC: HDA_CODEC_ALC268 ****/ 346 .id = HDA_CODEC_ALC268, 347 .patches = (struct model_pin_patch_t[]){ 348 { 349 .models = (struct pin_machine_model_t[]){ 350 PIN_SUBVENDOR(ACER_T5320_SUBVENDOR), 351 { } 352 }, 353 .pin_patches = (struct pin_patch_t[]){ 354 PIN_PATCH_STRING(20, "as=1 seq=15"), 355 { } 356 } 357 }, { 358 .models = (struct pin_machine_model_t[]){ 359 PIN_SUBVENDOR(ACER_TM_6293_SUBVENDOR), 360 { } 361 }, 362 .pin_patches = (struct pin_patch_t[]){ 363 PIN_PATCH_STRING(30, "as=8 misc=1 color=Black ctype=Combo device=SPDIF-out loc=Rear"), 364 { } 365 } 366 }, { } 367 } 368 }, { /**** CODEC: HDA_CODEC_ALC269 ****/ 369 .id = HDA_CODEC_ALC269, 370 .patches = (struct model_pin_patch_t[]){ 371 { 372 .models = (struct pin_machine_model_t[]){ 373 PIN_SUBVENDOR(LENOVO_X1CRBN_SUBVENDOR), 374 { } 375 }, 376 .pin_patches = (struct pin_patch_t[]){ 377 PIN_PATCH_STRING(21, "as=1 seq=15"), 378 { } 379 } 380 }, { 381 .models = (struct pin_machine_model_t[]){ 382 PIN_SUBVENDOR(LENOVO_T430_SUBVENDOR), 383 PIN_SUBVENDOR(LENOVO_T430S_SUBVENDOR), 384 PIN_SUBVENDOR(LENOVO_X230_SUBVENDOR), 385 PIN_SUBVENDOR(LENOVO_X230T_SUBVENDOR), 386 PIN_SUBVENDOR(LENOVO_T431S_SUBVENDOR), 387 { } 388 }, 389 .pin_patches = (struct pin_patch_t[]){ 390 PIN_PATCH_DOCK_MIC_IN(25), 391 PIN_PATCH_DOCK_HP(27), 392 { } 393 } 394 }, { 395 .models = (struct pin_machine_model_t[]){ 396 PIN_SUBVENDOR(ASUS_UX31A_SUBVENDOR), 397 { } 398 }, 399 .pin_patches = (struct pin_patch_t[]){ 400 PIN_PATCH_STRING(33, "as=1 seq=15"), 401 { } 402 } 403 }, { 404 .models = (struct pin_machine_model_t[]){ 405 PIN_SUBVENDOR(ASUS_G73JW_SUBVENDOR), 406 { } 407 }, 408 .pin_patches = (struct pin_patch_t[]){ 409 PIN_PATCH_SUBWOOFER(23), 410 { } 411 } 412 }, { 413 .models = (struct pin_machine_model_t[]){ 414 PIN_SUBVENDOR(FL_1475ID_SUBVENDOR), 415 { } 416 }, 417 .pin_patches = (struct pin_patch_t[]){ 418 PIN_PATCH_DOCK_LINE_OUT(26), 419 PIN_PATCH_DOCK_MIC_IN(27), 420 { } 421 } 422 }, { 423 .models = (struct pin_machine_model_t[]){ 424 PIN_SUBVENDOR(FL_LB_U904_SUBVENDOR), 425 { } 426 }, 427 .pin_patches = (struct pin_patch_t[]){ 428 PIN_PATCH_HPMIC_WITH_DETECT(25), 429 { } 430 } 431 }, { 432 .models = (struct pin_machine_model_t[]){ 433 PIN_SUBVENDOR(FL_LB_T731_SUBVENDOR), 434 PIN_SUBVENDOR(FL_LB_E725_SUBVENDOR), 435 { } 436 }, 437 .pin_patches = (struct pin_patch_t[]){ 438 PIN_PATCH_STRING(33, "seq=15 as=2 color=Black ctype=1/8 device=Headphones loc=Front"), 439 { } 440 } 441 }, { 442 .models = (struct pin_machine_model_t[]){ 443 PIN_SUBVENDOR(DELL_05F4ID_SUBVENDOR), 444 PIN_SUBVENDOR(DELL_05F5ID_SUBVENDOR), 445 PIN_SUBVENDOR(DELL_05F6ID_SUBVENDOR), 446 { } 447 }, 448 .pin_patches = (struct pin_patch_t[]){ 449 PIN_PATCH_JACK_WO_DETECT(25), 450 PIN_PATCH_HPMIC_WO_DETECT(26), 451 { } 452 } 453 }, { 454 .models = (struct pin_machine_model_t[]){ 455 PIN_SUBVENDOR(ACER_V5_571G_SUBVENDOR), 456 PIN_SUBVENDOR(ACER_V5_122P_SUBVENDOR), 457 { } 458 }, 459 .pin_patches = (struct pin_patch_t[]){ 460 PIN_PATCH_JACK_WO_DETECT(25), 461 { } 462 } 463 }, { 464 .models = (struct pin_machine_model_t[]){ 465 PIN_SUBVENDOR(ASUS_X101CH_SUBVENDOR), 466 { } 467 }, 468 .pin_patches = (struct pin_patch_t[]){ 469 PIN_PATCH_STRING(24, "seq=12 as=2 misc=8 color=Black ctype=1/8 device=Mic loc=Right"), 470 { } 471 } 472 }, { 473 .models = (struct pin_machine_model_t[]){ 474 PIN_SUBVENDOR(ACER_AC700_SUBVENDOR), 475 { } 476 }, 477 .pin_patches = (struct pin_patch_t[]){ 478 PIN_PATCH_STRING(18, "seq=15 as=2 misc=9 ctype=ATAPI device=Mic loc=Onboard conn=Fixed"), 479 PIN_PATCH_STRING(20, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), 480 PIN_PATCH_STRING(24, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), 481 PIN_PATCH_STRING(30, "seq=14 as=1 color=Black ctype=Digital device=SPDIF-out loc=Left"), 482 PIN_PATCH_STRING(33, "seq=15 as=1 color=Black ctype=1/8 device=Headphones loc=Left"), 483 { } 484 } 485 }, { 486 .models = (struct pin_machine_model_t[]){ 487 PIN_SUBVENDOR(HP_225AID_SUBVENDOR), 488 { } 489 }, 490 .pin_patches = (struct pin_patch_t[]){ 491 PIN_PATCH_STRING(24, "seq=15 as=3 color=Black ctype=1/8 device=Line-in loc=Ext-Rear"), 492 PIN_PATCH_STRING(27, "as=2 color=Black ctype=1/8 loc=Ext-Rear"), 493 { } 494 } 495 }, { } 496 } 497 }, { /**** CODEC: HDA_CODEC_ALC271 ****/ 498 .id = HDA_CODEC_ALC271, 499 .patches = (struct model_pin_patch_t[]){ 500 { 501 .models = (struct pin_machine_model_t[]){ 502 PIN_SUBVENDOR(ACER_AO725_SUBVENDOR), 503 PIN_SUBVENDOR(ACER_AO756_SUBVENDOR), 504 PIN_SUBVENDOR(ACER_E1_472_SUBVENDOR), 505 PIN_SUBVENDOR(ACER_E1_572_SUBVENDOR), 506 { } 507 }, 508 .pin_patches = (struct pin_patch_t[]){ 509 PIN_PATCH_STRING(20, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), 510 PIN_PATCH_STRING(25, "as=2 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 511 PIN_PATCH_STRING(27, "seq=15 as=2 misc=1 ctype=Analog device=Mic loc=Onboard conn=Fixed"), 512 PIN_PATCH_HP_OUT(33), 513 { } 514 } 515 }, { } 516 } 517 }, { /**** CODEC: HDA_CODEC_ALC280 ****/ 518 .id = HDA_CODEC_ALC280, 519 .patches = (struct model_pin_patch_t[]){ 520 { 521 .models = (struct pin_machine_model_t[]){ 522 PIN_SUBVENDOR(HP_2272ID_SUBVENDOR), 523 PIN_SUBVENDOR(HP_2273ID_SUBVENDOR), 524 { } 525 }, 526 .pin_patches = (struct pin_patch_t[]){ 527 PIN_PATCH_STRING(27, "as=2 color=Black ctype=1/8 loc=Ext-Rear"), 528 PIN_PATCH_HPMIC_WITH_DETECT(26), 529 PIN_PATCH_STRING(24, "seq=15 as=3 color=Black ctype=1/8 device=Line-in loc=Ext-Rear"), 530 { } 531 } 532 }, { } 533 } 534 }, { /**** CODEC: HDA_CODEC_ALC282 ****/ 535 .id = HDA_CODEC_ALC282, 536 .patches = (struct model_pin_patch_t[]){ 537 { 538 .models = (struct pin_machine_model_t[]){ 539 PIN_SUBVENDOR(ACER_V5_573G_SUBVENDOR), 540 { } 541 }, 542 .pin_patches = (struct pin_patch_t[]){ 543 PIN_PATCH_STRING(18, "as=3 misc=1 ctype=Digital device=Mic loc=Internal conn=Fixed"), 544 PIN_PATCH_STRING(20, "as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), 545 PIN_PATCH_STRING(23, "seq=8 conn=None"), 546 PIN_PATCH_NOT_APPLICABLE(24), 547 PIN_PATCH_JACK_WO_DETECT(25), 548 PIN_PATCH_NOT_APPLICABLE(26), 549 PIN_PATCH_NOT_APPLICABLE(27), 550 PIN_PATCH_STRING(29, "seq=13 as=2 misc=11 color=Pink ctype=DIN device=Other conn=None"), 551 PIN_PATCH_NOT_APPLICABLE(30), 552 PIN_PATCH_STRING(33, "seq=15 as=1 color=Black ctype=1/8 device=Headphones loc=Left"), 553 { } 554 } 555 }, { } 556 } 557 }, { /**** CODEC: HDA_CODEC_ALC285 ****/ 558 .id = HDA_CODEC_ALC285, 559 .patches = (struct model_pin_patch_t[]){ 560 { 561 .models = (struct pin_machine_model_t[]){ 562 PIN_SUBVENDOR(LENOVO_X120KH_SUBVENDOR), 563 PIN_SUBVENDOR(LENOVO_X120QD_SUBVENDOR), 564 { } 565 }, 566 .pin_patches = (struct pin_patch_t[]){ 567 PIN_PATCH_STRING(33, "seq=15 as=1 color=Black ctype=1/8 device=Headphones loc=Left"), 568 { } 569 } 570 }, { } 571 } 572 }, { /**** CODEC: HDA_CODEC_ALC286 ****/ 573 .id = HDA_CODEC_ALC286, 574 .patches = (struct model_pin_patch_t[]){ 575 { 576 .models = (struct pin_machine_model_t[]){ 577 PIN_SUBVENDOR(SONY_VAIO_P11_SUBVENDOR), 578 PIN_SUBVENDOR(SONY_VAIO_P13_SUBVENDOR), 579 { } 580 }, 581 .pin_patches = (struct pin_patch_t[]){ 582 PIN_PATCH_JACK_WO_DETECT(25), 583 { } 584 } 585 }, { } 586 } 587 }, { /**** CODEC: HDA_CODEC_ALC288 ****/ 588 .id = HDA_CODEC_ALC288, 589 .patches = (struct model_pin_patch_t[]){ 590 { 591 .models = (struct pin_machine_model_t[]){ 592 PIN_SUBVENDOR(DELL_E7240_SUBVENDOR), 593 { } 594 }, 595 .pin_patches = pin_patches_dell_xps_jack 596 }, { } 597 } 598 }, { /**** CODEC: HDA_CODEC_ALC290 ****/ 599 .id = HDA_CODEC_ALC290, 600 .patches = (struct model_pin_patch_t[]){ 601 { 602 .models = (struct pin_machine_model_t[]){ 603 PIN_SUBVENDOR(DELL_V5470_SUBVENDOR), 604 PIN_SUBVENDOR(DELL_V5470_1_SUBVENDOR), 605 PIN_SUBVENDOR(DELL_V5480_SUBVENDOR), 606 { } 607 }, 608 .pin_patches = (struct pin_patch_t[]){ 609 PIN_PATCH_STRING(18, "as=4 misc=1 ctype=Digital device=Mic loc=Internal conn=Fixed"), 610 PIN_PATCH_STRING(20, "as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), 611 PIN_PATCH_STRING(21, "seq=15 as=1 color=Green ctype=1/8 device=Headphones loc=Front"), 612 PIN_PATCH_STRING(23, "seq=2 as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), 613 PIN_PATCH_JACK_WO_DETECT(26), 614 { } 615 } 616 }, { } 617 } 618 }, { /**** CODEC: HDA_CODEC_ALC292 ****/ 619 .id = HDA_CODEC_ALC292, 620 .patches = (struct model_pin_patch_t[]){ 621 { 622 .models = (struct pin_machine_model_t[]){ 623 PIN_SUBVENDOR(LENOVO_X120BS_SUBVENDOR), 624 { } 625 }, 626 .pin_patches = (struct pin_patch_t[]){ 627 PIN_PATCH_STRING(21, "as=1 seq=15"), 628 { } 629 } 630 }, { } 631 } 632 }, { /**** CODEC: HDA_CODEC_ALC293 ****/ 633 .id = HDA_CODEC_ALC293, 634 .patches = (struct model_pin_patch_t[]){ 635 { 636 .models = (struct pin_machine_model_t[]){ 637 PIN_SUBVENDOR(DELL_064AID_SUBVENDOR), 638 PIN_SUBVENDOR(DELL_064BID_SUBVENDOR), 639 PIN_SUBVENDOR(DELL_06D9ID_SUBVENDOR), 640 PIN_SUBVENDOR(DELL_06DAID_SUBVENDOR), 641 PIN_SUBVENDOR(DELL_06DBID_SUBVENDOR), 642 PIN_SUBVENDOR(DELL_06DDID_SUBVENDOR), 643 PIN_SUBVENDOR(DELL_06DEID_SUBVENDOR), 644 PIN_SUBVENDOR(DELL_06DFID_SUBVENDOR), 645 PIN_SUBVENDOR(DELL_06E0ID_SUBVENDOR), 646 PIN_SUBVENDOR(DELL_164AID_SUBVENDOR), 647 PIN_SUBVENDOR(DELL_164BID_SUBVENDOR), 648 { } 649 }, 650 .pin_patches = (struct pin_patch_t[]){ 651 PIN_PATCH_HPMIC_WO_DETECT(24), 652 PIN_PATCH_JACK_WO_DETECT(26), 653 { } 654 } 655 }, { } 656 } 657 }, { /**** CODEC: HDA_CODEC_ALC298 ****/ 658 .id = HDA_CODEC_ALC298, 659 .patches = (struct model_pin_patch_t[]){ 660 { 661 .models = (struct pin_machine_model_t[]){ 662 PIN_SUBVENDOR(DELL_XPS9560_SUBVENDOR), 663 { } 664 }, 665 .pin_patches = pin_patches_dell_xps_jack 666 }, 667 { 668 .models = (struct pin_machine_model_t[]){ 669 PIN_SUBVENDOR(LENOVO_ALL_SUBVENDOR), 670 { } 671 }, 672 .pin_patches = (struct pin_patch_t[]){ 673 PIN_PATCH_DOCK_LINE_OUT(23), 674 PIN_PATCH_HP_OUT(33), 675 { } 676 }, 677 }, { } 678 } 679 }, { /**** CODEC: HDA_CODEC_ALC861 ****/ 680 .id = HDA_CODEC_ALC861, 681 .patches = (struct model_pin_patch_t[]){ 682 { 683 .models = (struct pin_machine_model_t[]){ 684 PIN_SUBVENDOR(ASUS_W6F_SUBVENDOR), 685 { } 686 }, 687 .pin_patches = pin_patches_asus_w6f 688 }, { 689 .models = (struct pin_machine_model_t[]){ 690 PIN_SUBVENDOR(UNIWILL_9075_SUBVENDOR), 691 { } 692 }, 693 .pin_patches = pin_patches_uniwill_9075 694 }, { } 695 } 696 }, { /**** CODEC: HDA_CODEC_ALC880 ****/ 697 .id = HDA_CODEC_ALC880, 698 .patches = (struct model_pin_patch_t[]){ 699 { // old patch 700 .models = (struct pin_machine_model_t[]){ 701 PIN_SUBVENDOR(LG_LW20_SUBVENDOR), 702 { } 703 }, 704 .pin_patches = pin_patches_lg_lw20 705 }, { // old patch 706 .models = (struct pin_machine_model_t[]){ 707 PIN_SUBVENDOR(CLEVO_D900T_SUBVENDOR), 708 PIN_SUBVENDOR(ASUS_M5200_SUBVENDOR), 709 { } 710 }, 711 .pin_patches = pin_patches_clevo_d900t_asus_m5200 712 }, { 713 .models = (struct pin_machine_model_t[]){ 714 PIN_SUBVENDOR(LG_M1_SUBVENDOR), 715 PIN_SUBVENDOR(LG_P1_SUBVENDOR), 716 PIN_SUBVENDOR(LG_W1_SUBVENDOR), 717 { } 718 }, 719 .pin_patches = (struct pin_patch_t[]){ 720 PIN_PATCH_NOT_APPLICABLE(22), 721 PIN_PATCH_NOT_APPLICABLE(24), 722 PIN_PATCH_NOT_APPLICABLE(26), 723 { } 724 } 725 }, { 726 .models = (struct pin_machine_model_t[]){ 727 PIN_SUBVENDOR(COEUS_G610P_SUBVENDOR), 728 PIN_SUBVENDOR(ARIMA_W810_SUBVENDOR), 729 { } 730 }, 731 .pin_patches = (struct pin_patch_t[]){ 732 PIN_PATCH_NOT_APPLICABLE(23), 733 { } 734 } 735 }, { 736 .models = (struct pin_machine_model_t[]){ 737 PIN_SUBVENDOR(FS_AMILO_M1437_SUBVENDOR), 738 PIN_SUBVENDOR(FS_AMILO_M1451G_SUBVENDOR), 739 PIN_SUBVENDOR(FS_AMILO_PI1556_SUBVENDOR), 740 { } 741 }, 742 .pin_patches = (struct pin_patch_t[]){ 743 PIN_PATCH_HP_OUT(20), 744 PIN_PATCH_SPEAKER(21), 745 PIN_PATCH_BASS_SPEAKER(22), 746 PIN_PATCH_NOT_APPLICABLE(23), 747 PIN_PATCH_NOT_APPLICABLE(24), 748 PIN_PATCH_MIC_IN(25), 749 PIN_PATCH_NOT_APPLICABLE(26), 750 PIN_PATCH_NOT_APPLICABLE(27), 751 PIN_PATCH_NOT_APPLICABLE(28), 752 PIN_PATCH_NOT_APPLICABLE(29), 753 PIN_PATCH_NOT_APPLICABLE(30), 754 { } 755 } 756 }, { 757 .models = (struct pin_machine_model_t[]){ 758 PIN_SUBVENDOR(UNIWILL_9054_SUBVENDOR), 759 PIN_SUBVENDOR(FS_AMILO_XI1526_SUBVENDOR), 760 { } 761 }, 762 .pin_patches = (struct pin_patch_t[]){ 763 PIN_PATCH_HP_OUT(20), 764 PIN_PATCH_SPEAKER(21), 765 PIN_PATCH_NOT_APPLICABLE(22), 766 PIN_PATCH_NOT_APPLICABLE(23), 767 PIN_PATCH_NOT_APPLICABLE(24), 768 PIN_PATCH_MIC_IN(25), 769 PIN_PATCH_NOT_APPLICABLE(26), 770 PIN_PATCH_NOT_APPLICABLE(27), 771 PIN_PATCH_NOT_APPLICABLE(28), 772 PIN_PATCH_NOT_APPLICABLE(29), 773 PIN_PATCH_SPDIF_OUT(30), 774 { } 775 } 776 }, { 777 .models = (struct pin_machine_model_t[]){ 778 PIN_SUBVENDOR(LG_LW25_SUBVENDOR), 779 { } 780 }, 781 .pin_patches = (struct pin_patch_t[]){ 782 PIN_PATCH_STRING(26, "seq=15 as=4 misc=4 color=Blue ctype=1/8 device=Line-in loc=Rear"), 783 PIN_PATCH_STRING(27, "seq=15 as=3 color=Green ctype=1/8 device=Headphones loc=Left"), 784 { } 785 } 786 }, { 787 .models = (struct pin_machine_model_t[]){ 788 PIN_SUBVENDOR(UNIWILL_9070_SUBVENDOR), 789 { } 790 }, 791 .pin_patches = (struct pin_patch_t[]){ 792 PIN_PATCH_HP(20), 793 PIN_PATCH_SPEAKER(21), 794 PIN_PATCH_BASS_SPEAKER(22), 795 { } 796 } 797 }, { 798 .models = (struct pin_machine_model_t[]){ 799 PIN_SUBVENDOR(UNIWILL_9050_SUBVENDOR), 800 { } 801 }, 802 .pin_patches = (struct pin_patch_t[]){ 803 PIN_PATCH_NOT_APPLICABLE(23), 804 PIN_PATCH_NOT_APPLICABLE(25), 805 PIN_PATCH_NOT_APPLICABLE(27), 806 PIN_PATCH_NOT_APPLICABLE(31), 807 { } 808 } 809 }, { 810 .models = (struct pin_machine_model_t[]){ 811 PIN_SUBVENDOR(ASUS_Z71V_SUBVENDOR), 812 { } 813 }, 814 .pin_patches = (struct pin_patch_t[]){ 815 PIN_PATCH_SPEAKER(20), 816 PIN_PATCH_HP(21), 817 PIN_PATCH_NOT_APPLICABLE(22), 818 PIN_PATCH_NOT_APPLICABLE(23), 819 PIN_PATCH_MIC_IN(24), 820 PIN_PATCH_NOT_APPLICABLE(25), 821 PIN_PATCH_LINE_IN(26), 822 { } 823 } 824 }, { 825 .models = (struct pin_machine_model_t[]){ 826 PIN_SUBVENDOR(ASUS_W5A_SUBVENDOR), 827 { } 828 }, 829 .pin_patches = (struct pin_patch_t[]){ 830 PIN_PATCH_HP(20), 831 PIN_PATCH_NOT_APPLICABLE(21), 832 PIN_PATCH_NOT_APPLICABLE(22), 833 PIN_PATCH_NOT_APPLICABLE(23), 834 PIN_PATCH_MIC_INTERNAL(24), 835 PIN_PATCH_NOT_APPLICABLE(25), 836 PIN_PATCH_NOT_APPLICABLE(26), 837 PIN_PATCH_NOT_APPLICABLE(27), 838 PIN_PATCH_NOT_APPLICABLE(28), 839 PIN_PATCH_NOT_APPLICABLE(29), 840 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=ATAPI device=SPDIF-out loc=Lid-In conn=Fixed"), 841 { } 842 } 843 }, { 844 .models = (struct pin_machine_model_t[]){ 845 PIN_SUBVENDOR(ACER_E310ID_SUBVENDOR), 846 PIN_SUBVENDOR(SONY_81A0ID_SUBVENDOR), 847 PIN_SUBVENDOR(SONY_81D6ID_SUBVENDOR), 848 { } 849 }, 850 .pin_patches = (struct pin_patch_t[]){ 851 PIN_PATCH_LINE_OUT(20), 852 PIN_PATCH_NOT_APPLICABLE(21), 853 PIN_PATCH_NOT_APPLICABLE(22), 854 PIN_PATCH_NOT_APPLICABLE(23), 855 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 856 PIN_PATCH_HP(25), 857 PIN_PATCH_LINE_IN(26), 858 PIN_PATCH_MIC_FRONT(27), 859 PIN_PATCH_NOT_APPLICABLE(28), 860 PIN_PATCH_NOT_APPLICABLE(29), 861 PIN_PATCH_NOT_APPLICABLE(30), 862 PIN_PATCH_NOT_APPLICABLE(31), 863 { } 864 } 865 }, { 866 .models = (struct pin_machine_model_t[]){ 867 PIN_SUBVENDOR(ACER_0070ID_SUBVENDOR), 868 PIN_SUBVENDOR(ACER_E309ID_SUBVENDOR), 869 PIN_SUBVENDOR(INTEL_D402ID_SUBVENDOR), 870 PIN_SUBVENDOR(INTEL_E305ID_SUBVENDOR), 871 PIN_SUBVENDOR(INTEL_E308ID_SUBVENDOR), 872 { } 873 }, 874 .pin_patches = (struct pin_patch_t[]){ 875 PIN_PATCH_LINE_OUT(20), 876 PIN_PATCH_NOT_APPLICABLE(21), 877 PIN_PATCH_NOT_APPLICABLE(22), 878 PIN_PATCH_NOT_APPLICABLE(23), 879 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 880 PIN_PATCH_HP(25), 881 PIN_PATCH_LINE_IN(26), 882 PIN_PATCH_MIC_FRONT(27), 883 PIN_PATCH_NOT_APPLICABLE(28), 884 PIN_PATCH_NOT_APPLICABLE(29), 885 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), 886 PIN_PATCH_NOT_APPLICABLE(31), 887 { } 888 } 889 }, { 890 .models = (struct pin_machine_model_t[]){ 891 PIN_SUBVENDOR(GATEWAY_3032ID_SUBVENDOR), 892 PIN_SUBVENDOR(GATEWAY_3033ID_SUBVENDOR), 893 PIN_SUBVENDOR(GATEWAY_4039ID_SUBVENDOR), 894 { } 895 }, 896 .pin_patches = (struct pin_patch_t[]){ 897 PIN_PATCH_LINE_OUT(20), 898 PIN_PATCH_NOT_APPLICABLE(21), 899 PIN_PATCH_CLFE(22), 900 PIN_PATCH_SURROUND(23), 901 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 902 PIN_PATCH_HP(25), 903 PIN_PATCH_LINE_IN(26), 904 PIN_PATCH_MIC_FRONT(27), 905 PIN_PATCH_NOT_APPLICABLE(28), 906 PIN_PATCH_NOT_APPLICABLE(29), 907 PIN_PATCH_NOT_APPLICABLE(30), 908 PIN_PATCH_NOT_APPLICABLE(31), 909 { } 910 } 911 }, { 912 .models = (struct pin_machine_model_t[]){ 913 PIN_SUBVENDOR(COEUS_A880ID_SUBVENDOR), 914 PIN_SUBVENDOR(BIOSTAR_8202ID_SUBVENDOR), 915 PIN_SUBVENDOR(EPOX_400DID_SUBVENDOR), 916 PIN_SUBVENDOR(EPOX_EP5LDA_SUBVENDOR), 917 PIN_SUBVENDOR(INTEL_A100ID_SUBVENDOR), 918 PIN_SUBVENDOR(INTEL_D400ID_SUBVENDOR), 919 PIN_SUBVENDOR(INTEL_D401ID_SUBVENDOR), 920 PIN_SUBVENDOR(INTEL_E224ID_SUBVENDOR), 921 PIN_SUBVENDOR(INTEL_E400ID_SUBVENDOR), 922 PIN_SUBVENDOR(INTEL_E401ID_SUBVENDOR), 923 PIN_SUBVENDOR(INTEL_E402ID_SUBVENDOR), 924 PIN_SUBVENDOR(AOPEN_I915GMMHFS_SUBVENDOR), 925 { } 926 }, 927 .pin_patches = (struct pin_patch_t[]){ 928 PIN_PATCH_LINE_OUT(20), 929 PIN_PATCH_NOT_APPLICABLE(21), 930 PIN_PATCH_CLFE(22), 931 PIN_PATCH_SURROUND(23), 932 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 933 PIN_PATCH_HP(25), 934 PIN_PATCH_LINE_IN(26), 935 PIN_PATCH_MIC_FRONT(27), 936 PIN_PATCH_NOT_APPLICABLE(28), 937 PIN_PATCH_NOT_APPLICABLE(29), 938 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), 939 PIN_PATCH_NOT_APPLICABLE(31), 940 { } 941 } 942 }, { 943 .models = (struct pin_machine_model_t[]){ 944 PIN_SUBVENDOR(ACER_APFV_SUBVENDOR), 945 { } 946 }, 947 .pin_patches = (struct pin_patch_t[]){ 948 PIN_PATCH_LINE_OUT(20), 949 PIN_PATCH_SURROUND(21), 950 PIN_PATCH_CLFE(22), 951 PIN_PATCH_STRING(23, "seq=4 as=1 misc=4 color=Grey ctype=1/8 loc=Rear"), 952 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 953 PIN_PATCH_MIC_FRONT(25), 954 PIN_PATCH_LINE_IN(26), 955 PIN_PATCH_HP(27), 956 PIN_PATCH_NOT_APPLICABLE(28), 957 PIN_PATCH_NOT_APPLICABLE(29), 958 PIN_PATCH_NOT_APPLICABLE(30), 959 PIN_PATCH_NOT_APPLICABLE(31), 960 { } 961 } 962 }, { 963 .models = (struct pin_machine_model_t[]){ 964 PIN_SUBVENDOR(ACER_0077ID_SUBVENDOR), 965 PIN_SUBVENDOR(ACER_0078ID_SUBVENDOR), 966 PIN_SUBVENDOR(ACER_0087ID_SUBVENDOR), 967 PIN_SUBVENDOR(SHUTTLE_ST20G5_SUBVENDOR), 968 PIN_SUBVENDOR(GB_K8_SUBVENDOR), 969 PIN_SUBVENDOR(MSI_1150ID_SUBVENDOR), 970 PIN_SUBVENDOR(FIC_P4M_SUBVENDOR), 971 { } 972 }, 973 .pin_patches = (struct pin_patch_t[]){ 974 PIN_PATCH_LINE_OUT(20), 975 PIN_PATCH_SURROUND(21), 976 PIN_PATCH_CLFE(22), 977 PIN_PATCH_STRING(23, "seq=4 as=1 misc=4 color=Grey ctype=1/8 loc=Rear"), 978 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 979 PIN_PATCH_MIC_FRONT(25), 980 PIN_PATCH_LINE_IN(26), 981 PIN_PATCH_HP(27), 982 PIN_PATCH_NOT_APPLICABLE(28), 983 PIN_PATCH_NOT_APPLICABLE(29), 984 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), 985 PIN_PATCH_NOT_APPLICABLE(31), 986 { } 987 } 988 }, { } 989 } 990 }, { /**** CODEC: HDA_CODEC_ALC883 ****/ 991 .id = HDA_CODEC_ALC883, 992 .patches = (struct model_pin_patch_t[]){ 993 { 994 .models = (struct pin_machine_model_t[]){ 995 PIN_SUBVENDOR(MSI_MS034A_SUBVENDOR), 996 { } 997 }, 998 .pin_patches = pin_patches_msi_ms034a 999 }, { } 1000 } 1001 }, { /**** CODEC: HDA_CODEC_ALC892 ****/ 1002 .id = HDA_CODEC_ALC892, 1003 .patches = (struct model_pin_patch_t[]){ 1004 { 1005 .models = (struct pin_machine_model_t[]){ 1006 PIN_SUBVENDOR(INTEL_DH87RL_SUBVENDOR), 1007 { } 1008 }, 1009 .pin_patches = (struct pin_patch_t[]){ 1010 PIN_PATCH_STRING(27, "as=1 seq=15"), 1011 { } 1012 } 1013 }, { } 1014 } 1015 } 1016 }; 1017 1018 #endif /* PIN_PATCH_REALTEK_H */ 1019