/*- * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2018 Khamba Staring * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef PIN_PATCH_REALTEK_H #define PIN_PATCH_REALTEK_H #include "hdac.h" #include "pin_patch.h" /* * Pin patches */ static struct pin_patch_t pin_patches_lg_lw20[] = { { .nid = 26, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } }, { .nid = 27, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT } }, { } }; static struct pin_patch_t pin_patches_clevo_d900t_asus_m5200[] = { { .nid = 24, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } }, { .nid = 25, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN } }, { .nid = 26, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } }, { .nid = 27, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN } }, { .nid = 28, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_CD } }, { } }; static struct pin_patch_t pin_patches_msi_ms034a[] = { { .nid = 25, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { .nid = 28, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_CD | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { } }; static struct pin_patch_t pin_patches_asus_w6f[] = { { .nid = 11, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { .nid = 12, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { .nid = 14, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { .nid = 15, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK } }, { .nid = 16, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { .nid = 31, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { .nid = 32, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED } }, { } }; static struct pin_patch_t pin_patches_uniwill_9075[] = { { .nid = 15, .type = PIN_PATCH_TYPE_MASK, .patch.mask = { HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK, HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT | HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK } }, { } }; static struct pin_patch_t pin_patches_dell_xps_jack[] = { PIN_PATCH_JACK_WO_DETECT(24), PIN_PATCH_HPMIC_WO_DETECT(26), { } }; /* * List of models and patches */ static struct hdaa_model_pin_patch_t realtek_model_pin_patches[] = { { /**** CODEC: HDA_CODEC_ALC255 ****/ .id = HDA_CODEC_ALC255, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_X556UR_SUBVENDOR), PIN_SUBVENDOR(ASUS_X540LA_SUBVENDOR), PIN_SUBVENDOR(ASUS_Z550MA_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_JACK_WO_DETECT(25), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(DELL_9020M_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_JACK_WO_DETECT(25), PIN_PATCH_HPMIC_WO_DETECT(26), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC256 ****/ .id = HDA_CODEC_ALC256, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(DELL_9020M_SUBVENDOR), PIN_SUBVENDOR(DELL_7000_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(27, "seq=1 as=5 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_X540A_SUBVENDOR), PIN_SUBVENDOR(ASUS_X540SA_SUBVENDOR), PIN_SUBVENDOR(ASUS_X541SA_SUBVENDOR), PIN_SUBVENDOR(ASUS_X541UV_SUBVENDOR), PIN_SUBVENDOR(ASUS_Z550SA_SUBVENDOR), PIN_SUBVENDOR(ASUS_X705UD_SUBVENDOR), PIN_SUBVENDOR(ASUS_X555UB_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_MIC_INTERNAL(19), PIN_PATCH_STRING(25, "as=2 misc=1 color=Black ctype=1/8 device=Mic loc=Right"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC260 ****/ .id = HDA_CODEC_ALC260, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(SONY_S5_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(16, "seq=15 device=Headphones"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(HP_DC5750_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(17, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Internal conn=Fixed"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(SONY_VAIO_TX_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(15, "color=Green ctype=1/8 device=Headphones loc=Rear"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(SONY_81BBID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(15, "as=2 color=Black ctype=1/8 device=Headphones loc=Rear"), PIN_PATCH_STRING(16, "seq=15 as=3 ctype=1/8"), PIN_PATCH_NOT_APPLICABLE(17), PIN_PATCH_STRING(18, "as=3 misc=9 color=Red ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_NOT_APPLICABLE(19), PIN_PATCH_NOT_APPLICABLE(20), PIN_PATCH_NOT_APPLICABLE(21), PIN_PATCH_NOT_APPLICABLE(22), PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_NOT_APPLICABLE(24), PIN_PATCH_NOT_APPLICABLE(25), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC262 ****/ .id = HDA_CODEC_ALC262, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(FS_H270_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(20, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), PIN_PATCH_STRING(21, "seq=15 as=2 misc=4 color=Black ctype=1/8 device=Headphones loc=Front"), PIN_PATCH_STRING(22, "seq=15 as=1 misc=4 color=Black ctype=1/8 device=Headphones loc=Rear"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(FL_LB_S7110_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(21, "as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(HP_Z200_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(22, "as=2 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(TYAN_N6650W_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(22, "as=15 misc=1 color=White ctype=ATAPI device=AUX loc=Onboard"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LENOVO_3000_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(22, "seq=1 as=2"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC268 ****/ .id = HDA_CODEC_ALC268, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_T5320_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(20, "as=1 seq=15"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_TM_6293_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(30, "as=8 misc=1 color=Black ctype=Combo device=SPDIF-out loc=Rear"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC269 ****/ .id = HDA_CODEC_ALC269, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LENOVO_X1CRBN_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(21, "as=1 seq=15"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LENOVO_T430_SUBVENDOR), PIN_SUBVENDOR(LENOVO_T430S_SUBVENDOR), PIN_SUBVENDOR(LENOVO_X230_SUBVENDOR), PIN_SUBVENDOR(LENOVO_X230T_SUBVENDOR), PIN_SUBVENDOR(LENOVO_T431S_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_DOCK_MIC_IN(25), PIN_PATCH_DOCK_HP(27), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_UX31A_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(33, "as=1 seq=15"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_G73JW_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_SUBWOOFER(23), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(FL_1475ID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_DOCK_LINE_OUT(26), PIN_PATCH_DOCK_MIC_IN(27), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(FL_LB_U904_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_HPMIC_WITH_DETECT(25), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(FL_LB_T731_SUBVENDOR), PIN_SUBVENDOR(FL_LB_E725_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(33, "seq=15 as=2 color=Black ctype=1/8 device=Headphones loc=Front"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(DELL_05F4ID_SUBVENDOR), PIN_SUBVENDOR(DELL_05F5ID_SUBVENDOR), PIN_SUBVENDOR(DELL_05F6ID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_JACK_WO_DETECT(25), PIN_PATCH_HPMIC_WO_DETECT(26), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_V5_571G_SUBVENDOR), PIN_SUBVENDOR(ACER_V5_122P_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_JACK_WO_DETECT(25), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_X101CH_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(24, "seq=12 as=2 misc=8 color=Black ctype=1/8 device=Mic loc=Right"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_AC700_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(18, "seq=15 as=2 misc=9 ctype=ATAPI device=Mic loc=Onboard conn=Fixed"), PIN_PATCH_STRING(20, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), PIN_PATCH_STRING(24, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), PIN_PATCH_STRING(30, "seq=14 as=1 color=Black ctype=Digital device=SPDIF-out loc=Left"), PIN_PATCH_STRING(33, "seq=15 as=1 color=Black ctype=1/8 device=Headphones loc=Left"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(HP_225AID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(24, "seq=15 as=3 color=Black ctype=1/8 device=Line-in loc=Ext-Rear"), PIN_PATCH_STRING(27, "as=2 color=Black ctype=1/8 loc=Ext-Rear"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC271 ****/ .id = HDA_CODEC_ALC271, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_AO725_SUBVENDOR), PIN_SUBVENDOR(ACER_AO756_SUBVENDOR), PIN_SUBVENDOR(ACER_E1_472_SUBVENDOR), PIN_SUBVENDOR(ACER_E1_572_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(20, "as=1 misc=1 ctype=ATAPI device=Speaker loc=Onboard conn=Fixed"), PIN_PATCH_STRING(25, "as=2 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_STRING(27, "seq=15 as=2 misc=1 ctype=Analog device=Mic loc=Onboard conn=Fixed"), PIN_PATCH_HP_OUT(33), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC280 ****/ .id = HDA_CODEC_ALC280, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(HP_2272ID_SUBVENDOR), PIN_SUBVENDOR(HP_2273ID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(27, "as=2 color=Black ctype=1/8 loc=Ext-Rear"), PIN_PATCH_HPMIC_WITH_DETECT(26), PIN_PATCH_STRING(24, "seq=15 as=3 color=Black ctype=1/8 device=Line-in loc=Ext-Rear"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC282 ****/ .id = HDA_CODEC_ALC282, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_V5_573G_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(18, "as=3 misc=1 ctype=Digital device=Mic loc=Internal conn=Fixed"), PIN_PATCH_STRING(20, "as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), PIN_PATCH_STRING(23, "seq=8 conn=None"), PIN_PATCH_NOT_APPLICABLE(24), PIN_PATCH_JACK_WO_DETECT(25), PIN_PATCH_NOT_APPLICABLE(26), PIN_PATCH_NOT_APPLICABLE(27), PIN_PATCH_STRING(29, "seq=13 as=2 misc=11 color=Pink ctype=DIN device=Other conn=None"), PIN_PATCH_NOT_APPLICABLE(30), PIN_PATCH_STRING(33, "seq=15 as=1 color=Black ctype=1/8 device=Headphones loc=Left"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC285 ****/ .id = HDA_CODEC_ALC285, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LENOVO_X120KH_SUBVENDOR), PIN_SUBVENDOR(LENOVO_X120QD_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(33, "seq=15 as=1 color=Black ctype=1/8 device=Headphones loc=Left"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC286 ****/ .id = HDA_CODEC_ALC286, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(SONY_VAIO_P11_SUBVENDOR), PIN_SUBVENDOR(SONY_VAIO_P13_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_JACK_WO_DETECT(25), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC287 ****/ .id = HDA_CODEC_ALC287, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LENOVO_X1CRBNG11_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_NOT_APPLICABLE(20), PIN_PATCH_STRING(33, "as=1 seq=15 device=Headphones loc=Right"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC288 ****/ .id = HDA_CODEC_ALC288, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(DELL_E7240_SUBVENDOR), { } }, .pin_patches = pin_patches_dell_xps_jack }, { } } }, { /**** CODEC: HDA_CODEC_ALC290 ****/ .id = HDA_CODEC_ALC290, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(DELL_V5470_SUBVENDOR), PIN_SUBVENDOR(DELL_V5470_1_SUBVENDOR), PIN_SUBVENDOR(DELL_V5480_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(18, "as=4 misc=1 ctype=Digital device=Mic loc=Internal conn=Fixed"), PIN_PATCH_STRING(20, "as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), PIN_PATCH_STRING(21, "seq=15 as=1 color=Green ctype=1/8 device=Headphones loc=Front"), PIN_PATCH_STRING(23, "seq=2 as=1 misc=1 ctype=Analog device=Speaker loc=Internal conn=Fixed"), PIN_PATCH_JACK_WO_DETECT(26), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC292 ****/ .id = HDA_CODEC_ALC292, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LENOVO_X120BS_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(21, "as=1 seq=15"), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC293 ****/ .id = HDA_CODEC_ALC293, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(DELL_064AID_SUBVENDOR), PIN_SUBVENDOR(DELL_064BID_SUBVENDOR), PIN_SUBVENDOR(DELL_06D9ID_SUBVENDOR), PIN_SUBVENDOR(DELL_06DAID_SUBVENDOR), PIN_SUBVENDOR(DELL_06DBID_SUBVENDOR), PIN_SUBVENDOR(DELL_06DDID_SUBVENDOR), PIN_SUBVENDOR(DELL_06DEID_SUBVENDOR), PIN_SUBVENDOR(DELL_06DFID_SUBVENDOR), PIN_SUBVENDOR(DELL_06E0ID_SUBVENDOR), PIN_SUBVENDOR(DELL_164AID_SUBVENDOR), PIN_SUBVENDOR(DELL_164BID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_HPMIC_WO_DETECT(24), PIN_PATCH_JACK_WO_DETECT(26), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC298 ****/ .id = HDA_CODEC_ALC298, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(DELL_XPS9560_SUBVENDOR), { } }, .pin_patches = pin_patches_dell_xps_jack }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LENOVO_ALL_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_DOCK_LINE_OUT(23), PIN_PATCH_HP_OUT(33), { } }, }, { } } }, { /**** CODEC: HDA_CODEC_ALC861 ****/ .id = HDA_CODEC_ALC861, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_W6F_SUBVENDOR), { } }, .pin_patches = pin_patches_asus_w6f }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(UNIWILL_9075_SUBVENDOR), { } }, .pin_patches = pin_patches_uniwill_9075 }, { } } }, { /**** CODEC: HDA_CODEC_ALC880 ****/ .id = HDA_CODEC_ALC880, .patches = (struct model_pin_patch_t[]){ { // old patch .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LG_LW20_SUBVENDOR), { } }, .pin_patches = pin_patches_lg_lw20 }, { // old patch .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(CLEVO_D900T_SUBVENDOR), PIN_SUBVENDOR(ASUS_M5200_SUBVENDOR), { } }, .pin_patches = pin_patches_clevo_d900t_asus_m5200 }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LG_M1_SUBVENDOR), PIN_SUBVENDOR(LG_P1_SUBVENDOR), PIN_SUBVENDOR(LG_W1_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_NOT_APPLICABLE(22), PIN_PATCH_NOT_APPLICABLE(24), PIN_PATCH_NOT_APPLICABLE(26), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(COEUS_G610P_SUBVENDOR), PIN_SUBVENDOR(ARIMA_W810_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_NOT_APPLICABLE(23), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(FS_AMILO_M1437_SUBVENDOR), PIN_SUBVENDOR(FS_AMILO_M1451G_SUBVENDOR), PIN_SUBVENDOR(FS_AMILO_PI1556_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_HP_OUT(20), PIN_PATCH_SPEAKER(21), PIN_PATCH_BASS_SPEAKER(22), PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_NOT_APPLICABLE(24), PIN_PATCH_MIC_IN(25), PIN_PATCH_NOT_APPLICABLE(26), PIN_PATCH_NOT_APPLICABLE(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_NOT_APPLICABLE(30), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(UNIWILL_9054_SUBVENDOR), PIN_SUBVENDOR(FS_AMILO_XI1526_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_HP_OUT(20), PIN_PATCH_SPEAKER(21), PIN_PATCH_NOT_APPLICABLE(22), PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_NOT_APPLICABLE(24), PIN_PATCH_MIC_IN(25), PIN_PATCH_NOT_APPLICABLE(26), PIN_PATCH_NOT_APPLICABLE(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_SPDIF_OUT(30), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(LG_LW25_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(26, "seq=15 as=4 misc=4 color=Blue ctype=1/8 device=Line-in loc=Rear"), PIN_PATCH_STRING(27, "seq=15 as=3 color=Green ctype=1/8 device=Headphones loc=Left"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(UNIWILL_9070_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_HP(20), PIN_PATCH_SPEAKER(21), PIN_PATCH_BASS_SPEAKER(22), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(UNIWILL_9050_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_NOT_APPLICABLE(25), PIN_PATCH_NOT_APPLICABLE(27), PIN_PATCH_NOT_APPLICABLE(31), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_Z71V_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_SPEAKER(20), PIN_PATCH_HP(21), PIN_PATCH_NOT_APPLICABLE(22), PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_MIC_IN(24), PIN_PATCH_NOT_APPLICABLE(25), PIN_PATCH_LINE_IN(26), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ASUS_W5A_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_HP(20), PIN_PATCH_NOT_APPLICABLE(21), PIN_PATCH_NOT_APPLICABLE(22), PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_MIC_INTERNAL(24), PIN_PATCH_NOT_APPLICABLE(25), PIN_PATCH_NOT_APPLICABLE(26), PIN_PATCH_NOT_APPLICABLE(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=ATAPI device=SPDIF-out loc=Lid-In conn=Fixed"), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_E310ID_SUBVENDOR), PIN_SUBVENDOR(SONY_81A0ID_SUBVENDOR), PIN_SUBVENDOR(SONY_81D6ID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_LINE_OUT(20), PIN_PATCH_NOT_APPLICABLE(21), PIN_PATCH_NOT_APPLICABLE(22), PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_HP(25), PIN_PATCH_LINE_IN(26), PIN_PATCH_MIC_FRONT(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_NOT_APPLICABLE(30), PIN_PATCH_NOT_APPLICABLE(31), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_0070ID_SUBVENDOR), PIN_SUBVENDOR(ACER_E309ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_D402ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_E305ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_E308ID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_LINE_OUT(20), PIN_PATCH_NOT_APPLICABLE(21), PIN_PATCH_NOT_APPLICABLE(22), PIN_PATCH_NOT_APPLICABLE(23), PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_HP(25), PIN_PATCH_LINE_IN(26), PIN_PATCH_MIC_FRONT(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), PIN_PATCH_NOT_APPLICABLE(31), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(GATEWAY_3032ID_SUBVENDOR), PIN_SUBVENDOR(GATEWAY_3033ID_SUBVENDOR), PIN_SUBVENDOR(GATEWAY_4039ID_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_LINE_OUT(20), PIN_PATCH_NOT_APPLICABLE(21), PIN_PATCH_CLFE(22), PIN_PATCH_SURROUND(23), PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_HP(25), PIN_PATCH_LINE_IN(26), PIN_PATCH_MIC_FRONT(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_NOT_APPLICABLE(30), PIN_PATCH_NOT_APPLICABLE(31), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(COEUS_A880ID_SUBVENDOR), PIN_SUBVENDOR(BIOSTAR_8202ID_SUBVENDOR), PIN_SUBVENDOR(EPOX_400DID_SUBVENDOR), PIN_SUBVENDOR(EPOX_EP5LDA_SUBVENDOR), PIN_SUBVENDOR(INTEL_A100ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_D400ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_D401ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_E224ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_E400ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_E401ID_SUBVENDOR), PIN_SUBVENDOR(INTEL_E402ID_SUBVENDOR), PIN_SUBVENDOR(AOPEN_I915GMMHFS_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_LINE_OUT(20), PIN_PATCH_NOT_APPLICABLE(21), PIN_PATCH_CLFE(22), PIN_PATCH_SURROUND(23), PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_HP(25), PIN_PATCH_LINE_IN(26), PIN_PATCH_MIC_FRONT(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), PIN_PATCH_NOT_APPLICABLE(31), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_APFV_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_LINE_OUT(20), PIN_PATCH_SURROUND(21), PIN_PATCH_CLFE(22), PIN_PATCH_STRING(23, "seq=4 as=1 misc=4 color=Grey ctype=1/8 loc=Rear"), PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_MIC_FRONT(25), PIN_PATCH_LINE_IN(26), PIN_PATCH_HP(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_NOT_APPLICABLE(30), PIN_PATCH_NOT_APPLICABLE(31), { } } }, { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(ACER_0077ID_SUBVENDOR), PIN_SUBVENDOR(ACER_0078ID_SUBVENDOR), PIN_SUBVENDOR(ACER_0087ID_SUBVENDOR), PIN_SUBVENDOR(SHUTTLE_ST20G5_SUBVENDOR), PIN_SUBVENDOR(GB_K8_SUBVENDOR), PIN_SUBVENDOR(MSI_1150ID_SUBVENDOR), PIN_SUBVENDOR(FIC_P4M_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_LINE_OUT(20), PIN_PATCH_SURROUND(21), PIN_PATCH_CLFE(22), PIN_PATCH_STRING(23, "seq=4 as=1 misc=4 color=Grey ctype=1/8 loc=Rear"), PIN_PATCH_STRING(24, "as=3 misc=12 color=Pink ctype=1/8 device=Mic loc=Rear"), PIN_PATCH_MIC_FRONT(25), PIN_PATCH_LINE_IN(26), PIN_PATCH_HP(27), PIN_PATCH_NOT_APPLICABLE(28), PIN_PATCH_NOT_APPLICABLE(29), PIN_PATCH_STRING(30, "seq=14 as=1 misc=1 color=Black ctype=RCA device=SPDIF-out loc=Rear"), PIN_PATCH_NOT_APPLICABLE(31), { } } }, { } } }, { /**** CODEC: HDA_CODEC_ALC883 ****/ .id = HDA_CODEC_ALC883, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(MSI_MS034A_SUBVENDOR), { } }, .pin_patches = pin_patches_msi_ms034a }, { } } }, { /**** CODEC: HDA_CODEC_ALC892 ****/ .id = HDA_CODEC_ALC892, .patches = (struct model_pin_patch_t[]){ { .models = (struct pin_machine_model_t[]){ PIN_SUBVENDOR(INTEL_DH87RL_SUBVENDOR), { } }, .pin_patches = (struct pin_patch_t[]){ PIN_PATCH_STRING(27, "as=1 seq=15"), { } } }, { } } } }; #endif /* PIN_PATCH_REALTEK_H */