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_ALC287 ****/ 586 .id = HDA_CODEC_ALC287, 587 .patches = (struct model_pin_patch_t[]){ 588 { 589 .models = (struct pin_machine_model_t[]){ 590 PIN_SUBVENDOR(LENOVO_X1CRBNG11_SUBVENDOR), 591 { } 592 }, 593 .pin_patches = (struct pin_patch_t[]){ 594 PIN_PATCH_NOT_APPLICABLE(20), 595 PIN_PATCH_STRING(33, "as=1 seq=15 device=Headphones loc=Right"), 596 { } 597 } 598 }, { } 599 } 600 }, { /**** CODEC: HDA_CODEC_ALC288 ****/ 601 .id = HDA_CODEC_ALC288, 602 .patches = (struct model_pin_patch_t[]){ 603 { 604 .models = (struct pin_machine_model_t[]){ 605 PIN_SUBVENDOR(DELL_E7240_SUBVENDOR), 606 { } 607 }, 608 .pin_patches = pin_patches_dell_xps_jack 609 }, { } 610 } 611 }, { /**** CODEC: HDA_CODEC_ALC290 ****/ 612 .id = HDA_CODEC_ALC290, 613 .patches = (struct model_pin_patch_t[]){ 614 { 615 .models = (struct pin_machine_model_t[]){ 616 PIN_SUBVENDOR(DELL_V5470_SUBVENDOR), 617 PIN_SUBVENDOR(DELL_V5470_1_SUBVENDOR), 618 PIN_SUBVENDOR(DELL_V5480_SUBVENDOR), 619 { } 620 }, 621 .pin_patches = (struct pin_patch_t[]){ 622 PIN_PATCH_STRING(18, "as=4 misc=1 ctype=Digital device=Mic loc=Internal conn=Fixed"), 623 PIN_PATCH_STRING(20, "as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), 624 PIN_PATCH_STRING(21, "seq=15 as=1 color=Green ctype=1/8 device=Headphones loc=Front"), 625 PIN_PATCH_STRING(23, "seq=2 as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), 626 PIN_PATCH_JACK_WO_DETECT(26), 627 { } 628 } 629 }, { } 630 } 631 }, { /**** CODEC: HDA_CODEC_ALC292 ****/ 632 .id = HDA_CODEC_ALC292, 633 .patches = (struct model_pin_patch_t[]){ 634 { 635 .models = (struct pin_machine_model_t[]){ 636 PIN_SUBVENDOR(LENOVO_X120BS_SUBVENDOR), 637 { } 638 }, 639 .pin_patches = (struct pin_patch_t[]){ 640 PIN_PATCH_STRING(21, "as=1 seq=15"), 641 { } 642 } 643 }, { } 644 } 645 }, { /**** CODEC: HDA_CODEC_ALC293 ****/ 646 .id = HDA_CODEC_ALC293, 647 .patches = (struct model_pin_patch_t[]){ 648 { 649 .models = (struct pin_machine_model_t[]){ 650 PIN_SUBVENDOR(DELL_064AID_SUBVENDOR), 651 PIN_SUBVENDOR(DELL_064BID_SUBVENDOR), 652 PIN_SUBVENDOR(DELL_06D9ID_SUBVENDOR), 653 PIN_SUBVENDOR(DELL_06DAID_SUBVENDOR), 654 PIN_SUBVENDOR(DELL_06DBID_SUBVENDOR), 655 PIN_SUBVENDOR(DELL_06DDID_SUBVENDOR), 656 PIN_SUBVENDOR(DELL_06DEID_SUBVENDOR), 657 PIN_SUBVENDOR(DELL_06DFID_SUBVENDOR), 658 PIN_SUBVENDOR(DELL_06E0ID_SUBVENDOR), 659 PIN_SUBVENDOR(DELL_164AID_SUBVENDOR), 660 PIN_SUBVENDOR(DELL_164BID_SUBVENDOR), 661 { } 662 }, 663 .pin_patches = (struct pin_patch_t[]){ 664 PIN_PATCH_HPMIC_WO_DETECT(24), 665 PIN_PATCH_JACK_WO_DETECT(26), 666 { } 667 } 668 }, { } 669 } 670 }, { /**** CODEC: HDA_CODEC_ALC298 ****/ 671 .id = HDA_CODEC_ALC298, 672 .patches = (struct model_pin_patch_t[]){ 673 { 674 .models = (struct pin_machine_model_t[]){ 675 PIN_SUBVENDOR(DELL_XPS9560_SUBVENDOR), 676 { } 677 }, 678 .pin_patches = pin_patches_dell_xps_jack 679 }, 680 { 681 .models = (struct pin_machine_model_t[]){ 682 PIN_SUBVENDOR(LENOVO_ALL_SUBVENDOR), 683 { } 684 }, 685 .pin_patches = (struct pin_patch_t[]){ 686 PIN_PATCH_DOCK_LINE_OUT(23), 687 PIN_PATCH_HP_OUT(33), 688 { } 689 }, 690 }, { } 691 } 692 }, { /**** CODEC: HDA_CODEC_ALC861 ****/ 693 .id = HDA_CODEC_ALC861, 694 .patches = (struct model_pin_patch_t[]){ 695 { 696 .models = (struct pin_machine_model_t[]){ 697 PIN_SUBVENDOR(ASUS_W6F_SUBVENDOR), 698 { } 699 }, 700 .pin_patches = pin_patches_asus_w6f 701 }, { 702 .models = (struct pin_machine_model_t[]){ 703 PIN_SUBVENDOR(UNIWILL_9075_SUBVENDOR), 704 { } 705 }, 706 .pin_patches = pin_patches_uniwill_9075 707 }, { } 708 } 709 }, { /**** CODEC: HDA_CODEC_ALC880 ****/ 710 .id = HDA_CODEC_ALC880, 711 .patches = (struct model_pin_patch_t[]){ 712 { // old patch 713 .models = (struct pin_machine_model_t[]){ 714 PIN_SUBVENDOR(LG_LW20_SUBVENDOR), 715 { } 716 }, 717 .pin_patches = pin_patches_lg_lw20 718 }, { // old patch 719 .models = (struct pin_machine_model_t[]){ 720 PIN_SUBVENDOR(CLEVO_D900T_SUBVENDOR), 721 PIN_SUBVENDOR(ASUS_M5200_SUBVENDOR), 722 { } 723 }, 724 .pin_patches = pin_patches_clevo_d900t_asus_m5200 725 }, { 726 .models = (struct pin_machine_model_t[]){ 727 PIN_SUBVENDOR(LG_M1_SUBVENDOR), 728 PIN_SUBVENDOR(LG_P1_SUBVENDOR), 729 PIN_SUBVENDOR(LG_W1_SUBVENDOR), 730 { } 731 }, 732 .pin_patches = (struct pin_patch_t[]){ 733 PIN_PATCH_NOT_APPLICABLE(22), 734 PIN_PATCH_NOT_APPLICABLE(24), 735 PIN_PATCH_NOT_APPLICABLE(26), 736 { } 737 } 738 }, { 739 .models = (struct pin_machine_model_t[]){ 740 PIN_SUBVENDOR(COEUS_G610P_SUBVENDOR), 741 PIN_SUBVENDOR(ARIMA_W810_SUBVENDOR), 742 { } 743 }, 744 .pin_patches = (struct pin_patch_t[]){ 745 PIN_PATCH_NOT_APPLICABLE(23), 746 { } 747 } 748 }, { 749 .models = (struct pin_machine_model_t[]){ 750 PIN_SUBVENDOR(FS_AMILO_M1437_SUBVENDOR), 751 PIN_SUBVENDOR(FS_AMILO_M1451G_SUBVENDOR), 752 PIN_SUBVENDOR(FS_AMILO_PI1556_SUBVENDOR), 753 { } 754 }, 755 .pin_patches = (struct pin_patch_t[]){ 756 PIN_PATCH_HP_OUT(20), 757 PIN_PATCH_SPEAKER(21), 758 PIN_PATCH_BASS_SPEAKER(22), 759 PIN_PATCH_NOT_APPLICABLE(23), 760 PIN_PATCH_NOT_APPLICABLE(24), 761 PIN_PATCH_MIC_IN(25), 762 PIN_PATCH_NOT_APPLICABLE(26), 763 PIN_PATCH_NOT_APPLICABLE(27), 764 PIN_PATCH_NOT_APPLICABLE(28), 765 PIN_PATCH_NOT_APPLICABLE(29), 766 PIN_PATCH_NOT_APPLICABLE(30), 767 { } 768 } 769 }, { 770 .models = (struct pin_machine_model_t[]){ 771 PIN_SUBVENDOR(UNIWILL_9054_SUBVENDOR), 772 PIN_SUBVENDOR(FS_AMILO_XI1526_SUBVENDOR), 773 { } 774 }, 775 .pin_patches = (struct pin_patch_t[]){ 776 PIN_PATCH_HP_OUT(20), 777 PIN_PATCH_SPEAKER(21), 778 PIN_PATCH_NOT_APPLICABLE(22), 779 PIN_PATCH_NOT_APPLICABLE(23), 780 PIN_PATCH_NOT_APPLICABLE(24), 781 PIN_PATCH_MIC_IN(25), 782 PIN_PATCH_NOT_APPLICABLE(26), 783 PIN_PATCH_NOT_APPLICABLE(27), 784 PIN_PATCH_NOT_APPLICABLE(28), 785 PIN_PATCH_NOT_APPLICABLE(29), 786 PIN_PATCH_SPDIF_OUT(30), 787 { } 788 } 789 }, { 790 .models = (struct pin_machine_model_t[]){ 791 PIN_SUBVENDOR(LG_LW25_SUBVENDOR), 792 { } 793 }, 794 .pin_patches = (struct pin_patch_t[]){ 795 PIN_PATCH_STRING(26, "seq=15 as=4 misc=4 color=Blue ctype=1/8 device=Line-in loc=Rear"), 796 PIN_PATCH_STRING(27, "seq=15 as=3 color=Green ctype=1/8 device=Headphones loc=Left"), 797 { } 798 } 799 }, { 800 .models = (struct pin_machine_model_t[]){ 801 PIN_SUBVENDOR(UNIWILL_9070_SUBVENDOR), 802 { } 803 }, 804 .pin_patches = (struct pin_patch_t[]){ 805 PIN_PATCH_HP(20), 806 PIN_PATCH_SPEAKER(21), 807 PIN_PATCH_BASS_SPEAKER(22), 808 { } 809 } 810 }, { 811 .models = (struct pin_machine_model_t[]){ 812 PIN_SUBVENDOR(UNIWILL_9050_SUBVENDOR), 813 { } 814 }, 815 .pin_patches = (struct pin_patch_t[]){ 816 PIN_PATCH_NOT_APPLICABLE(23), 817 PIN_PATCH_NOT_APPLICABLE(25), 818 PIN_PATCH_NOT_APPLICABLE(27), 819 PIN_PATCH_NOT_APPLICABLE(31), 820 { } 821 } 822 }, { 823 .models = (struct pin_machine_model_t[]){ 824 PIN_SUBVENDOR(ASUS_Z71V_SUBVENDOR), 825 { } 826 }, 827 .pin_patches = (struct pin_patch_t[]){ 828 PIN_PATCH_SPEAKER(20), 829 PIN_PATCH_HP(21), 830 PIN_PATCH_NOT_APPLICABLE(22), 831 PIN_PATCH_NOT_APPLICABLE(23), 832 PIN_PATCH_MIC_IN(24), 833 PIN_PATCH_NOT_APPLICABLE(25), 834 PIN_PATCH_LINE_IN(26), 835 { } 836 } 837 }, { 838 .models = (struct pin_machine_model_t[]){ 839 PIN_SUBVENDOR(ASUS_W5A_SUBVENDOR), 840 { } 841 }, 842 .pin_patches = (struct pin_patch_t[]){ 843 PIN_PATCH_HP(20), 844 PIN_PATCH_NOT_APPLICABLE(21), 845 PIN_PATCH_NOT_APPLICABLE(22), 846 PIN_PATCH_NOT_APPLICABLE(23), 847 PIN_PATCH_MIC_INTERNAL(24), 848 PIN_PATCH_NOT_APPLICABLE(25), 849 PIN_PATCH_NOT_APPLICABLE(26), 850 PIN_PATCH_NOT_APPLICABLE(27), 851 PIN_PATCH_NOT_APPLICABLE(28), 852 PIN_PATCH_NOT_APPLICABLE(29), 853 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=ATAPI device=SPDIF-out loc=Lid-In conn=Fixed"), 854 { } 855 } 856 }, { 857 .models = (struct pin_machine_model_t[]){ 858 PIN_SUBVENDOR(ACER_E310ID_SUBVENDOR), 859 PIN_SUBVENDOR(SONY_81A0ID_SUBVENDOR), 860 PIN_SUBVENDOR(SONY_81D6ID_SUBVENDOR), 861 { } 862 }, 863 .pin_patches = (struct pin_patch_t[]){ 864 PIN_PATCH_LINE_OUT(20), 865 PIN_PATCH_NOT_APPLICABLE(21), 866 PIN_PATCH_NOT_APPLICABLE(22), 867 PIN_PATCH_NOT_APPLICABLE(23), 868 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 869 PIN_PATCH_HP(25), 870 PIN_PATCH_LINE_IN(26), 871 PIN_PATCH_MIC_FRONT(27), 872 PIN_PATCH_NOT_APPLICABLE(28), 873 PIN_PATCH_NOT_APPLICABLE(29), 874 PIN_PATCH_NOT_APPLICABLE(30), 875 PIN_PATCH_NOT_APPLICABLE(31), 876 { } 877 } 878 }, { 879 .models = (struct pin_machine_model_t[]){ 880 PIN_SUBVENDOR(ACER_0070ID_SUBVENDOR), 881 PIN_SUBVENDOR(ACER_E309ID_SUBVENDOR), 882 PIN_SUBVENDOR(INTEL_D402ID_SUBVENDOR), 883 PIN_SUBVENDOR(INTEL_E305ID_SUBVENDOR), 884 PIN_SUBVENDOR(INTEL_E308ID_SUBVENDOR), 885 { } 886 }, 887 .pin_patches = (struct pin_patch_t[]){ 888 PIN_PATCH_LINE_OUT(20), 889 PIN_PATCH_NOT_APPLICABLE(21), 890 PIN_PATCH_NOT_APPLICABLE(22), 891 PIN_PATCH_NOT_APPLICABLE(23), 892 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 893 PIN_PATCH_HP(25), 894 PIN_PATCH_LINE_IN(26), 895 PIN_PATCH_MIC_FRONT(27), 896 PIN_PATCH_NOT_APPLICABLE(28), 897 PIN_PATCH_NOT_APPLICABLE(29), 898 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), 899 PIN_PATCH_NOT_APPLICABLE(31), 900 { } 901 } 902 }, { 903 .models = (struct pin_machine_model_t[]){ 904 PIN_SUBVENDOR(GATEWAY_3032ID_SUBVENDOR), 905 PIN_SUBVENDOR(GATEWAY_3033ID_SUBVENDOR), 906 PIN_SUBVENDOR(GATEWAY_4039ID_SUBVENDOR), 907 { } 908 }, 909 .pin_patches = (struct pin_patch_t[]){ 910 PIN_PATCH_LINE_OUT(20), 911 PIN_PATCH_NOT_APPLICABLE(21), 912 PIN_PATCH_CLFE(22), 913 PIN_PATCH_SURROUND(23), 914 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 915 PIN_PATCH_HP(25), 916 PIN_PATCH_LINE_IN(26), 917 PIN_PATCH_MIC_FRONT(27), 918 PIN_PATCH_NOT_APPLICABLE(28), 919 PIN_PATCH_NOT_APPLICABLE(29), 920 PIN_PATCH_NOT_APPLICABLE(30), 921 PIN_PATCH_NOT_APPLICABLE(31), 922 { } 923 } 924 }, { 925 .models = (struct pin_machine_model_t[]){ 926 PIN_SUBVENDOR(COEUS_A880ID_SUBVENDOR), 927 PIN_SUBVENDOR(BIOSTAR_8202ID_SUBVENDOR), 928 PIN_SUBVENDOR(EPOX_400DID_SUBVENDOR), 929 PIN_SUBVENDOR(EPOX_EP5LDA_SUBVENDOR), 930 PIN_SUBVENDOR(INTEL_A100ID_SUBVENDOR), 931 PIN_SUBVENDOR(INTEL_D400ID_SUBVENDOR), 932 PIN_SUBVENDOR(INTEL_D401ID_SUBVENDOR), 933 PIN_SUBVENDOR(INTEL_E224ID_SUBVENDOR), 934 PIN_SUBVENDOR(INTEL_E400ID_SUBVENDOR), 935 PIN_SUBVENDOR(INTEL_E401ID_SUBVENDOR), 936 PIN_SUBVENDOR(INTEL_E402ID_SUBVENDOR), 937 PIN_SUBVENDOR(AOPEN_I915GMMHFS_SUBVENDOR), 938 { } 939 }, 940 .pin_patches = (struct pin_patch_t[]){ 941 PIN_PATCH_LINE_OUT(20), 942 PIN_PATCH_NOT_APPLICABLE(21), 943 PIN_PATCH_CLFE(22), 944 PIN_PATCH_SURROUND(23), 945 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 946 PIN_PATCH_HP(25), 947 PIN_PATCH_LINE_IN(26), 948 PIN_PATCH_MIC_FRONT(27), 949 PIN_PATCH_NOT_APPLICABLE(28), 950 PIN_PATCH_NOT_APPLICABLE(29), 951 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), 952 PIN_PATCH_NOT_APPLICABLE(31), 953 { } 954 } 955 }, { 956 .models = (struct pin_machine_model_t[]){ 957 PIN_SUBVENDOR(ACER_APFV_SUBVENDOR), 958 { } 959 }, 960 .pin_patches = (struct pin_patch_t[]){ 961 PIN_PATCH_LINE_OUT(20), 962 PIN_PATCH_SURROUND(21), 963 PIN_PATCH_CLFE(22), 964 PIN_PATCH_STRING(23, "seq=4 as=1 misc=4 color=Grey ctype=1/8 loc=Rear"), 965 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 966 PIN_PATCH_MIC_FRONT(25), 967 PIN_PATCH_LINE_IN(26), 968 PIN_PATCH_HP(27), 969 PIN_PATCH_NOT_APPLICABLE(28), 970 PIN_PATCH_NOT_APPLICABLE(29), 971 PIN_PATCH_NOT_APPLICABLE(30), 972 PIN_PATCH_NOT_APPLICABLE(31), 973 { } 974 } 975 }, { 976 .models = (struct pin_machine_model_t[]){ 977 PIN_SUBVENDOR(ACER_0077ID_SUBVENDOR), 978 PIN_SUBVENDOR(ACER_0078ID_SUBVENDOR), 979 PIN_SUBVENDOR(ACER_0087ID_SUBVENDOR), 980 PIN_SUBVENDOR(SHUTTLE_ST20G5_SUBVENDOR), 981 PIN_SUBVENDOR(GB_K8_SUBVENDOR), 982 PIN_SUBVENDOR(MSI_1150ID_SUBVENDOR), 983 PIN_SUBVENDOR(FIC_P4M_SUBVENDOR), 984 { } 985 }, 986 .pin_patches = (struct pin_patch_t[]){ 987 PIN_PATCH_LINE_OUT(20), 988 PIN_PATCH_SURROUND(21), 989 PIN_PATCH_CLFE(22), 990 PIN_PATCH_STRING(23, "seq=4 as=1 misc=4 color=Grey ctype=1/8 loc=Rear"), 991 PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), 992 PIN_PATCH_MIC_FRONT(25), 993 PIN_PATCH_LINE_IN(26), 994 PIN_PATCH_HP(27), 995 PIN_PATCH_NOT_APPLICABLE(28), 996 PIN_PATCH_NOT_APPLICABLE(29), 997 PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), 998 PIN_PATCH_NOT_APPLICABLE(31), 999 { } 1000 } 1001 }, { } 1002 } 1003 }, { /**** CODEC: HDA_CODEC_ALC883 ****/ 1004 .id = HDA_CODEC_ALC883, 1005 .patches = (struct model_pin_patch_t[]){ 1006 { 1007 .models = (struct pin_machine_model_t[]){ 1008 PIN_SUBVENDOR(MSI_MS034A_SUBVENDOR), 1009 { } 1010 }, 1011 .pin_patches = pin_patches_msi_ms034a 1012 }, { } 1013 } 1014 }, { /**** CODEC: HDA_CODEC_ALC892 ****/ 1015 .id = HDA_CODEC_ALC892, 1016 .patches = (struct model_pin_patch_t[]){ 1017 { 1018 .models = (struct pin_machine_model_t[]){ 1019 PIN_SUBVENDOR(INTEL_DH87RL_SUBVENDOR), 1020 { } 1021 }, 1022 .pin_patches = (struct pin_patch_t[]){ 1023 PIN_PATCH_STRING(27, "as=1 seq=15"), 1024 { } 1025 } 1026 }, { } 1027 } 1028 } 1029 }; 1030 1031 #endif /* PIN_PATCH_REALTEK_H */ 1032