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