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