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