1// SPDX-License-Identifier: GPL-2.0
2/* Fixes for Lenovo Ideapad S740, to be included from codec driver */
3
4static const struct hda_verb alc285_ideapad_s740_coefs[] = {
5{ 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
6{ 0x20, AC_VERB_SET_PROC_COEF, 0x0320 },
7{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
8{ 0x20, AC_VERB_SET_PROC_COEF, 0x0041 },
9{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
10{ 0x20, AC_VERB_SET_PROC_COEF, 0x0041 },
11{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
12{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
13{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
14{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
15{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
16{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
17{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
18{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
19{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
20{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
21{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
22{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
23{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
24{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
25{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
26{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f },
27{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
28{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
29{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
30{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
31{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f },
32{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
33{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
34{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
35{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
36{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
37{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
38{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
39{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
40{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
41{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
42{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
43{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
44{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
45{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
46{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
47{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
48{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
49{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
50{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c },
51{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
52{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 },
53{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
54{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
55{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c },
56{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
57{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 },
58{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
59{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
60{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
61{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
62{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c },
63{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
64{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a },
65{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
66{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
67{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c },
68{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
69{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a },
70{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
71{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
72{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
73{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
74{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f },
75{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
76{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 },
77{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
78{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
79{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f },
80{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
81{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 },
82{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
83{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
84{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
85{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
86{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
87{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
88{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 },
89{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
90{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
91{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
92{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
93{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 },
94{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
95{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
96{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
97{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
98{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 },
99{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
100{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 },
101{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
102{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
103{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 },
104{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
105{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 },
106{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
107{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
108{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
109{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
110{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c },
111{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
112{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c },
113{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
114{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
115{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c },
116{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
117{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c },
118{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
119{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
120{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
121{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
122{ 0x20, AC_VERB_SET_PROC_COEF, 0x001d },
123{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
124{ 0x20, AC_VERB_SET_PROC_COEF, 0x004e },
125{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
126{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
127{ 0x20, AC_VERB_SET_PROC_COEF, 0x001d },
128{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
129{ 0x20, AC_VERB_SET_PROC_COEF, 0x004e },
130{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
131{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
132{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
133{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
134{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b },
135{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
136{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
137{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
138{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
139{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b },
140{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
141{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
142{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
143{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
144{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
145{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
146{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 },
147{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
148{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 },
149{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
150{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
151{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 },
152{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
153{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 },
154{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
155{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
156{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
157{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
158{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 },
159{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
160{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 },
161{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
162{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
163{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 },
164{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
165{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 },
166{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
167{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
168{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
169{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
170{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a },
171{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
172{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 },
173{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
174{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
175{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a },
176{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
177{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 },
178{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
179{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
180{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
181{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
182{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 },
183{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
184{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 },
185{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
186{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
187{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 },
188{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
189{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 },
190{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
191{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
192{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
193{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
194{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 },
195{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
196{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
197{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
198{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
199{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 },
200{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
201{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
202{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
203{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
204{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
205{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
206{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
207{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
208{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
209{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
210{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
211{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
212{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
213{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
214{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
215{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
216{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
217{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
218{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 },
219{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
220{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 },
221{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
222{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
223{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 },
224{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
225{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 },
226{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
227{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
228{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
229{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
230{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 },
231{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
232{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
233{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
234{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
235{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 },
236{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
237{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
238{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
239{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
240{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
241{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
242{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 },
243{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
244{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
245{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
246{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
247{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 },
248{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
249{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
250{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
251{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
252{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 },
253{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 },
254{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 },
255{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
256{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
257{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
258{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
259{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
260{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
261{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
262{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
263{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
264{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
265{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
266{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
267{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
268{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
269{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
270{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f },
271{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
272{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
273{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
274{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
275{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f },
276{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
277{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
278{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
279{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
280{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
281{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
282{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
283{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
284{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
285{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
286{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
287{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
288{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
289{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
290{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
291{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
292{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
293{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
294{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c },
295{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
296{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 },
297{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
298{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
299{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c },
300{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
301{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 },
302{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
303{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
304{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
305{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
306{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c },
307{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
308{ 0x20, AC_VERB_SET_PROC_COEF, 0x002a },
309{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
310{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
311{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c },
312{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
313{ 0x20, AC_VERB_SET_PROC_COEF, 0x002a },
314{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
315{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
316{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
317{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
318{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f },
319{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
320{ 0x20, AC_VERB_SET_PROC_COEF, 0x0046 },
321{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
322{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
323{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f },
324{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
325{ 0x20, AC_VERB_SET_PROC_COEF, 0x0046 },
326{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
327{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
328{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
329{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
330{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
331{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
332{ 0x20, AC_VERB_SET_PROC_COEF, 0x0044 },
333{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
334{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
335{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
336{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
337{ 0x20, AC_VERB_SET_PROC_COEF, 0x0044 },
338{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
339{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
340{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
341{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
342{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 },
343{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
344{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 },
345{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
346{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
347{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 },
348{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
349{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 },
350{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
351{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
352{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
353{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
354{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c },
355{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
356{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c },
357{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
358{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
359{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c },
360{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
361{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c },
362{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
363{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
364{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
365{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
366{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
367{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
368{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b },
369{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
370{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
371{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
372{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
373{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b },
374{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
375{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
376{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
377{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
378{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
379{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
380{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 },
381{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
382{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 },
383{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
384{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
385{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 },
386{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
387{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 },
388{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
389{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
390{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
391{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
392{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 },
393{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
394{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 },
395{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
396{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
397{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 },
398{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
399{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 },
400{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
401{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
402{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
403{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
404{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a },
405{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
406{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 },
407{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
408{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
409{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a },
410{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
411{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 },
412{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
413{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
414{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
415{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
416{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 },
417{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
418{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 },
419{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
420{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
421{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 },
422{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
423{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 },
424{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
425{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
426{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
427{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
428{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 },
429{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
430{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
431{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
432{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
433{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 },
434{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
435{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 },
436{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
437{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
438{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
439{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
440{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
441{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
442{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
443{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
444{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
445{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
446{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
447{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 },
448{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
449{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
450{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
451{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
452{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 },
453{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
454{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 },
455{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
456{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
457{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 },
458{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
459{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 },
460{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
461{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
462{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
463{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
464{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 },
465{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
466{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
467{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
468{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
469{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 },
470{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
471{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 },
472{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
473{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
474{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 },
475{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
476{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 },
477{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
478{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 },
479{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 },
480{}
481};
482
483static void alc285_fixup_ideapad_s740_coef(struct hda_codec *codec,
484					   const struct hda_fixup *fix,
485					   int action)
486{
487	switch (action) {
488	case HDA_FIXUP_ACT_PRE_PROBE:
489		snd_hda_add_verbs(codec, alc285_ideapad_s740_coefs);
490		break;
491	}
492}
493