xref: /linux/sound/pci/hda/ideapad_s740_helper.c (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 // SPDX-License-Identifier: GPL-2.0
2 /* Fixes for Lenovo Ideapad S740, to be included from codec driver */
3 
4 static 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 
483 static 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