summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/clk/clk_mclk.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/clk/clk_mclk.c')
-rw-r--r--drivers/gpu/nvgpu/clk/clk_mclk.c2499
1 files changed, 2499 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/clk/clk_mclk.c b/drivers/gpu/nvgpu/clk/clk_mclk.c
new file mode 100644
index 00000000..06ff9082
--- /dev/null
+++ b/drivers/gpu/nvgpu/clk/clk_mclk.c
@@ -0,0 +1,2499 @@
1/*
2 * Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 */
13
14#include "gk20a/gk20a.h"
15#include <linux/delay.h>
16#include "pmuif/gpmuifseq.h"
17#include "gm206/bios_gm206.h"
18#include "gk20a/pmu_gk20a.h"
19#include "gk20a/hw_pwr_gk20a.h"
20#include "gp106/hw_fb_gp106.h"
21
22#include "include/bios.h"
23
24#define VREG_COUNT 24
25
26struct memory_link_training_pattern {
27 u32 regaddr;
28 u32 writeval;
29};
30
31static struct memory_link_training_pattern memory_pattern_reglist[] = {
32 {0x9a0968, 0x0},
33 {0x9a0920, 0x0},
34 {0x9a0918, 0x0},
35 {0x9a0920, 0x100},
36 {0x9a0918, 0x0},
37 {0x9a096c, 0x0},
38 {0x9a0924, 0x0},
39 {0x9a091c, 0x0},
40 {0x9a0924, 0x100},
41 {0x9a091c, 0x0},
42 {0x9a0968, 0x100},
43 {0x9a0920, 0xff},
44 {0x9a0918, 0xffffffff},
45 {0x9a0920, 0x1ff},
46 {0x9a0918, 0xffffffff},
47 {0x9a096c, 0x100},
48 {0x9a0924, 0xff},
49 {0x9a091c, 0xffffffff},
50 {0x9a0924, 0x1ff},
51 {0x9a091c, 0xffffffff},
52 {0x9a0968, 0x200},
53 {0x9a0920, 0xff},
54 {0x9a0918, 0x55555555},
55 {0x9a0920, 0x1ff},
56 {0x9a0918, 0x55555555},
57 {0x9a096c, 0x200},
58 {0x9a0924, 0xff},
59 {0x9a091c, 0x55555555},
60 {0x9a0924, 0x1ff},
61 {0x9a091c, 0x55555555},
62 {0x9a0968, 0x300},
63 {0x9a0920, 0x0},
64 {0x9a0918, 0xaaaaaaaa},
65 {0x9a0920, 0x100},
66 {0x9a0918, 0xaaaaaaaa},
67 {0x9a096c, 0x300},
68 {0x9a0924, 0x0},
69 {0x9a091c, 0xaaaaaaaa},
70 {0x9a0924, 0x100},
71 {0x9a091c, 0xaaaaaaaa},
72 {0x9a0968, 0x400},
73 {0x9a0920, 0xff},
74 {0x9a0918, 0x33333333},
75 {0x9a0920, 0x1ff},
76 {0x9a0918, 0x33333333},
77 {0x9a096c, 0x400},
78 {0x9a0924, 0xff},
79 {0x9a091c, 0x33333333},
80 {0x9a0924, 0x1ff},
81 {0x9a091c, 0x33333333},
82 {0x9a0968, 0x500},
83 {0x9a0920, 0x0},
84 {0x9a0918, 0xcccccccc},
85 {0x9a0920, 0x100},
86 {0x9a0918, 0xcccccccc},
87 {0x9a096c, 0x500},
88 {0x9a0924, 0x0},
89 {0x9a091c, 0xcccccccc},
90 {0x9a0924, 0x100},
91 {0x9a091c, 0xcccccccc},
92 {0x9a0968, 0x600},
93 {0x9a0920, 0x0},
94 {0x9a0918, 0xf0f0f0f0},
95 {0x9a0920, 0x100},
96 {0x9a0918, 0xf0f0f0f0},
97 {0x9a096c, 0x600},
98 {0x9a0924, 0x0},
99 {0x9a091c, 0xf0f0f0f0},
100 {0x9a0924, 0x100},
101 {0x9a091c, 0xf0f0f0f0},
102 {0x9a0968, 0x700},
103 {0x9a0920, 0xff},
104 {0x9a0918, 0xf0f0f0f},
105 {0x9a0920, 0x1ff},
106 {0x9a0918, 0xf0f0f0f},
107 {0x9a096c, 0x700},
108 {0x9a0924, 0xff},
109 {0x9a091c, 0xf0f0f0f},
110 {0x9a0924, 0x1ff},
111 {0x9a091c, 0xf0f0f0f},
112 {0x9a0968, 0x800},
113 {0x9a0920, 0xff},
114 {0x9a0918, 0xff00ff},
115 {0x9a0920, 0x1ff},
116 {0x9a0918, 0xff00ff},
117 {0x9a096c, 0x800},
118 {0x9a0924, 0xff},
119 {0x9a091c, 0xff00ff},
120 {0x9a0924, 0x1ff},
121 {0x9a091c, 0xff00ff},
122 {0x9a0968, 0x900},
123 {0x9a0920, 0x0},
124 {0x9a0918, 0xff00ff00},
125 {0x9a0920, 0x100},
126 {0x9a0918, 0xff00ff00},
127 {0x9a096c, 0x900},
128 {0x9a0924, 0x0},
129 {0x9a091c, 0xff00ff00},
130 {0x9a0924, 0x100},
131 {0x9a091c, 0xff00ff00},
132 {0x9a0968, 0xa00},
133 {0x9a0920, 0xff},
134 {0x9a0918, 0xffff},
135 {0x9a0920, 0x1ff},
136 {0x9a0918, 0xffff},
137 {0x9a096c, 0xa00},
138 {0x9a0924, 0xff},
139 {0x9a091c, 0xffff},
140 {0x9a0924, 0x1ff},
141 {0x9a091c, 0xffff},
142 {0x9a0968, 0xb00},
143 {0x9a0920, 0x0},
144 {0x9a0918, 0xffff0000},
145 {0x9a0920, 0x100},
146 {0x9a0918, 0xffff0000},
147 {0x9a096c, 0xb00},
148 {0x9a0924, 0x0},
149 {0x9a091c, 0xffff0000},
150 {0x9a0924, 0x100},
151 {0x9a091c, 0xffff0000},
152 {0x9a0968, 0xc00},
153 {0x9a0920, 0x0},
154 {0x9a0918, 0x0},
155 {0x9a0920, 0x100},
156 {0x9a0918, 0x0},
157 {0x9a096c, 0xc00},
158 {0x9a0924, 0x0},
159 {0x9a091c, 0x0},
160 {0x9a0924, 0x100},
161 {0x9a091c, 0x0},
162 {0x9a0968, 0xd00},
163 {0x9a0920, 0xff},
164 {0x9a0918, 0xffffffff},
165 {0x9a0920, 0x1ff},
166 {0x9a0918, 0xffffffff},
167 {0x9a096c, 0xd00},
168 {0x9a0924, 0xff},
169 {0x9a091c, 0xffffffff},
170 {0x9a0924, 0x1ff},
171 {0x9a091c, 0xffffffff},
172 {0x9a0968, 0xe00},
173 {0x9a0920, 0xff},
174 {0x9a0918, 0x55555555},
175 {0x9a0920, 0x1ff},
176 {0x9a0918, 0x55555555},
177 {0x9a096c, 0xe00},
178 {0x9a0924, 0xff},
179 {0x9a091c, 0x55555555},
180 {0x9a0924, 0x1ff},
181 {0x9a091c, 0x55555555},
182 {0x9a0968, 0xf00},
183 {0x9a0920, 0x0},
184 {0x9a0918, 0xaaaaaaaa},
185 {0x9a0920, 0x100},
186 {0x9a0918, 0xaaaaaaaa},
187 {0x9a096c, 0xf00},
188 {0x9a0924, 0x0},
189 {0x9a091c, 0xaaaaaaaa},
190 {0x9a0924, 0x100},
191 {0x9a091c, 0xaaaaaaaa},
192 {0x9a0968, 0x1000},
193 {0x9a0920, 0xff},
194 {0x9a0918, 0x33333333},
195 {0x9a0920, 0x1ff},
196 {0x9a0918, 0x33333333},
197 {0x9a096c, 0x1000},
198 {0x9a0924, 0xff},
199 {0x9a091c, 0x33333333},
200 {0x9a0924, 0x1ff},
201 {0x9a091c, 0x33333333},
202 {0x9a0968, 0x1100},
203 {0x9a0920, 0x0},
204 {0x9a0918, 0xcccccccc},
205 {0x9a0920, 0x100},
206 {0x9a0918, 0xcccccccc},
207 {0x9a096c, 0x1100},
208 {0x9a0924, 0x0},
209 {0x9a091c, 0xcccccccc},
210 {0x9a0924, 0x100},
211 {0x9a091c, 0xcccccccc},
212 {0x9a0968, 0x1200},
213 {0x9a0920, 0x0},
214 {0x9a0918, 0xf0f0f0f0},
215 {0x9a0920, 0x100},
216 {0x9a0918, 0xf0f0f0f0},
217 {0x9a096c, 0x1200},
218 {0x9a0924, 0x0},
219 {0x9a091c, 0xf0f0f0f0},
220 {0x9a0924, 0x100},
221 {0x9a091c, 0xf0f0f0f0},
222 {0x9a0968, 0x1300},
223 {0x9a0920, 0xff},
224 {0x9a0918, 0xf0f0f0f},
225 {0x9a0920, 0x1ff},
226 {0x9a0918, 0xf0f0f0f},
227 {0x9a096c, 0x1300},
228 {0x9a0924, 0xff},
229 {0x9a091c, 0xf0f0f0f},
230 {0x9a0924, 0x1ff},
231 {0x9a091c, 0xf0f0f0f},
232 {0x9a0968, 0x1400},
233 {0x9a0920, 0xff},
234 {0x9a0918, 0xff00ff},
235 {0x9a0920, 0x1ff},
236 {0x9a0918, 0xff00ff},
237 {0x9a096c, 0x1400},
238 {0x9a0924, 0xff},
239 {0x9a091c, 0xff00ff},
240 {0x9a0924, 0x1ff},
241 {0x9a091c, 0xff00ff},
242 {0x9a0968, 0x1500},
243 {0x9a0920, 0x0},
244 {0x9a0918, 0xff00ff00},
245 {0x9a0920, 0x100},
246 {0x9a0918, 0xff00ff00},
247 {0x9a096c, 0x1500},
248 {0x9a0924, 0x0},
249 {0x9a091c, 0xff00ff00},
250 {0x9a0924, 0x100},
251 {0x9a091c, 0xff00ff00},
252 {0x9a0968, 0x1600},
253 {0x9a0920, 0xff},
254 {0x9a0918, 0xffff},
255 {0x9a0920, 0x1ff},
256 {0x9a0918, 0xffff},
257 {0x9a096c, 0x1600},
258 {0x9a0924, 0xff},
259 {0x9a091c, 0xffff},
260 {0x9a0924, 0x1ff},
261 {0x9a091c, 0xffff},
262 {0x9a0968, 0x1700},
263 {0x9a0920, 0x0},
264 {0x9a0918, 0xffff0000},
265 {0x9a0920, 0x100},
266 {0x9a0918, 0xffff0000},
267 {0x9a096c, 0x1700},
268 {0x9a0924, 0x0},
269 {0x9a091c, 0xffff0000},
270 {0x9a0924, 0x100},
271 {0x9a091c, 0xffff0000},
272 {0x9a0968, 0x1800},
273 {0x9a0920, 0x0},
274 {0x9a0918, 0x0},
275 {0x9a0920, 0x100},
276 {0x9a0918, 0x0},
277 {0x9a096c, 0x1800},
278 {0x9a0924, 0x0},
279 {0x9a091c, 0x0},
280 {0x9a0924, 0x100},
281 {0x9a091c, 0x0},
282 {0x9a0968, 0x1900},
283 {0x9a0920, 0xff},
284 {0x9a0918, 0xffffffff},
285 {0x9a0920, 0x1ff},
286 {0x9a0918, 0xffffffff},
287 {0x9a096c, 0x1900},
288 {0x9a0924, 0xff},
289 {0x9a091c, 0xffffffff},
290 {0x9a0924, 0x1ff},
291 {0x9a091c, 0xffffffff},
292 {0x9a0968, 0x1a00},
293 {0x9a0920, 0xff},
294 {0x9a0918, 0x55555555},
295 {0x9a0920, 0x1ff},
296 {0x9a0918, 0x55555555},
297 {0x9a096c, 0x1a00},
298 {0x9a0924, 0xff},
299 {0x9a091c, 0x55555555},
300 {0x9a0924, 0x1ff},
301 {0x9a091c, 0x55555555},
302 {0x9a0968, 0x1b00},
303 {0x9a0920, 0x0},
304 {0x9a0918, 0xaaaaaaaa},
305 {0x9a0920, 0x100},
306 {0x9a0918, 0xaaaaaaaa},
307 {0x9a096c, 0x1b00},
308 {0x9a0924, 0x0},
309 {0x9a091c, 0xaaaaaaaa},
310 {0x9a0924, 0x100},
311 {0x9a091c, 0xaaaaaaaa},
312 {0x9a0968, 0x1c00},
313 {0x9a0920, 0xff},
314 {0x9a0918, 0x33333333},
315 {0x9a0920, 0x1ff},
316 {0x9a0918, 0x33333333},
317 {0x9a096c, 0x1c00},
318 {0x9a0924, 0xff},
319 {0x9a091c, 0x33333333},
320 {0x9a0924, 0x1ff},
321 {0x9a091c, 0x33333333},
322 {0x9a0968, 0x1d00},
323 {0x9a0920, 0x0},
324 {0x9a0918, 0xcccccccc},
325 {0x9a0920, 0x100},
326 {0x9a0918, 0xcccccccc},
327 {0x9a096c, 0x1d00},
328 {0x9a0924, 0x0},
329 {0x9a091c, 0xcccccccc},
330 {0x9a0924, 0x100},
331 {0x9a091c, 0xcccccccc},
332 {0x9a0968, 0x1e00},
333 {0x9a0920, 0x0},
334 {0x9a0918, 0xf0f0f0f0},
335 {0x9a0920, 0x100},
336 {0x9a0918, 0xf0f0f0f0},
337 {0x9a096c, 0x1e00},
338 {0x9a0924, 0x0},
339 {0x9a091c, 0xf0f0f0f0},
340 {0x9a0924, 0x100},
341 {0x9a091c, 0xf0f0f0f0},
342 {0x9a0968, 0x1f00},
343 {0x9a0920, 0xff},
344 {0x9a0918, 0xf0f0f0f},
345 {0x9a0920, 0x1ff},
346 {0x9a0918, 0xf0f0f0f},
347 {0x9a096c, 0x1f00},
348 {0x9a0924, 0xff},
349 {0x9a091c, 0xf0f0f0f},
350 {0x9a0924, 0x1ff},
351 {0x9a091c, 0xf0f0f0f},
352 {0x9a0968, 0x2000},
353 {0x9a0920, 0xff},
354 {0x9a0918, 0xff00ff},
355 {0x9a0920, 0x1ff},
356 {0x9a0918, 0xff00ff},
357 {0x9a096c, 0x2000},
358 {0x9a0924, 0xff},
359 {0x9a091c, 0xff00ff},
360 {0x9a0924, 0x1ff},
361 {0x9a091c, 0xff00ff},
362 {0x9a0968, 0x2100},
363 {0x9a0920, 0x0},
364 {0x9a0918, 0xff00ff00},
365 {0x9a0920, 0x100},
366 {0x9a0918, 0xff00ff00},
367 {0x9a096c, 0x2100},
368 {0x9a0924, 0x0},
369 {0x9a091c, 0xff00ff00},
370 {0x9a0924, 0x100},
371 {0x9a091c, 0xff00ff00},
372 {0x9a0968, 0x2200},
373 {0x9a0920, 0xff},
374 {0x9a0918, 0xffff},
375 {0x9a0920, 0x1ff},
376 {0x9a0918, 0xffff},
377 {0x9a096c, 0x2200},
378 {0x9a0924, 0xff},
379 {0x9a091c, 0xffff},
380 {0x9a0924, 0x1ff},
381 {0x9a091c, 0xffff},
382 {0x9a0968, 0x2300},
383 {0x9a0920, 0x0},
384 {0x9a0918, 0xffff0000},
385 {0x9a0920, 0x100},
386 {0x9a0918, 0xffff0000},
387 {0x9a096c, 0x2300},
388 {0x9a0924, 0x0},
389 {0x9a091c, 0xffff0000},
390 {0x9a0924, 0x100},
391 {0x9a091c, 0xffff0000},
392 {0x9a0968, 0x2400},
393 {0x9a0920, 0x0},
394 {0x9a0918, 0x0},
395 {0x9a0920, 0x100},
396 {0x9a0918, 0x0},
397 {0x9a096c, 0x2400},
398 {0x9a0924, 0x0},
399 {0x9a091c, 0x0},
400 {0x9a0924, 0x100},
401 {0x9a091c, 0x0},
402 {0x9a0968, 0x2500},
403 {0x9a0920, 0xff},
404 {0x9a0918, 0xffffffff},
405 {0x9a0920, 0x1ff},
406 {0x9a0918, 0xffffffff},
407 {0x9a096c, 0x2500},
408 {0x9a0924, 0xff},
409 {0x9a091c, 0xffffffff},
410 {0x9a0924, 0x1ff},
411 {0x9a091c, 0xffffffff},
412 {0x9a0968, 0x2600},
413 {0x9a0920, 0xff},
414 {0x9a0918, 0x55555555},
415 {0x9a0920, 0x1ff},
416 {0x9a0918, 0x55555555},
417 {0x9a096c, 0x2600},
418 {0x9a0924, 0xff},
419 {0x9a091c, 0x55555555},
420 {0x9a0924, 0x1ff},
421 {0x9a091c, 0x55555555},
422 {0x9a0968, 0x2700},
423 {0x9a0920, 0x0},
424 {0x9a0918, 0xaaaaaaaa},
425 {0x9a0920, 0x100},
426 {0x9a0918, 0xaaaaaaaa},
427 {0x9a096c, 0x2700},
428 {0x9a0924, 0x0},
429 {0x9a091c, 0xaaaaaaaa},
430 {0x9a0924, 0x100},
431 {0x9a091c, 0xaaaaaaaa},
432 {0x9a0968, 0x2800},
433 {0x9a0920, 0xff},
434 {0x9a0918, 0x33333333},
435 {0x9a0920, 0x1ff},
436 {0x9a0918, 0x33333333},
437 {0x9a096c, 0x2800},
438 {0x9a0924, 0xff},
439 {0x9a091c, 0x33333333},
440 {0x9a0924, 0x1ff},
441 {0x9a091c, 0x33333333},
442 {0x9a0968, 0x2900},
443 {0x9a0920, 0x0},
444 {0x9a0918, 0xcccccccc},
445 {0x9a0920, 0x100},
446 {0x9a0918, 0xcccccccc},
447 {0x9a096c, 0x2900},
448 {0x9a0924, 0x0},
449 {0x9a091c, 0xcccccccc},
450 {0x9a0924, 0x100},
451 {0x9a091c, 0xcccccccc},
452 {0x9a0968, 0x2a00},
453 {0x9a0920, 0x0},
454 {0x9a0918, 0xf0f0f0f0},
455 {0x9a0920, 0x100},
456 {0x9a0918, 0xf0f0f0f0},
457 {0x9a096c, 0x2a00},
458 {0x9a0924, 0x0},
459 {0x9a091c, 0xf0f0f0f0},
460 {0x9a0924, 0x100},
461 {0x9a091c, 0xf0f0f0f0},
462 {0x9a0968, 0x2b00},
463 {0x9a0920, 0xff},
464 {0x9a0918, 0xf0f0f0f},
465 {0x9a0920, 0x1ff},
466 {0x9a0918, 0xf0f0f0f},
467 {0x9a096c, 0x2b00},
468 {0x9a0924, 0xff},
469 {0x9a091c, 0xf0f0f0f},
470 {0x9a0924, 0x1ff},
471 {0x9a091c, 0xf0f0f0f},
472 {0x9a0968, 0x2c00},
473 {0x9a0920, 0xff},
474 {0x9a0918, 0xff00ff},
475 {0x9a0920, 0x1ff},
476 {0x9a0918, 0xff00ff},
477 {0x9a096c, 0x2c00},
478 {0x9a0924, 0xff},
479 {0x9a091c, 0xff00ff},
480 {0x9a0924, 0x1ff},
481 {0x9a091c, 0xff00ff},
482 {0x9a0968, 0x2d00},
483 {0x9a0920, 0x0},
484 {0x9a0918, 0xff00ff00},
485 {0x9a0920, 0x100},
486 {0x9a0918, 0xff00ff00},
487 {0x9a096c, 0x2d00},
488 {0x9a0924, 0x0},
489 {0x9a091c, 0xff00ff00},
490 {0x9a0924, 0x100},
491 {0x9a091c, 0xff00ff00},
492 {0x9a0968, 0x2e00},
493 {0x9a0920, 0xff},
494 {0x9a0918, 0xffff},
495 {0x9a0920, 0x1ff},
496 {0x9a0918, 0xffff},
497 {0x9a096c, 0x2e00},
498 {0x9a0924, 0xff},
499 {0x9a091c, 0xffff},
500 {0x9a0924, 0x1ff},
501 {0x9a091c, 0xffff},
502 {0x9a0968, 0x2f00},
503 {0x9a0920, 0x0},
504 {0x9a0918, 0xffff0000},
505 {0x9a0920, 0x100},
506 {0x9a0918, 0xffff0000},
507 {0x9a096c, 0x2f00},
508 {0x9a0924, 0x0},
509 {0x9a091c, 0xffff0000},
510 {0x9a0924, 0x100},
511 {0x9a091c, 0xffff0000},
512 {0x9a0968, 0x0},
513 {0x9a0900, 0x0},
514 {0x9a0968, 0x1},
515 {0x9a0900, 0xffffffff},
516 {0x9a0968, 0x2},
517 {0x9a0900, 0x0},
518 {0x9a0968, 0x3},
519 {0x9a0900, 0xffffffff},
520 {0x9a0968, 0x4},
521 {0x9a0900, 0x0},
522 {0x9a0968, 0x5},
523 {0x9a0900, 0xffffffff},
524 {0x9a0968, 0x6},
525 {0x9a0900, 0x0},
526 {0x9a0968, 0x7},
527 {0x9a0900, 0xffffffff},
528 {0x9a0968, 0x8},
529 {0x9a0900, 0x0},
530 {0x9a0968, 0x9},
531 {0x9a0900, 0xffffffff},
532 {0x9a0968, 0xa},
533 {0x9a0900, 0x0},
534 {0x9a0968, 0xb},
535 {0x9a0900, 0xffffffff},
536 {0x9a0968, 0xc},
537 {0x9a0900, 0x0},
538 {0x9a0968, 0xd},
539 {0x9a0900, 0xffffffff},
540 {0x9a0968, 0xe},
541 {0x9a0900, 0x0},
542 {0x9a0968, 0xf},
543 {0x9a0900, 0xffffffff},
544 {0x9a0968, 0x10},
545 {0x9a0900, 0x55555555},
546 {0x9a0968, 0x11},
547 {0x9a0900, 0xaaaaaaaa},
548 {0x9a0968, 0x12},
549 {0x9a0900, 0x55555555},
550 {0x9a0968, 0x13},
551 {0x9a0900, 0xaaaaaaaa},
552 {0x9a0968, 0x14},
553 {0x9a0900, 0x55555555},
554 {0x9a0968, 0x15},
555 {0x9a0900, 0xaaaaaaaa},
556 {0x9a0968, 0x16},
557 {0x9a0900, 0x55555555},
558 {0x9a0968, 0x17},
559 {0x9a0900, 0xaaaaaaaa},
560 {0x9a0968, 0x18},
561 {0x9a0900, 0x55555555},
562 {0x9a0968, 0x19},
563 {0x9a0900, 0xaaaaaaaa},
564 {0x9a0968, 0x1a},
565 {0x9a0900, 0x55555555},
566 {0x9a0968, 0x1b},
567 {0x9a0900, 0xaaaaaaaa},
568 {0x9a0968, 0x1c},
569 {0x9a0900, 0x55555555},
570 {0x9a0968, 0x1d},
571 {0x9a0900, 0xaaaaaaaa},
572 {0x9a0968, 0x1e},
573 {0x9a0900, 0x55555555},
574 {0x9a0968, 0x1f},
575 {0x9a0900, 0xaaaaaaaa},
576 {0x9a0968, 0x20},
577 {0x9a0900, 0xffff},
578 {0x9a0968, 0x21},
579 {0x9a0900, 0xffff0000},
580 {0x9a0968, 0x22},
581 {0x9a0900, 0xffff},
582 {0x9a0968, 0x23},
583 {0x9a0900, 0xffff0000},
584 {0x9a0968, 0x24},
585 {0x9a0900, 0xffff},
586 {0x9a0968, 0x25},
587 {0x9a0900, 0xffff0000},
588 {0x9a0968, 0x26},
589 {0x9a0900, 0xffff},
590 {0x9a0968, 0x27},
591 {0x9a0900, 0xffff0000},
592 {0x9a0968, 0x28},
593 {0x9a0900, 0xffff},
594 {0x9a0968, 0x29},
595 {0x9a0900, 0xffff0000},
596 {0x9a0968, 0x2a},
597 {0x9a0900, 0xffff},
598 {0x9a0968, 0x2b},
599 {0x9a0900, 0xffff0000},
600 {0x9a0968, 0x2c},
601 {0x9a0900, 0xffff},
602 {0x9a0968, 0x2d},
603 {0x9a0900, 0xffff0000},
604 {0x9a0968, 0x2e},
605 {0x9a0900, 0xffff},
606 {0x9a0968, 0x2f},
607 {0x9a0900, 0xffff0000},
608 {0x9a0968, 0x30},
609 {0x9a0900, 0xff00ff},
610 {0x9a0968, 0x31},
611 {0x9a0900, 0xff00ff00},
612 {0x9a0968, 0x32},
613 {0x9a0900, 0xff00ff},
614 {0x9a0968, 0x33},
615 {0x9a0900, 0xff00ff00},
616 {0x9a0968, 0x34},
617 {0x9a0900, 0xff00ff},
618 {0x9a0968, 0x35},
619 {0x9a0900, 0xff00ff00},
620 {0x9a0968, 0x36},
621 {0x9a0900, 0xff00ff},
622 {0x9a0968, 0x37},
623 {0x9a0900, 0xff00ff00},
624 {0x9a0968, 0x38},
625 {0x9a0900, 0xff00ff},
626 {0x9a0968, 0x39},
627 {0x9a0900, 0xff00ff00},
628 {0x9a0968, 0x3a},
629 {0x9a0900, 0xff00ff},
630 {0x9a0968, 0x3b},
631 {0x9a0900, 0xff00ff00},
632 {0x9a0968, 0x3c},
633 {0x9a0900, 0xff00ff},
634 {0x9a0968, 0x3d},
635 {0x9a0900, 0xff00ff00},
636 {0x9a0968, 0x3e},
637 {0x9a0900, 0xff00ff},
638 {0x9a0968, 0x3f},
639 {0x9a0900, 0xff00ff00},
640 {0x9a0968, 0x40},
641 {0x9a0900, 0x0},
642 {0x9a0968, 0x41},
643 {0x9a0900, 0xffffffff},
644 {0x9a0968, 0x42},
645 {0x9a0900, 0x0},
646 {0x9a0968, 0x43},
647 {0x9a0900, 0xffffffff},
648 {0x9a0968, 0x44},
649 {0x9a0900, 0x0},
650 {0x9a0968, 0x45},
651 {0x9a0900, 0xffffffff},
652 {0x9a0968, 0x46},
653 {0x9a0900, 0x0},
654 {0x9a0968, 0x47},
655 {0x9a0900, 0xffffffff},
656 {0x9a0968, 0x48},
657 {0x9a0900, 0x0},
658 {0x9a0968, 0x49},
659 {0x9a0900, 0xffffffff},
660 {0x9a0968, 0x4a},
661 {0x9a0900, 0x0},
662 {0x9a0968, 0x4b},
663 {0x9a0900, 0xffffffff},
664 {0x9a0968, 0x4c},
665 {0x9a0900, 0x0},
666 {0x9a0968, 0x4d},
667 {0x9a0900, 0xffffffff},
668 {0x9a0968, 0x4e},
669 {0x9a0900, 0x0},
670 {0x9a0968, 0x4f},
671 {0x9a0900, 0xffffffff},
672 {0x9a0968, 0x50},
673 {0x9a0900, 0x55555555},
674 {0x9a0968, 0x51},
675 {0x9a0900, 0xaaaaaaaa},
676 {0x9a0968, 0x52},
677 {0x9a0900, 0x55555555},
678 {0x9a0968, 0x53},
679 {0x9a0900, 0xaaaaaaaa},
680 {0x9a0968, 0x54},
681 {0x9a0900, 0x55555555},
682 {0x9a0968, 0x55},
683 {0x9a0900, 0xaaaaaaaa},
684 {0x9a0968, 0x56},
685 {0x9a0900, 0x55555555},
686 {0x9a0968, 0x57},
687 {0x9a0900, 0xaaaaaaaa},
688 {0x9a0968, 0x58},
689 {0x9a0900, 0x55555555},
690 {0x9a0968, 0x59},
691 {0x9a0900, 0xaaaaaaaa},
692 {0x9a0968, 0x5a},
693 {0x9a0900, 0x55555555},
694 {0x9a0968, 0x5b},
695 {0x9a0900, 0xaaaaaaaa},
696 {0x9a0968, 0x5c},
697 {0x9a0900, 0x55555555},
698 {0x9a0968, 0x5d},
699 {0x9a0900, 0xaaaaaaaa},
700 {0x9a0968, 0x5e},
701 {0x9a0900, 0x55555555},
702 {0x9a0968, 0x5f},
703 {0x9a0900, 0x0},
704 {0x9a0968, 0x60},
705 {0x9a0900, 0xffffffff},
706 {0x9a0968, 0x61},
707 {0x9a0900, 0x0},
708 {0x9a0968, 0x62},
709 {0x9a0900, 0xffffffff},
710 {0x9a0968, 0x63},
711 {0x9a0900, 0x0},
712 {0x9a0968, 0x64},
713 {0x9a0900, 0xffffffff},
714 {0x9a0968, 0x65},
715 {0x9a0900, 0x0},
716 {0x9a0968, 0x66},
717 {0x9a0900, 0xffffffff},
718 {0x9a0968, 0x67},
719 {0x9a0900, 0x0},
720 {0x9a0968, 0x68},
721 {0x9a0900, 0xffffffff},
722 {0x9a0968, 0x69},
723 {0x9a0900, 0x0},
724 {0x9a0968, 0x6a},
725 {0x9a0900, 0xffffffff},
726 {0x9a0968, 0x6b},
727 {0x9a0900, 0x0},
728 {0x9a0968, 0x6c},
729 {0x9a0900, 0xffffffff},
730 {0x9a0968, 0x6d},
731 {0x9a0900, 0x0},
732 {0x9a0968, 0x6e},
733 {0x9a0900, 0xffffffff},
734 {0x9a0968, 0x6f},
735 {0x9a0900, 0x55555555},
736 {0x9a0968, 0x70},
737 {0x9a0900, 0xaaaaaaaa},
738 {0x9a0968, 0x71},
739 {0x9a0900, 0x55555555},
740 {0x9a0968, 0x72},
741 {0x9a0900, 0xaaaaaaaa},
742 {0x9a0968, 0x73},
743 {0x9a0900, 0x55555555},
744 {0x9a0968, 0x74},
745 {0x9a0900, 0xaaaaaaaa},
746 {0x9a0968, 0x75},
747 {0x9a0900, 0x55555555},
748 {0x9a0968, 0x76},
749 {0x9a0900, 0xaaaaaaaa},
750 {0x9a0968, 0x77},
751 {0x9a0900, 0x55555555},
752 {0x9a0968, 0x78},
753 {0x9a0900, 0xaaaaaaaa},
754 {0x9a0968, 0x79},
755 {0x9a0900, 0x55555555},
756 {0x9a0968, 0x7a},
757 {0x9a0900, 0xaaaaaaaa},
758 {0x9a0968, 0x7b},
759 {0x9a0900, 0x55555555},
760 {0x9a0968, 0x7c},
761 {0x9a0900, 0xaaaaaaaa},
762 {0x9a0968, 0x7d},
763 {0x9a0900, 0x55555555},
764 {0x9a0968, 0x7e},
765 {0x9a0900, 0xaaaaaaaa},
766 {0x9a0968, 0x7f},
767 {0x9a0900, 0xffff},
768 {0x9a0968, 0x80},
769 {0x9a0900, 0xffff0000},
770 {0x9a0968, 0x81},
771 {0x9a0900, 0xffff},
772 {0x9a0968, 0x82},
773 {0x9a0900, 0xffff0000},
774 {0x9a0968, 0x83},
775 {0x9a0900, 0xffff},
776 {0x9a0968, 0x84},
777 {0x9a0900, 0xffff0000},
778 {0x9a0968, 0x85},
779 {0x9a0900, 0xffff},
780 {0x9a0968, 0x86},
781 {0x9a0900, 0xffff0000},
782 {0x9a0968, 0x87},
783 {0x9a0900, 0xffff},
784 {0x9a0968, 0x88},
785 {0x9a0900, 0xffff0000},
786 {0x9a0968, 0x89},
787 {0x9a0900, 0xffff},
788 {0x9a0968, 0x8a},
789 {0x9a0900, 0xffff0000},
790 {0x9a0968, 0x8b},
791 {0x9a0900, 0xffff},
792 {0x9a0968, 0x8c},
793 {0x9a0900, 0xffff0000},
794 {0x9a0968, 0x8d},
795 {0x9a0900, 0xffff},
796 {0x9a0968, 0x8e},
797 {0x9a0900, 0xffff0000},
798 {0x9a0968, 0x8f},
799 {0x9a0900, 0xff00ff},
800 {0x9a0968, 0x90},
801 {0x9a0900, 0xff00ff00},
802 {0x9a0968, 0x91},
803 {0x9a0900, 0xff00ff},
804 {0x9a0968, 0x92},
805 {0x9a0900, 0xff00ff00},
806 {0x9a0968, 0x93},
807 {0x9a0900, 0xff00ff},
808 {0x9a0968, 0x94},
809 {0x9a0900, 0xff00ff00},
810 {0x9a0968, 0x95},
811 {0x9a0900, 0xff00ff},
812 {0x9a0968, 0x96},
813 {0x9a0900, 0xff00ff00},
814 {0x9a0968, 0x97},
815 {0x9a0900, 0xff00ff},
816 {0x9a0968, 0x98},
817 {0x9a0900, 0xff00ff00},
818 {0x9a0968, 0x99},
819 {0x9a0900, 0xff00ff},
820 {0x9a0968, 0x9a},
821 {0x9a0900, 0xff00ff00},
822 {0x9a0968, 0x9b},
823 {0x9a0900, 0xff00ff},
824 {0x9a0968, 0x9c},
825 {0x9a0900, 0xff00ff00},
826 {0x9a0968, 0x9d},
827 {0x9a0900, 0xff00ff},
828 {0x9a0968, 0x9e},
829 {0x9a0900, 0xff00ff00},
830 {0x9a0968, 0x9f},
831 {0x9a0900, 0x0},
832 {0x9a0968, 0xa0},
833 {0x9a0900, 0xffffffff},
834 {0x9a0968, 0xa1},
835 {0x9a0900, 0x0},
836 {0x9a0968, 0xa2},
837 {0x9a0900, 0xffffffff},
838 {0x9a0968, 0xa3},
839 {0x9a0900, 0x0},
840 {0x9a0968, 0xa4},
841 {0x9a0900, 0xffffffff},
842 {0x9a0968, 0xa5},
843 {0x9a0900, 0x0},
844 {0x9a0968, 0xa6},
845 {0x9a0900, 0xffffffff},
846 {0x9a0968, 0xa7},
847 {0x9a0900, 0x0},
848 {0x9a0968, 0xa8},
849 {0x9a0900, 0xffffffff},
850 {0x9a0968, 0xa9},
851 {0x9a0900, 0x0},
852 {0x9a0968, 0xaa},
853 {0x9a0900, 0xffffffff},
854 {0x9a0968, 0xab},
855 {0x9a0900, 0x0},
856 {0x9a0968, 0xac},
857 {0x9a0900, 0xffffffff},
858 {0x9a0968, 0xad},
859 {0x9a0900, 0x0},
860 {0x9a0968, 0xae},
861 {0x9a0900, 0xffffffff},
862 {0x9a0968, 0xaf},
863 {0x9a0900, 0x55555555},
864 {0x9a0968, 0xb0},
865 {0x9a0900, 0xaaaaaaaa},
866 {0x9a0968, 0xb1},
867 {0x9a0900, 0x55555555},
868 {0x9a0968, 0xb2},
869 {0x9a0900, 0xaaaaaaaa},
870 {0x9a0968, 0xb3},
871 {0x9a0900, 0x55555555},
872 {0x9a0968, 0xb4},
873 {0x9a0900, 0xaaaaaaaa},
874 {0x9a0968, 0xb5},
875 {0x9a0900, 0x55555555},
876 {0x9a0968, 0xb6},
877 {0x9a0900, 0xaaaaaaaa},
878 {0x9a0968, 0xb7},
879 {0x9a0900, 0x55555555},
880 {0x9a0968, 0xb8},
881 {0x9a0900, 0xaaaaaaaa},
882 {0x9a0968, 0xb9},
883 {0x9a0900, 0x55555555},
884 {0x9a0968, 0xba},
885 {0x9a0900, 0xaaaaaaaa},
886 {0x9a0968, 0xbb},
887 {0x9a0900, 0x55555555},
888 {0x9a0968, 0xbc},
889 {0x9a0900, 0xaaaaaaaa},
890 {0x9a0968, 0xbd},
891 {0x9a0900, 0x55555555},
892 {0x9a0968, 0xbe},
893 {0x9a0900, 0x0},
894 {0x9a0968, 0xbf},
895 {0x9a0900, 0xffffffff},
896 {0x9a0968, 0xc0},
897 {0x9a0900, 0x0},
898 {0x9a0968, 0xc1},
899 {0x9a0900, 0xffffffff},
900 {0x9a0968, 0xc2},
901 {0x9a0900, 0x0},
902 {0x9a0968, 0xc3},
903 {0x9a0900, 0xffffffff},
904 {0x9a0968, 0xc4},
905 {0x9a0900, 0x0},
906 {0x9a0968, 0xc5},
907 {0x9a0900, 0xffffffff},
908 {0x9a0968, 0xc6},
909 {0x9a0900, 0x0},
910 {0x9a0968, 0xc7},
911 {0x9a0900, 0xffffffff},
912 {0x9a0968, 0xc8},
913 {0x9a0900, 0x0},
914 {0x9a0968, 0xc9},
915 {0x9a0900, 0xffffffff},
916 {0x9a0968, 0xca},
917 {0x9a0900, 0x0},
918 {0x9a0968, 0xcb},
919 {0x9a0900, 0xffffffff},
920 {0x9a0968, 0xcc},
921 {0x9a0900, 0x0},
922 {0x9a0968, 0xcd},
923 {0x9a0900, 0xffffffff},
924 {0x9a0968, 0xce},
925 {0x9a0900, 0x55555555},
926 {0x9a0968, 0xcf},
927 {0x9a0900, 0xaaaaaaaa},
928 {0x9a0968, 0xd0},
929 {0x9a0900, 0x55555555},
930 {0x9a0968, 0xd1},
931 {0x9a0900, 0xaaaaaaaa},
932 {0x9a0968, 0xd2},
933 {0x9a0900, 0x55555555},
934 {0x9a0968, 0xd3},
935 {0x9a0900, 0xaaaaaaaa},
936 {0x9a0968, 0xd4},
937 {0x9a0900, 0x55555555},
938 {0x9a0968, 0xd5},
939 {0x9a0900, 0xaaaaaaaa},
940 {0x9a0968, 0xd6},
941 {0x9a0900, 0x55555555},
942 {0x9a0968, 0xd7},
943 {0x9a0900, 0xaaaaaaaa},
944 {0x9a0968, 0xd8},
945 {0x9a0900, 0x55555555},
946 {0x9a0968, 0xd9},
947 {0x9a0900, 0xaaaaaaaa},
948 {0x9a0968, 0xda},
949 {0x9a0900, 0x55555555},
950 {0x9a0968, 0xdb},
951 {0x9a0900, 0xaaaaaaaa},
952 {0x9a0968, 0xdc},
953 {0x9a0900, 0x55555555},
954 {0x9a0968, 0xdd},
955 {0x9a0900, 0xaaaaaaaa},
956 {0x9a0968, 0xde},
957 {0x9a0900, 0xffff},
958 {0x9a0968, 0xdf},
959 {0x9a0900, 0xffff0000},
960 {0x9a0968, 0xe0},
961 {0x9a0900, 0xffff},
962 {0x9a0968, 0xe1},
963 {0x9a0900, 0xffff0000},
964 {0x9a0968, 0xe2},
965 {0x9a0900, 0xffff},
966 {0x9a0968, 0xe3},
967 {0x9a0900, 0xffff0000},
968 {0x9a0968, 0xe4},
969 {0x9a0900, 0xffff},
970 {0x9a0968, 0xe5},
971 {0x9a0900, 0xffff0000},
972 {0x9a0968, 0xe6},
973 {0x9a0900, 0xffff},
974 {0x9a0968, 0xe7},
975 {0x9a0900, 0xffff0000},
976 {0x9a0968, 0xe8},
977 {0x9a0900, 0xffff},
978 {0x9a0968, 0xe9},
979 {0x9a0900, 0xffff0000},
980 {0x9a0968, 0xea},
981 {0x9a0900, 0xffff},
982 {0x9a0968, 0xeb},
983 {0x9a0900, 0xffff0000},
984 {0x9a0968, 0xec},
985 {0x9a0900, 0xffff},
986 {0x9a0968, 0xed},
987 {0x9a0900, 0xffff0000},
988 {0x9a0968, 0xee},
989 {0x9a0900, 0xff00ff},
990 {0x9a0968, 0xef},
991 {0x9a0900, 0xff00ff00},
992 {0x9a0968, 0xf0},
993 {0x9a0900, 0xff00ff},
994 {0x9a0968, 0xf1},
995 {0x9a0900, 0xff00ff00},
996 {0x9a0968, 0xf2},
997 {0x9a0900, 0xff00ff},
998 {0x9a0968, 0xf3},
999 {0x9a0900, 0xff00ff00},
1000 {0x9a0968, 0xf4},
1001 {0x9a0900, 0xff00ff},
1002 {0x9a0968, 0xf5},
1003 {0x9a0900, 0xff00ff00},
1004 {0x9a0968, 0xf6},
1005 {0x9a0900, 0xff00ff},
1006 {0x9a0968, 0xf7},
1007 {0x9a0900, 0xff00ff00},
1008 {0x9a0968, 0xf8},
1009 {0x9a0900, 0xff00ff},
1010 {0x9a0968, 0xf9},
1011 {0x9a0900, 0xff00ff00},
1012 {0x9a0968, 0xfa},
1013 {0x9a0900, 0xff00ff},
1014 {0x9a0968, 0xfb},
1015 {0x9a0900, 0xff00ff00},
1016 {0x9a0968, 0xfc},
1017 {0x9a0900, 0xff00ff},
1018 {0x9a0968, 0xfd},
1019 {0x9a0900, 0xff00ff00},
1020 {0x9a0968, 0xfe},
1021 {0x9a0900, 0x0},
1022 {0x9a0968, 0xff},
1023 {0x9a0900, 0xffffffff},
1024 {0x9a096c, 0x0},
1025 {0x9a0904, 0x0},
1026 {0x9a096c, 0x1},
1027 {0x9a0904, 0xffffffff},
1028 {0x9a096c, 0x2},
1029 {0x9a0904, 0x0},
1030 {0x9a096c, 0x3},
1031 {0x9a0904, 0xffffffff},
1032 {0x9a096c, 0x4},
1033 {0x9a0904, 0x0},
1034 {0x9a096c, 0x5},
1035 {0x9a0904, 0xffffffff},
1036 {0x9a096c, 0x6},
1037 {0x9a0904, 0x0},
1038 {0x9a096c, 0x7},
1039 {0x9a0904, 0xffffffff},
1040 {0x9a096c, 0x8},
1041 {0x9a0904, 0x0},
1042 {0x9a096c, 0x9},
1043 {0x9a0904, 0xffffffff},
1044 {0x9a096c, 0xa},
1045 {0x9a0904, 0x0},
1046 {0x9a096c, 0xb},
1047 {0x9a0904, 0xffffffff},
1048 {0x9a096c, 0xc},
1049 {0x9a0904, 0x0},
1050 {0x9a096c, 0xd},
1051 {0x9a0904, 0xffffffff},
1052 {0x9a096c, 0xe},
1053 {0x9a0904, 0x0},
1054 {0x9a096c, 0xf},
1055 {0x9a0904, 0xffffffff},
1056 {0x9a096c, 0x10},
1057 {0x9a0904, 0x55555555},
1058 {0x9a096c, 0x11},
1059 {0x9a0904, 0xaaaaaaaa},
1060 {0x9a096c, 0x12},
1061 {0x9a0904, 0x55555555},
1062 {0x9a096c, 0x13},
1063 {0x9a0904, 0xaaaaaaaa},
1064 {0x9a096c, 0x14},
1065 {0x9a0904, 0x55555555},
1066 {0x9a096c, 0x15},
1067 {0x9a0904, 0xaaaaaaaa},
1068 {0x9a096c, 0x16},
1069 {0x9a0904, 0x55555555},
1070 {0x9a096c, 0x17},
1071 {0x9a0904, 0xaaaaaaaa},
1072 {0x9a096c, 0x18},
1073 {0x9a0904, 0x55555555},
1074 {0x9a096c, 0x19},
1075 {0x9a0904, 0xaaaaaaaa},
1076 {0x9a096c, 0x1a},
1077 {0x9a0904, 0x55555555},
1078 {0x9a096c, 0x1b},
1079 {0x9a0904, 0xaaaaaaaa},
1080 {0x9a096c, 0x1c},
1081 {0x9a0904, 0x55555555},
1082 {0x9a096c, 0x1d},
1083 {0x9a0904, 0xaaaaaaaa},
1084 {0x9a096c, 0x1e},
1085 {0x9a0904, 0x55555555},
1086 {0x9a096c, 0x1f},
1087 {0x9a0904, 0xaaaaaaaa},
1088 {0x9a096c, 0x20},
1089 {0x9a0904, 0xffff},
1090 {0x9a096c, 0x21},
1091 {0x9a0904, 0xffff0000},
1092 {0x9a096c, 0x22},
1093 {0x9a0904, 0xffff},
1094 {0x9a096c, 0x23},
1095 {0x9a0904, 0xffff0000},
1096 {0x9a096c, 0x24},
1097 {0x9a0904, 0xffff},
1098 {0x9a096c, 0x25},
1099 {0x9a0904, 0xffff0000},
1100 {0x9a096c, 0x26},
1101 {0x9a0904, 0xffff},
1102 {0x9a096c, 0x27},
1103 {0x9a0904, 0xffff0000},
1104 {0x9a096c, 0x28},
1105 {0x9a0904, 0xffff},
1106 {0x9a096c, 0x29},
1107 {0x9a0904, 0xffff0000},
1108 {0x9a096c, 0x2a},
1109 {0x9a0904, 0xffff},
1110 {0x9a096c, 0x2b},
1111 {0x9a0904, 0xffff0000},
1112 {0x9a096c, 0x2c},
1113 {0x9a0904, 0xffff},
1114 {0x9a096c, 0x2d},
1115 {0x9a0904, 0xffff0000},
1116 {0x9a096c, 0x2e},
1117 {0x9a0904, 0xffff},
1118 {0x9a096c, 0x2f},
1119 {0x9a0904, 0xffff0000},
1120 {0x9a096c, 0x30},
1121 {0x9a0904, 0xff00ff},
1122 {0x9a096c, 0x31},
1123 {0x9a0904, 0xff00ff00},
1124 {0x9a096c, 0x32},
1125 {0x9a0904, 0xff00ff},
1126 {0x9a096c, 0x33},
1127 {0x9a0904, 0xff00ff00},
1128 {0x9a096c, 0x34},
1129 {0x9a0904, 0xff00ff},
1130 {0x9a096c, 0x35},
1131 {0x9a0904, 0xff00ff00},
1132 {0x9a096c, 0x36},
1133 {0x9a0904, 0xff00ff},
1134 {0x9a096c, 0x37},
1135 {0x9a0904, 0xff00ff00},
1136 {0x9a096c, 0x38},
1137 {0x9a0904, 0xff00ff},
1138 {0x9a096c, 0x39},
1139 {0x9a0904, 0xff00ff00},
1140 {0x9a096c, 0x3a},
1141 {0x9a0904, 0xff00ff},
1142 {0x9a096c, 0x3b},
1143 {0x9a0904, 0xff00ff00},
1144 {0x9a096c, 0x3c},
1145 {0x9a0904, 0xff00ff},
1146 {0x9a096c, 0x3d},
1147 {0x9a0904, 0xff00ff00},
1148 {0x9a096c, 0x3e},
1149 {0x9a0904, 0xff00ff},
1150 {0x9a096c, 0x3f},
1151 {0x9a0904, 0xff00ff00},
1152 {0x9a096c, 0x40},
1153 {0x9a0904, 0x0},
1154 {0x9a096c, 0x41},
1155 {0x9a0904, 0xffffffff},
1156 {0x9a096c, 0x42},
1157 {0x9a0904, 0x0},
1158 {0x9a096c, 0x43},
1159 {0x9a0904, 0xffffffff},
1160 {0x9a096c, 0x44},
1161 {0x9a0904, 0x0},
1162 {0x9a096c, 0x45},
1163 {0x9a0904, 0xffffffff},
1164 {0x9a096c, 0x46},
1165 {0x9a0904, 0x0},
1166 {0x9a096c, 0x47},
1167 {0x9a0904, 0xffffffff},
1168 {0x9a096c, 0x48},
1169 {0x9a0904, 0x0},
1170 {0x9a096c, 0x49},
1171 {0x9a0904, 0xffffffff},
1172 {0x9a096c, 0x4a},
1173 {0x9a0904, 0x0},
1174 {0x9a096c, 0x4b},
1175 {0x9a0904, 0xffffffff},
1176 {0x9a096c, 0x4c},
1177 {0x9a0904, 0x0},
1178 {0x9a096c, 0x4d},
1179 {0x9a0904, 0xffffffff},
1180 {0x9a096c, 0x4e},
1181 {0x9a0904, 0x0},
1182 {0x9a096c, 0x4f},
1183 {0x9a0904, 0xffffffff},
1184 {0x9a096c, 0x50},
1185 {0x9a0904, 0x55555555},
1186 {0x9a096c, 0x51},
1187 {0x9a0904, 0xaaaaaaaa},
1188 {0x9a096c, 0x52},
1189 {0x9a0904, 0x55555555},
1190 {0x9a096c, 0x53},
1191 {0x9a0904, 0xaaaaaaaa},
1192 {0x9a096c, 0x54},
1193 {0x9a0904, 0x55555555},
1194 {0x9a096c, 0x55},
1195 {0x9a0904, 0xaaaaaaaa},
1196 {0x9a096c, 0x56},
1197 {0x9a0904, 0x55555555},
1198 {0x9a096c, 0x57},
1199 {0x9a0904, 0xaaaaaaaa},
1200 {0x9a096c, 0x58},
1201 {0x9a0904, 0x55555555},
1202 {0x9a096c, 0x59},
1203 {0x9a0904, 0xaaaaaaaa},
1204 {0x9a096c, 0x5a},
1205 {0x9a0904, 0x55555555},
1206 {0x9a096c, 0x5b},
1207 {0x9a0904, 0xaaaaaaaa},
1208 {0x9a096c, 0x5c},
1209 {0x9a0904, 0x55555555},
1210 {0x9a096c, 0x5d},
1211 {0x9a0904, 0xaaaaaaaa},
1212 {0x9a096c, 0x5e},
1213 {0x9a0904, 0x55555555},
1214 {0x9a096c, 0x5f},
1215 {0x9a0904, 0x0},
1216 {0x9a096c, 0x60},
1217 {0x9a0904, 0xffffffff},
1218 {0x9a096c, 0x61},
1219 {0x9a0904, 0x0},
1220 {0x9a096c, 0x62},
1221 {0x9a0904, 0xffffffff},
1222 {0x9a096c, 0x63},
1223 {0x9a0904, 0x0},
1224 {0x9a096c, 0x64},
1225 {0x9a0904, 0xffffffff},
1226 {0x9a096c, 0x65},
1227 {0x9a0904, 0x0},
1228 {0x9a096c, 0x66},
1229 {0x9a0904, 0xffffffff},
1230 {0x9a096c, 0x67},
1231 {0x9a0904, 0x0},
1232 {0x9a096c, 0x68},
1233 {0x9a0904, 0xffffffff},
1234 {0x9a096c, 0x69},
1235 {0x9a0904, 0x0},
1236 {0x9a096c, 0x6a},
1237 {0x9a0904, 0xffffffff},
1238 {0x9a096c, 0x6b},
1239 {0x9a0904, 0x0},
1240 {0x9a096c, 0x6c},
1241 {0x9a0904, 0xffffffff},
1242 {0x9a096c, 0x6d},
1243 {0x9a0904, 0x0},
1244 {0x9a096c, 0x6e},
1245 {0x9a0904, 0xffffffff},
1246 {0x9a096c, 0x6f},
1247 {0x9a0904, 0x55555555},
1248 {0x9a096c, 0x70},
1249 {0x9a0904, 0xaaaaaaaa},
1250 {0x9a096c, 0x71},
1251 {0x9a0904, 0x55555555},
1252 {0x9a096c, 0x72},
1253 {0x9a0904, 0xaaaaaaaa},
1254 {0x9a096c, 0x73},
1255 {0x9a0904, 0x55555555},
1256 {0x9a096c, 0x74},
1257 {0x9a0904, 0xaaaaaaaa},
1258 {0x9a096c, 0x75},
1259 {0x9a0904, 0x55555555},
1260 {0x9a096c, 0x76},
1261 {0x9a0904, 0xaaaaaaaa},
1262 {0x9a096c, 0x77},
1263 {0x9a0904, 0x55555555},
1264 {0x9a096c, 0x78},
1265 {0x9a0904, 0xaaaaaaaa},
1266 {0x9a096c, 0x79},
1267 {0x9a0904, 0x55555555},
1268 {0x9a096c, 0x7a},
1269 {0x9a0904, 0xaaaaaaaa},
1270 {0x9a096c, 0x7b},
1271 {0x9a0904, 0x55555555},
1272 {0x9a096c, 0x7c},
1273 {0x9a0904, 0xaaaaaaaa},
1274 {0x9a096c, 0x7d},
1275 {0x9a0904, 0x55555555},
1276 {0x9a096c, 0x7e},
1277 {0x9a0904, 0xaaaaaaaa},
1278 {0x9a096c, 0x7f},
1279 {0x9a0904, 0xffff},
1280 {0x9a096c, 0x80},
1281 {0x9a0904, 0xffff0000},
1282 {0x9a096c, 0x81},
1283 {0x9a0904, 0xffff},
1284 {0x9a096c, 0x82},
1285 {0x9a0904, 0xffff0000},
1286 {0x9a096c, 0x83},
1287 {0x9a0904, 0xffff},
1288 {0x9a096c, 0x84},
1289 {0x9a0904, 0xffff0000},
1290 {0x9a096c, 0x85},
1291 {0x9a0904, 0xffff},
1292 {0x9a096c, 0x86},
1293 {0x9a0904, 0xffff0000},
1294 {0x9a096c, 0x87},
1295 {0x9a0904, 0xffff},
1296 {0x9a096c, 0x88},
1297 {0x9a0904, 0xffff0000},
1298 {0x9a096c, 0x89},
1299 {0x9a0904, 0xffff},
1300 {0x9a096c, 0x8a},
1301 {0x9a0904, 0xffff0000},
1302 {0x9a096c, 0x8b},
1303 {0x9a0904, 0xffff},
1304 {0x9a096c, 0x8c},
1305 {0x9a0904, 0xffff0000},
1306 {0x9a096c, 0x8d},
1307 {0x9a0904, 0xffff},
1308 {0x9a096c, 0x8e},
1309 {0x9a0904, 0xffff0000},
1310 {0x9a096c, 0x8f},
1311 {0x9a0904, 0xff00ff},
1312 {0x9a096c, 0x90},
1313 {0x9a0904, 0xff00ff00},
1314 {0x9a096c, 0x91},
1315 {0x9a0904, 0xff00ff},
1316 {0x9a096c, 0x92},
1317 {0x9a0904, 0xff00ff00},
1318 {0x9a096c, 0x93},
1319 {0x9a0904, 0xff00ff},
1320 {0x9a096c, 0x94},
1321 {0x9a0904, 0xff00ff00},
1322 {0x9a096c, 0x95},
1323 {0x9a0904, 0xff00ff},
1324 {0x9a096c, 0x96},
1325 {0x9a0904, 0xff00ff00},
1326 {0x9a096c, 0x97},
1327 {0x9a0904, 0xff00ff},
1328 {0x9a096c, 0x98},
1329 {0x9a0904, 0xff00ff00},
1330 {0x9a096c, 0x99},
1331 {0x9a0904, 0xff00ff},
1332 {0x9a096c, 0x9a},
1333 {0x9a0904, 0xff00ff00},
1334 {0x9a096c, 0x9b},
1335 {0x9a0904, 0xff00ff},
1336 {0x9a096c, 0x9c},
1337 {0x9a0904, 0xff00ff00},
1338 {0x9a096c, 0x9d},
1339 {0x9a0904, 0xff00ff},
1340 {0x9a096c, 0x9e},
1341 {0x9a0904, 0xff00ff00},
1342 {0x9a096c, 0x9f},
1343 {0x9a0904, 0x0},
1344 {0x9a096c, 0xa0},
1345 {0x9a0904, 0xffffffff},
1346 {0x9a096c, 0xa1},
1347 {0x9a0904, 0x0},
1348 {0x9a096c, 0xa2},
1349 {0x9a0904, 0xffffffff},
1350 {0x9a096c, 0xa3},
1351 {0x9a0904, 0x0},
1352 {0x9a096c, 0xa4},
1353 {0x9a0904, 0xffffffff},
1354 {0x9a096c, 0xa5},
1355 {0x9a0904, 0x0},
1356 {0x9a096c, 0xa6},
1357 {0x9a0904, 0xffffffff},
1358 {0x9a096c, 0xa7},
1359 {0x9a0904, 0x0},
1360 {0x9a096c, 0xa8},
1361 {0x9a0904, 0xffffffff},
1362 {0x9a096c, 0xa9},
1363 {0x9a0904, 0x0},
1364 {0x9a096c, 0xaa},
1365 {0x9a0904, 0xffffffff},
1366 {0x9a096c, 0xab},
1367 {0x9a0904, 0x0},
1368 {0x9a096c, 0xac},
1369 {0x9a0904, 0xffffffff},
1370 {0x9a096c, 0xad},
1371 {0x9a0904, 0x0},
1372 {0x9a096c, 0xae},
1373 {0x9a0904, 0xffffffff},
1374 {0x9a096c, 0xaf},
1375 {0x9a0904, 0x55555555},
1376 {0x9a096c, 0xb0},
1377 {0x9a0904, 0xaaaaaaaa},
1378 {0x9a096c, 0xb1},
1379 {0x9a0904, 0x55555555},
1380 {0x9a096c, 0xb2},
1381 {0x9a0904, 0xaaaaaaaa},
1382 {0x9a096c, 0xb3},
1383 {0x9a0904, 0x55555555},
1384 {0x9a096c, 0xb4},
1385 {0x9a0904, 0xaaaaaaaa},
1386 {0x9a096c, 0xb5},
1387 {0x9a0904, 0x55555555},
1388 {0x9a096c, 0xb6},
1389 {0x9a0904, 0xaaaaaaaa},
1390 {0x9a096c, 0xb7},
1391 {0x9a0904, 0x55555555},
1392 {0x9a096c, 0xb8},
1393 {0x9a0904, 0xaaaaaaaa},
1394 {0x9a096c, 0xb9},
1395 {0x9a0904, 0x55555555},
1396 {0x9a096c, 0xba},
1397 {0x9a0904, 0xaaaaaaaa},
1398 {0x9a096c, 0xbb},
1399 {0x9a0904, 0x55555555},
1400 {0x9a096c, 0xbc},
1401 {0x9a0904, 0xaaaaaaaa},
1402 {0x9a096c, 0xbd},
1403 {0x9a0904, 0x55555555},
1404 {0x9a096c, 0xbe},
1405 {0x9a0904, 0x0},
1406 {0x9a096c, 0xbf},
1407 {0x9a0904, 0xffffffff},
1408 {0x9a096c, 0xc0},
1409 {0x9a0904, 0x0},
1410 {0x9a096c, 0xc1},
1411 {0x9a0904, 0xffffffff},
1412 {0x9a096c, 0xc2},
1413 {0x9a0904, 0x0},
1414 {0x9a096c, 0xc3},
1415 {0x9a0904, 0xffffffff},
1416 {0x9a096c, 0xc4},
1417 {0x9a0904, 0x0},
1418 {0x9a096c, 0xc5},
1419 {0x9a0904, 0xffffffff},
1420 {0x9a096c, 0xc6},
1421 {0x9a0904, 0x0},
1422 {0x9a096c, 0xc7},
1423 {0x9a0904, 0xffffffff},
1424 {0x9a096c, 0xc8},
1425 {0x9a0904, 0x0},
1426 {0x9a096c, 0xc9},
1427 {0x9a0904, 0xffffffff},
1428 {0x9a096c, 0xca},
1429 {0x9a0904, 0x0},
1430 {0x9a096c, 0xcb},
1431 {0x9a0904, 0xffffffff},
1432 {0x9a096c, 0xcc},
1433 {0x9a0904, 0x0},
1434 {0x9a096c, 0xcd},
1435 {0x9a0904, 0xffffffff},
1436 {0x9a096c, 0xce},
1437 {0x9a0904, 0x55555555},
1438 {0x9a096c, 0xcf},
1439 {0x9a0904, 0xaaaaaaaa},
1440 {0x9a096c, 0xd0},
1441 {0x9a0904, 0x55555555},
1442 {0x9a096c, 0xd1},
1443 {0x9a0904, 0xaaaaaaaa},
1444 {0x9a096c, 0xd2},
1445 {0x9a0904, 0x55555555},
1446 {0x9a096c, 0xd3},
1447 {0x9a0904, 0xaaaaaaaa},
1448 {0x9a096c, 0xd4},
1449 {0x9a0904, 0x55555555},
1450 {0x9a096c, 0xd5},
1451 {0x9a0904, 0xaaaaaaaa},
1452 {0x9a096c, 0xd6},
1453 {0x9a0904, 0x55555555},
1454 {0x9a096c, 0xd7},
1455 {0x9a0904, 0xaaaaaaaa},
1456 {0x9a096c, 0xd8},
1457 {0x9a0904, 0x55555555},
1458 {0x9a096c, 0xd9},
1459 {0x9a0904, 0xaaaaaaaa},
1460 {0x9a096c, 0xda},
1461 {0x9a0904, 0x55555555},
1462 {0x9a096c, 0xdb},
1463 {0x9a0904, 0xaaaaaaaa},
1464 {0x9a096c, 0xdc},
1465 {0x9a0904, 0x55555555},
1466 {0x9a096c, 0xdd},
1467 {0x9a0904, 0xaaaaaaaa},
1468 {0x9a096c, 0xde},
1469 {0x9a0904, 0xffff},
1470 {0x9a096c, 0xdf},
1471 {0x9a0904, 0xffff0000},
1472 {0x9a096c, 0xe0},
1473 {0x9a0904, 0xffff},
1474 {0x9a096c, 0xe1},
1475 {0x9a0904, 0xffff0000},
1476 {0x9a096c, 0xe2},
1477 {0x9a0904, 0xffff},
1478 {0x9a096c, 0xe3},
1479 {0x9a0904, 0xffff0000},
1480 {0x9a096c, 0xe4},
1481 {0x9a0904, 0xffff},
1482 {0x9a096c, 0xe5},
1483 {0x9a0904, 0xffff0000},
1484 {0x9a096c, 0xe6},
1485 {0x9a0904, 0xffff},
1486 {0x9a096c, 0xe7},
1487 {0x9a0904, 0xffff0000},
1488 {0x9a096c, 0xe8},
1489 {0x9a0904, 0xffff},
1490 {0x9a096c, 0xe9},
1491 {0x9a0904, 0xffff0000},
1492 {0x9a096c, 0xea},
1493 {0x9a0904, 0xffff},
1494 {0x9a096c, 0xeb},
1495 {0x9a0904, 0xffff0000},
1496 {0x9a096c, 0xec},
1497 {0x9a0904, 0xffff},
1498 {0x9a096c, 0xed},
1499 {0x9a0904, 0xffff0000},
1500 {0x9a096c, 0xee},
1501 {0x9a0904, 0xff00ff},
1502 {0x9a096c, 0xef},
1503 {0x9a0904, 0xff00ff00},
1504 {0x9a096c, 0xf0},
1505 {0x9a0904, 0xff00ff},
1506 {0x9a096c, 0xf1},
1507 {0x9a0904, 0xff00ff00},
1508 {0x9a096c, 0xf2},
1509 {0x9a0904, 0xff00ff},
1510 {0x9a096c, 0xf3},
1511 {0x9a0904, 0xff00ff00},
1512 {0x9a096c, 0xf4},
1513 {0x9a0904, 0xff00ff},
1514 {0x9a096c, 0xf5},
1515 {0x9a0904, 0xff00ff00},
1516 {0x9a096c, 0xf6},
1517 {0x9a0904, 0xff00ff},
1518 {0x9a096c, 0xf7},
1519 {0x9a0904, 0xff00ff00},
1520 {0x9a096c, 0xf8},
1521 {0x9a0904, 0xff00ff},
1522 {0x9a096c, 0xf9},
1523 {0x9a0904, 0xff00ff00},
1524 {0x9a096c, 0xfa},
1525 {0x9a0904, 0xff00ff},
1526 {0x9a096c, 0xfb},
1527 {0x9a0904, 0xff00ff00},
1528 {0x9a096c, 0xfc},
1529 {0x9a0904, 0xff00ff},
1530 {0x9a096c, 0xfd},
1531 {0x9a0904, 0xff00ff00},
1532 {0x9a096c, 0xfe},
1533 {0x9a0904, 0x0},
1534 {0x9a096c, 0xff},
1535 {0x9a0904, 0xffffffff},
1536};
1537
1538/* MID SPEED TO LOW SPEED */
1539static u8 seq_script_step33_ls_gp106[] = {
1540 0x34, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x03, 0x00, 0x01,
1541 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x00, 0x02,
1542 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C,
1543 0x00, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x49, 0x90, 0x00,
1544 0x00, 0x00, 0x0C, 0x00, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10,
1545 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03,
1546 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x10, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00,
1547 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00,
1548 0x48, 0x03, 0x9A, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00,
1549 0x90, 0x8F, 0x82, 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02,
1550 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x90, 0x00, 0x9A, 0x00, 0x61, 0x00, 0x00,
1551 0x00, 0x90, 0x00, 0x9A, 0x00, 0x7F, 0x00, 0x00, 0xC0, 0x2E, 0x00, 0x02, 0x00,
1552 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x27, 0x00, 0x98, 0x06, 0x9A, 0x00, 0x00,
1553 0x00, 0x00, 0x00, 0x9C, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08,
1554 0x9A, 0x00, 0xE7, 0x8F, 0x83, 0x40, 0x38, 0x1F, 0x9A, 0x00, 0x00, 0x00, 0x01,
1555 0x00, 0x34, 0x1F, 0x9A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 0x0D, 0x9A, 0x00,
1556 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x8B, 0xC0, 0x24,
1557 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x83, 0x40, 0xF4, 0x73, 0x13, 0x00, 0x11, 0x00,
1558 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10, 0x00, 0x01, 0x00, 0xF4, 0x73, 0x13,
1559 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x13, 0x00, 0x00, 0x00, 0x01, 0x18,
1560 0x00, 0x20, 0x13, 0x00, 0x02, 0x00, 0x01, 0x18, 0x20, 0x20, 0x13, 0x00, 0x00,
1561 0x00, 0x03, 0x20, 0x20, 0x73, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x20,
1562 0x13, 0x00, 0x01, 0x3B, 0x04, 0x00, 0x2C, 0x20, 0x13, 0x00, 0x00, 0x01, 0x00,
1563 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x08, 0x10, 0x20, 0x20, 0x13, 0x00,
1564 0x01, 0x00, 0x03, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01,
1565 0x00, 0x02, 0x00, 0x90, 0x73, 0x13, 0x00, 0x15, 0x00, 0x03, 0x00, 0x00, 0x00,
1566 0x02, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x21, 0x00, 0x1F, 0x00, 0x2C, 0x20, 0x13,
1567 0x00, 0x00, 0x03, 0x00, 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x04, 0x10,
1568 0xF4, 0x73, 0x13, 0x00, 0x00, 0x01, 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10,
1569 0x01, 0x01, 0x00, 0xEC, 0x73, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0xF4, 0x73,
1570 0x13, 0x00, 0x11, 0x01, 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x11, 0x01, 0x00,
1571 0x00, 0x5C, 0x06, 0x9A, 0x00, 0x11, 0x00, 0x00, 0x00, 0x70, 0x06, 0x9A, 0x00,
1572 0x06, 0x13, 0x08, 0xB4, 0x98, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C,
1573 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x06, 0x9A, 0x00, 0x0E, 0x06,
1574 0x0E, 0x06, 0xD4, 0x0E, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0xD4, 0x0E, 0x9A,
1575 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x80, 0x40,
1576 0x13, 0x00, 0x02, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0x10,
1577 0x27, 0x00, 0x00, 0x21, 0x00, 0x1D, 0x00, 0x70, 0x06, 0x9A, 0x00, 0x06, 0x13,
1578 0x08, 0x34, 0x48, 0x02, 0x9A, 0x00, 0xA3, 0x44, 0x14, 0x86, 0x90, 0x02, 0x9A,
1579 0x00, 0x12, 0x2C, 0x18, 0x06, 0x94, 0x02, 0x9A, 0x00, 0x8A, 0x82, 0x41, 0x24,
1580 0x98, 0x02, 0x9A, 0x00, 0x11, 0x05, 0x06, 0x88, 0x9C, 0x02, 0x9A, 0x00, 0x8C,
1581 0x10, 0x00, 0x22, 0xA8, 0x02, 0x9A, 0x00, 0x0B, 0x86, 0x00, 0x01, 0x4C, 0x02,
1582 0x9A, 0x00, 0x85, 0x0C, 0x05, 0x06, 0x30, 0x1F, 0x9A, 0x00, 0x03, 0x16, 0x2C,
1583 0x00, 0xE0, 0x08, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x03, 0x9A, 0x00,
1584 0x00, 0x00, 0x00, 0x00, 0x94, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1585 0x0B, 0x9A, 0x00, 0x06, 0x22, 0x22, 0x22, 0x90, 0x00, 0x9A, 0x00, 0x7E, 0x00,
1586 0x00, 0x40, 0x2E, 0x00, 0x02, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x21, 0x00, 0x0D,
1587 0x00, 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x03, 0x9A, 0x00,
1588 0x01, 0x00, 0x00, 0x00, 0x10, 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x80, 0x90,
1589 0x03, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x03, 0x9A, 0x00, 0x23, 0x01,
1590 0x30, 0x00, 0x00, 0x03, 0x9A, 0x00, 0x2D, 0x02, 0x00, 0x00, 0x2E, 0x00, 0x02,
1591 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x07, 0x00, 0x00, 0x02, 0x9A, 0x00,
1592 0x00, 0x90, 0x8F, 0x82, 0x18, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1593 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03,
1594 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x78, 0x09, 0x9A, 0x00, 0x0B, 0x1E, 0x7A,
1595 0x88, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27, 0x00, 0x10, 0x09, 0x90, 0x00,
1596 0x00, 0x00, 0x0A, 0x98, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x98, 0x10,
1597 0x49, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x98, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00,
1598 0x0A, 0x98, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
1599 0x00, 0x74, 0x09, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00,
1600 0x20, 0xA1, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x49, 0x90, 0x00, 0x15,
1601 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20, 0xA1, 0x07, 0x00, 0x21, 0x00,
1602 0x0D, 0x00, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27, 0x01, 0x30, 0x08, 0x9A,
1603 0x00, 0x91, 0x10, 0x27, 0x00, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19,
1604 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19, 0x10, 0x49, 0x90, 0x00, 0x00,
1605 0x00, 0x08, 0x19, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19, 0x20, 0x00,
1606 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02,
1607 0x00, 0x0B, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x00, 0x02, 0x9A, 0x00,
1608 0x00, 0x98, 0x8F, 0x02, 0x16, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
1609};
1610
1611/* LOW SPEED TO MID SPEED */
1612static u8 seq_script_step33_gp106[] = {
1613 0x34, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x03, 0x00, 0x01,
1614 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x00, 0x02,
1615 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C,
1616 0x00, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x49, 0x90, 0x00,
1617 0x00, 0x00, 0x0C, 0x00, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10,
1618 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03,
1619 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x10, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00,
1620 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00,
1621 0x48, 0x03, 0x9A, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00,
1622 0x90, 0x8F, 0x82, 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02,
1623 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x90, 0x00, 0x9A, 0x00, 0x61, 0x00, 0x00,
1624 0x00, 0x90, 0x00, 0x9A, 0x00, 0x7F, 0x00, 0x00, 0xC0, 0x2E, 0x00, 0x02, 0x00,
1625 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x27, 0x00, 0x98, 0x06, 0x9A, 0x00, 0x00,
1626 0x00, 0x00, 0x00, 0x9C, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08,
1627 0x9A, 0x00, 0xE7, 0x8F, 0x83, 0x40, 0x38, 0x1F, 0x9A, 0x00, 0x00, 0x00, 0x01,
1628 0x00, 0x34, 0x1F, 0x9A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 0x0D, 0x9A, 0x00,
1629 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x8B, 0xC0, 0x24,
1630 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x83, 0x40, 0xF4, 0x73, 0x13, 0x00, 0x11, 0x00,
1631 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10, 0x00, 0x01, 0x00, 0xF4, 0x73, 0x13,
1632 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x13, 0x00, 0x00, 0x00, 0x01, 0x18,
1633 0x00, 0x20, 0x13, 0x00, 0x02, 0x00, 0x01, 0x18, 0x20, 0x20, 0x13, 0x00, 0x00,
1634 0x00, 0x03, 0x20, 0x20, 0x73, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x20,
1635 0x13, 0x00, 0x01, 0x3B, 0x02, 0x00, 0x2C, 0x20, 0x13, 0x00, 0x00, 0x01, 0x00,
1636 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x08, 0x10, 0x20, 0x20, 0x13, 0x00,
1637 0x01, 0x00, 0x03, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01,
1638 0x00, 0x02, 0x00, 0x90, 0x73, 0x13, 0x00, 0x15, 0x00, 0x03, 0x00, 0x00, 0x00,
1639 0x02, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x21, 0x00, 0x1F, 0x00, 0x2C, 0x20, 0x13,
1640 0x00, 0x00, 0x03, 0x00, 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x04, 0x10,
1641 0xF4, 0x73, 0x13, 0x00, 0x00, 0x01, 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10,
1642 0x01, 0x01, 0x00, 0xEC, 0x73, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0xF4, 0x73,
1643 0x13, 0x00, 0x11, 0x01, 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x11, 0x01, 0x00,
1644 0x00, 0x5C, 0x06, 0x9A, 0x00, 0x11, 0x00, 0x00, 0x00, 0x70, 0x06, 0x9A, 0x00,
1645 0x06, 0x13, 0x08, 0xB4, 0x98, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C,
1646 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x06, 0x9A, 0x00, 0x0E, 0x06,
1647 0x0E, 0x06, 0xD4, 0x0E, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0xD4, 0x0E, 0x9A,
1648 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x80, 0x40,
1649 0x13, 0x00, 0x02, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0x10,
1650 0x27, 0x00, 0x00, 0x21, 0x00, 0x1D, 0x00, 0x70, 0x06, 0x9A, 0x00, 0x06, 0x13,
1651 0x08, 0x34, 0x48, 0x02, 0x9A, 0x00, 0xA3, 0x44, 0x14, 0x86, 0x90, 0x02, 0x9A,
1652 0x00, 0x12, 0x2C, 0x18, 0x06, 0x94, 0x02, 0x9A, 0x00, 0x8A, 0x82, 0x41, 0x24,
1653 0x98, 0x02, 0x9A, 0x00, 0x11, 0x05, 0x06, 0x88, 0x9C, 0x02, 0x9A, 0x00, 0x8C,
1654 0x10, 0x00, 0x22, 0xA8, 0x02, 0x9A, 0x00, 0x0B, 0x86, 0x00, 0x01, 0x4C, 0x02,
1655 0x9A, 0x00, 0x85, 0x0C, 0x05, 0x06, 0x30, 0x1F, 0x9A, 0x00, 0x03, 0x16, 0x2C,
1656 0x00, 0xE0, 0x08, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x03, 0x9A, 0x00,
1657 0x00, 0x00, 0x00, 0x00, 0x94, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1658 0x0B, 0x9A, 0x00, 0x06, 0x22, 0x22, 0x22, 0x90, 0x00, 0x9A, 0x00, 0x7E, 0x00,
1659 0x00, 0x40, 0x2E, 0x00, 0x02, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x21, 0x00, 0x0D,
1660 0x00, 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x03, 0x9A, 0x00,
1661 0x01, 0x00, 0x00, 0x00, 0x10, 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x80, 0x90,
1662 0x03, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x03, 0x9A, 0x00, 0x23, 0x01,
1663 0x30, 0x00, 0x00, 0x03, 0x9A, 0x00, 0x2D, 0x02, 0x00, 0x00, 0x2E, 0x00, 0x02,
1664 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x07, 0x00, 0x00, 0x02, 0x9A, 0x00,
1665 0x00, 0x90, 0x8F, 0x82, 0x18, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1666 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03,
1667 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x78, 0x09, 0x9A, 0x00, 0x0B, 0x1E, 0x7A,
1668 0x88, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27, 0x00, 0x10, 0x09, 0x90, 0x00,
1669 0x00, 0x00, 0x0A, 0x98, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x98, 0x10,
1670 0x49, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x98, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00,
1671 0x0A, 0x98, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
1672 0x00, 0x74, 0x09, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00,
1673 0x20, 0xA1, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x49, 0x90, 0x00, 0x15,
1674 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20, 0xA1, 0x07, 0x00, 0x21, 0x00,
1675 0x0D, 0x00, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27, 0x01, 0x30, 0x08, 0x9A,
1676 0x00, 0x91, 0x10, 0x27, 0x00, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19,
1677 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19, 0x10, 0x49, 0x90, 0x00, 0x00,
1678 0x00, 0x08, 0x19, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19, 0x20, 0x00,
1679 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02,
1680 0x00, 0x0B, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x00, 0x02, 0x9A, 0x00,
1681 0x00, 0x98, 0x8F, 0x02, 0x16, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
1682};
1683
1684/* LOW/MID SPEED TO HIGH SPEED */
1685static u8 seq_script_step28_gp106[] = {
1686 0x34, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x03, 0x00, 0x01,
1687 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x07, 0x00, 0x30, 0x03,
1688 0x9A, 0x00, 0x14, 0x00, 0x10, 0x00, 0x38, 0xD6, 0x00, 0x00, 0x00, 0x60, 0x00,
1689 0x00, 0x04, 0xD6, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00,
1690 0x20, 0x4E, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00,
1691 0x90, 0x8F, 0x02, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x14, 0x09,
1692 0x90, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0C,
1693 0x00, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x02, 0x9A, 0x00,
1694 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21,
1695 0x00, 0x03, 0x00, 0x10, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2E, 0x00,
1696 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x48, 0x03, 0x9A,
1697 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x82,
1698 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00,
1699 0x90, 0x8F, 0x02, 0x90, 0x00, 0x9A, 0x00, 0x61, 0x00, 0x00, 0x00, 0x90, 0x00,
1700 0x9A, 0x00, 0x7F, 0x00, 0x00, 0xC0, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00,
1701 0x00, 0x21, 0x00, 0x27, 0x00, 0x98, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00,
1702 0x9C, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0xE7,
1703 0x8F, 0x88, 0xF7, 0x40, 0x0D, 0x9A, 0x00, 0x20, 0xE0, 0x01, 0x00, 0x00, 0x02,
1704 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x1A, 0x00, 0x08, 0x9A, 0x00, 0x00, 0x00, 0x00,
1705 0x00, 0xF0, 0x73, 0x13, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x08, 0x9A, 0x00,
1706 0x90, 0x90, 0x67, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x11, 0x00, 0x01, 0x00, 0xF4,
1707 0x73, 0x13, 0x00, 0x10, 0x00, 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x00, 0x00,
1708 0x01, 0x00, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, 0x03, 0x20, 0x20, 0x73, 0x13,
1709 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x20, 0x13, 0x00, 0x04, 0x00, 0x00, 0x00,
1710 0x34, 0x20, 0x13, 0x00, 0x00, 0x00, 0x8A, 0xF9, 0x24, 0x20, 0x13, 0x00, 0x01,
1711 0x32, 0x05, 0x00, 0x2C, 0x20, 0x13, 0x00, 0x00, 0x01, 0x00, 0x00, 0x28, 0x20,
1712 0x13, 0x00, 0x10, 0x00, 0x08, 0x10, 0x20, 0x20, 0x13, 0x00, 0x01, 0x00, 0x03,
1713 0x20, 0x34, 0x00, 0x02, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
1714 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x90, 0x73, 0x13, 0x00, 0x15,
1715 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x34, 0x00,
1716 0x02, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x2C, 0x20, 0x13,
1717 0x00, 0x00, 0x03, 0x00, 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x04, 0x10,
1718 0xF4, 0x73, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x13, 0x00, 0x00,
1719 0x00, 0x01, 0x98, 0x04, 0x20, 0x13, 0x00, 0x01, 0x0B, 0x01, 0x00, 0x00, 0x20,
1720 0x13, 0x00, 0x01, 0x00, 0x01, 0x98, 0x34, 0x00, 0x02, 0x00, 0x0D, 0x00, 0x00,
1721 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
1722 0x90, 0x73, 0x13, 0x00, 0x15, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
1723 0xFA, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x21, 0x00,
1724 0x1D, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x00, 0x11, 0x00, 0x00, 0xF4, 0x73, 0x13,
1725 0x00, 0x10, 0x11, 0x00, 0x00, 0xEC, 0x73, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00,
1726 0xF0, 0x73, 0x13, 0x00, 0x02, 0x00, 0x00, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x12,
1727 0x11, 0x00, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x12, 0x00, 0x00, 0x00, 0x08, 0x08,
1728 0x9A, 0x00, 0x70, 0x00, 0x08, 0x48, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x10, 0x8F,
1729 0x1A, 0x24, 0x08, 0x9A, 0x00, 0xE5, 0x8F, 0x88, 0xF7, 0x08, 0x08, 0x9A, 0x00,
1730 0x70, 0x00, 0xA8, 0x4A, 0x24, 0x08, 0x9A, 0x00, 0x85, 0x8F, 0x88, 0xF7, 0x38,
1731 0x1F, 0x9A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 0x1F, 0x9A, 0x00, 0x00, 0x00,
1732 0x01, 0x00, 0x34, 0x0D, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02,
1733 0x00, 0x2C, 0x01, 0x00, 0x00, 0x21, 0x00, 0x09, 0x00, 0x5C, 0x06, 0x9A, 0x00,
1734 0x22, 0x00, 0x00, 0x00, 0x0C, 0x06, 0x9A, 0x00, 0xD0, 0x20, 0x00, 0xFD, 0xD4,
1735 0x0E, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0xD4, 0x0E, 0x9A, 0x00, 0x00, 0x00,
1736 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x21, 0x00, 0x25,
1737 0x00, 0x2C, 0x08, 0x9A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x30, 0x08, 0x9A, 0x00,
1738 0x90, 0xA0, 0x67, 0x00, 0x48, 0x02, 0x9A, 0x00, 0xA3, 0x44, 0x20, 0x95, 0x90,
1739 0x02, 0x9A, 0x00, 0x46, 0xAE, 0x60, 0x16, 0x94, 0x02, 0x9A, 0x00, 0x96, 0x02,
1740 0xF6, 0x28, 0x98, 0x02, 0x9A, 0x00, 0x00, 0x09, 0x16, 0x88, 0x9C, 0x02, 0x9A,
1741 0x00, 0x4C, 0x39, 0x00, 0x24, 0xA0, 0x02, 0x9A, 0x00, 0x32, 0x80, 0x83, 0xD5,
1742 0xA8, 0x02, 0x9A, 0x00, 0x0F, 0x86, 0x00, 0x02, 0x14, 0x06, 0x9A, 0x00, 0x77,
1743 0x4E, 0x04, 0x40, 0x10, 0x06, 0x9A, 0x00, 0x77, 0x4E, 0x04, 0x40, 0x78, 0x07,
1744 0x10, 0x00, 0x44, 0x04, 0x00, 0x82, 0x4C, 0x02, 0x9A, 0x00, 0x85, 0x0C, 0x05,
1745 0x15, 0xE0, 0x08, 0x9A, 0x00, 0x11, 0x00, 0x00, 0x00, 0x90, 0x03, 0x9A, 0x00,
1746 0x00, 0x00, 0x00, 0x00, 0x94, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1747 0x0B, 0x9A, 0x00, 0x06, 0x22, 0x22, 0x22, 0x90, 0x00, 0x9A, 0x00, 0x7E, 0x00,
1748 0x00, 0x40, 0x2E, 0x00, 0x02, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x21, 0x00, 0x13,
1749 0x00, 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x03, 0x9A, 0x00,
1750 0x01, 0x00, 0x00, 0x00, 0x10, 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x80, 0x90,
1751 0x03, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x02, 0x9A, 0x00, 0x96, 0x02,
1752 0xF6, 0x24, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x01, 0xA4, 0x14, 0x09, 0x90,
1753 0x00, 0x00, 0x00, 0x01, 0xA4, 0x10, 0x49, 0x90, 0x00, 0x00, 0x00, 0x01, 0xA4,
1754 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x01, 0xA4, 0x34, 0x00, 0x02, 0x00, 0x0F,
1755 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
1756 0x02, 0x00, 0x74, 0x09, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00,
1757 0x00, 0x20, 0xA1, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x49, 0x90, 0x00,
1758 0x15, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20, 0xA1, 0x07, 0x00, 0x34,
1759 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03,
1760 0x00, 0x00, 0x21, 0x00, 0x0B, 0x00, 0x94, 0x02, 0x9A, 0x00, 0x96, 0x02, 0xF6,
1761 0x28, 0x38, 0x03, 0x9A, 0x00, 0x03, 0x01, 0x30, 0x00, 0x3C, 0x03, 0x9A, 0x00,
1762 0xFF, 0x01, 0x40, 0x00, 0x00, 0x03, 0x9A, 0x00, 0x0D, 0x02, 0x00, 0x00, 0x54,
1763 0x03, 0x9A, 0x00, 0x03, 0x00, 0x80, 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03,
1764 0x00, 0x00, 0x21, 0x00, 0x09, 0x00, 0x48, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x70,
1765 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x10, 0x8F, 0x9A, 0x18, 0x03, 0x9A, 0x00,
1766 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x10, 0x8F, 0x1A, 0x2E,
1767 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0B, 0x00, 0x78, 0x09,
1768 0x9A, 0x00, 0x0F, 0x1E, 0x7E, 0x88, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0E,
1769 0xA4, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0E, 0xA4, 0x10, 0x49, 0x90, 0x00,
1770 0x00, 0x00, 0x0E, 0xA4, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0E, 0xA4, 0x34,
1771 0x00, 0x02, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
1772 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x09, 0x90, 0x00, 0x15, 0x00, 0x03,
1773 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20, 0xA1, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00,
1774 0x74, 0x49, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20,
1775 0xA1, 0x07, 0x00, 0x34, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00, 0x2E, 0x00,
1776 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0B, 0x00, 0x00, 0x02, 0x9A,
1777 0x00, 0x00, 0x10, 0x8F, 0x3A, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x25,
1778 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x25, 0x10, 0x49, 0x90, 0x00, 0x00,
1779 0x00, 0x0C, 0x25, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x25, 0x20, 0x00,
1780 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02,
1781 0x00, 0x13, 0x00, 0x00, 0x00, 0x16, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
1782};
1783
1784/* HIGH SPEED TO LOW SPEED */
1785static u8 seq_script_step32_ls_gp106[] = {
1786 0x34, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x03, 0x00, 0x01,
1787 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x0B, 0x00, 0x10, 0x09,
1788 0x90, 0x00, 0x00, 0x00, 0x0C, 0x24, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C,
1789 0x24, 0x10, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x24, 0x14, 0x49, 0x90, 0x00,
1790 0x00, 0x00, 0x0C, 0x24, 0x10, 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E,
1791 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x10, 0x03,
1792 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00,
1793 0x00, 0x21, 0x00, 0x0D, 0x00, 0x48, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x70, 0x00,
1794 0x00, 0x02, 0x9A, 0x00, 0x00, 0x10, 0x8F, 0x82, 0x14, 0x03, 0x9A, 0x00, 0x01,
1795 0x00, 0x00, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x10, 0x8F, 0x02, 0x90, 0x00,
1796 0x9A, 0x00, 0x61, 0x00, 0x00, 0x00, 0x90, 0x00, 0x9A, 0x00, 0x7F, 0x00, 0x00,
1797 0xC0, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x35, 0x00,
1798 0x98, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x06, 0x9A, 0x00, 0x00,
1799 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0x85, 0x8F, 0x8B, 0xF7, 0x38, 0x1F,
1800 0x9A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 0x1F, 0x9A, 0x00, 0x00, 0x00, 0x01,
1801 0x00, 0x34, 0x0D, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00,
1802 0xE7, 0x8F, 0x8B, 0xF7, 0x40, 0x0D, 0x9A, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x24,
1803 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x83, 0x40, 0x08, 0x08, 0x9A, 0x00, 0x70, 0x00,
1804 0xA0, 0x4A, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x30, 0x08, 0x9A,
1805 0x00, 0x90, 0x20, 0x67, 0x01, 0x30, 0x08, 0x9A, 0x00, 0x90, 0x20, 0x67, 0x00,
1806 0xF4, 0x73, 0x13, 0x00, 0x12, 0x11, 0x00, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10,
1807 0x11, 0x00, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x20,
1808 0x13, 0x00, 0x00, 0x00, 0x03, 0x98, 0x00, 0x20, 0x13, 0x00, 0x02, 0x00, 0x03,
1809 0x98, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, 0x03, 0x20, 0x20, 0x73, 0x13, 0x00,
1810 0x00, 0x00, 0x00, 0x00, 0x30, 0x20, 0x13, 0x00, 0x06, 0x00, 0x00, 0x10, 0x34,
1811 0x20, 0x13, 0x00, 0x00, 0x10, 0x67, 0x06, 0x24, 0x20, 0x13, 0x00, 0x01, 0x3B,
1812 0x04, 0x00, 0x2C, 0x20, 0x13, 0x00, 0x00, 0x01, 0x00, 0x00, 0x28, 0x20, 0x13,
1813 0x00, 0x10, 0x00, 0x08, 0x10, 0x20, 0x20, 0x13, 0x00, 0x01, 0x00, 0x03, 0x20,
1814 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x90,
1815 0x73, 0x13, 0x00, 0x15, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFA,
1816 0x00, 0x00, 0x21, 0x00, 0x23, 0x00, 0x2C, 0x20, 0x13, 0x00, 0x00, 0x03, 0x00,
1817 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x04, 0x10, 0xF4, 0x73, 0x13, 0x00,
1818 0x00, 0x11, 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10, 0x11, 0x01, 0x00, 0xF0,
1819 0x73, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00, 0xEC, 0x73, 0x13, 0x00, 0x00, 0x00,
1820 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x11, 0x11, 0x01, 0x00, 0xF4, 0x73, 0x13,
1821 0x00, 0x11, 0x11, 0x00, 0x00, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x20, 0x27, 0x00,
1822 0x5C, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x06, 0x9A, 0x00, 0x06,
1823 0x06, 0x06, 0x06, 0x9C, 0x06, 0x9A, 0x00, 0x06, 0x06, 0x06, 0x06, 0x94, 0x06,
1824 0x9A, 0x00, 0x0E, 0x06, 0x0E, 0x06, 0x0C, 0x06, 0x9A, 0x00, 0x50, 0x20, 0x00,
1825 0xFD, 0xD4, 0x0E, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0xD4, 0x0E, 0x9A, 0x00,
1826 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x80, 0x40, 0x13,
1827 0x00, 0x02, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x21, 0x00, 0x23, 0x00, 0x2C, 0x08,
1828 0x9A, 0x00, 0x00, 0x00, 0x15, 0x00, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27,
1829 0x00, 0x48, 0x02, 0x9A, 0x00, 0xA3, 0x44, 0x14, 0x84, 0x90, 0x02, 0x9A, 0x00,
1830 0x0A, 0x17, 0x0E, 0x03, 0x94, 0x02, 0x9A, 0x00, 0x89, 0x02, 0x21, 0x24, 0x98,
1831 0x02, 0x9A, 0x00, 0x11, 0x04, 0x05, 0x88, 0x9C, 0x02, 0x9A, 0x00, 0x6C, 0x10,
1832 0x00, 0x22, 0xA0, 0x02, 0x9A, 0x00, 0x32, 0x00, 0x61, 0xD3, 0xA8, 0x02, 0x9A,
1833 0x00, 0x0B, 0x86, 0x00, 0x02, 0x14, 0x06, 0x9A, 0x00, 0x77, 0x3E, 0x03, 0x30,
1834 0x10, 0x06, 0x9A, 0x00, 0x77, 0x3E, 0x03, 0x30, 0x08, 0x08, 0x9A, 0x00, 0x70,
1835 0x00, 0x00, 0x48, 0x78, 0x07, 0x10, 0x00, 0x33, 0x03, 0x00, 0x82, 0x4C, 0x02,
1836 0x9A, 0x00, 0x85, 0x0C, 0x05, 0x04, 0x30, 0x1F, 0x9A, 0x00, 0x03, 0x16, 0x2C,
1837 0x00, 0xE0, 0x08, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x9A, 0x00,
1838 0x7E, 0x00, 0x00, 0x40, 0x2E, 0x00, 0x02, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x21,
1839 0x00, 0x0D, 0x00, 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x03,
1840 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00,
1841 0x80, 0x38, 0x03, 0x9A, 0x00, 0x23, 0x00, 0x30, 0x00, 0x00, 0x03, 0x9A, 0x00,
1842 0x25, 0x01, 0x00, 0x00, 0x54, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x80, 0x00, 0x2E,
1843 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x09, 0x00, 0x30, 0x03,
1844 0x9A, 0x00, 0x30, 0x00, 0x10, 0x00, 0x48, 0x03, 0x9A, 0x00, 0x88, 0x00, 0x70,
1845 0x00, 0x38, 0xD6, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x04, 0xD6, 0x00, 0x00,
1846 0x01, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0x20, 0x4E, 0x00, 0x00, 0x21,
1847 0x00, 0x07, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x82, 0x18, 0x03,
1848 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F,
1849 0x02, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00,
1850 0x78, 0x09, 0x9A, 0x00, 0x0F, 0x3E, 0x7A, 0x88, 0x30, 0x08, 0x9A, 0x00, 0x91,
1851 0x10, 0x27, 0x00, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x88, 0x14, 0x09,
1852 0x90, 0x00, 0x00, 0x00, 0x0A, 0x88, 0x10, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0A,
1853 0x88, 0x14, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x88, 0x00, 0x00, 0x02, 0x00,
1854 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x09, 0x90, 0x00, 0x15,
1855 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20, 0xA1, 0x07, 0x00, 0x01, 0x00,
1856 0x02, 0x00, 0x74, 0x49, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00,
1857 0x00, 0x20, 0xA1, 0x07, 0x00, 0x21, 0x00, 0x05, 0x00, 0x30, 0x08, 0x9A, 0x00,
1858 0x91, 0x10, 0x27, 0x01, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27, 0x00, 0x20,
1859 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00,
1860 0x02, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x00, 0x02, 0x9A,
1861 0x00, 0x00, 0x98, 0x8F, 0x02, 0x16, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
1862};
1863
1864/* HIGH SPEED TO LOW/MID SPEED */
1865static u8 seq_script_step32_gp106[] = {
1866 0x34, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x03, 0x00, 0x01,
1867 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x0B, 0x00, 0x10, 0x09,
1868 0x90, 0x00, 0x00, 0x00, 0x0C, 0x24, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0C,
1869 0x24, 0x10, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0C, 0x24, 0x14, 0x49, 0x90, 0x00,
1870 0x00, 0x00, 0x0C, 0x24, 0x10, 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E,
1871 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x10, 0x03,
1872 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00,
1873 0x00, 0x21, 0x00, 0x0D, 0x00, 0x48, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x70, 0x00,
1874 0x00, 0x02, 0x9A, 0x00, 0x00, 0x10, 0x8F, 0x82, 0x14, 0x03, 0x9A, 0x00, 0x01,
1875 0x00, 0x00, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x10, 0x8F, 0x02, 0x90, 0x00,
1876 0x9A, 0x00, 0x61, 0x00, 0x00, 0x00, 0x90, 0x00, 0x9A, 0x00, 0x7F, 0x00, 0x00,
1877 0xC0, 0x2E, 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x35, 0x00,
1878 0x98, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x06, 0x9A, 0x00, 0x00,
1879 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00, 0x85, 0x8F, 0x8B, 0xF7, 0x38, 0x1F,
1880 0x9A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 0x1F, 0x9A, 0x00, 0x00, 0x00, 0x01,
1881 0x00, 0x34, 0x0D, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9A, 0x00,
1882 0xE7, 0x8F, 0x8B, 0xF7, 0x40, 0x0D, 0x9A, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x24,
1883 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x83, 0x40, 0x08, 0x08, 0x9A, 0x00, 0x70, 0x00,
1884 0xA0, 0x4A, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x30, 0x08, 0x9A,
1885 0x00, 0x90, 0x20, 0x67, 0x01, 0x30, 0x08, 0x9A, 0x00, 0x90, 0x20, 0x67, 0x00,
1886 0xF4, 0x73, 0x13, 0x00, 0x12, 0x11, 0x00, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10,
1887 0x11, 0x00, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x20,
1888 0x13, 0x00, 0x00, 0x00, 0x03, 0x98, 0x00, 0x20, 0x13, 0x00, 0x02, 0x00, 0x03,
1889 0x98, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, 0x03, 0x20, 0x20, 0x73, 0x13, 0x00,
1890 0x00, 0x00, 0x00, 0x00, 0x30, 0x20, 0x13, 0x00, 0x06, 0x00, 0x00, 0x10, 0x34,
1891 0x20, 0x13, 0x00, 0x00, 0x10, 0x67, 0x06, 0x24, 0x20, 0x13, 0x00, 0x01, 0x3B,
1892 0x02, 0x00, 0x2C, 0x20, 0x13, 0x00, 0x00, 0x01, 0x00, 0x00, 0x28, 0x20, 0x13,
1893 0x00, 0x10, 0x00, 0x08, 0x10, 0x20, 0x20, 0x13, 0x00, 0x01, 0x00, 0x03, 0x20,
1894 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x90,
1895 0x73, 0x13, 0x00, 0x15, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFA,
1896 0x00, 0x00, 0x21, 0x00, 0x25, 0x00, 0x2C, 0x20, 0x13, 0x00, 0x00, 0x03, 0x00,
1897 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x04, 0x10, 0xF4, 0x73, 0x13, 0x00,
1898 0x00, 0x11, 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x10, 0x11, 0x01, 0x00, 0xF0,
1899 0x73, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00, 0xEC, 0x73, 0x13, 0x00, 0x00, 0x00,
1900 0x01, 0x00, 0xF4, 0x73, 0x13, 0x00, 0x11, 0x11, 0x01, 0x00, 0xF4, 0x73, 0x13,
1901 0x00, 0x11, 0x11, 0x00, 0x00, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x20, 0x27, 0x00,
1902 0x5C, 0x06, 0x9A, 0x00, 0x11, 0x00, 0x00, 0x00, 0x70, 0x06, 0x9A, 0x00, 0x06,
1903 0x13, 0x08, 0xB4, 0x98, 0x06, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x06,
1904 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x06, 0x9A, 0x00, 0x0E, 0x06, 0x0E,
1905 0x06, 0x0C, 0x06, 0x9A, 0x00, 0x50, 0x20, 0x00, 0xFD, 0xD4, 0x0E, 0x9A, 0x00,
1906 0x00, 0x00, 0x00, 0x40, 0xD4, 0x0E, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
1907 0x08, 0x9A, 0x00, 0xE7, 0x8F, 0x80, 0x40, 0x13, 0x00, 0x02, 0x00, 0x2C, 0x01,
1908 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0x10, 0x27, 0x00, 0x00, 0x21, 0x00, 0x25,
1909 0x00, 0x70, 0x06, 0x9A, 0x00, 0x06, 0x13, 0x08, 0x34, 0x2C, 0x08, 0x9A, 0x00,
1910 0x00, 0x00, 0x15, 0x00, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27, 0x00, 0x48,
1911 0x02, 0x9A, 0x00, 0xA3, 0x44, 0x14, 0x86, 0x90, 0x02, 0x9A, 0x00, 0x12, 0x2C,
1912 0x18, 0x06, 0x94, 0x02, 0x9A, 0x00, 0x8A, 0x82, 0x41, 0x24, 0x98, 0x02, 0x9A,
1913 0x00, 0x11, 0x05, 0x06, 0x88, 0x9C, 0x02, 0x9A, 0x00, 0x8C, 0x10, 0x00, 0x22,
1914 0xA0, 0x02, 0x9A, 0x00, 0x32, 0x00, 0x61, 0xD3, 0xA8, 0x02, 0x9A, 0x00, 0x0B,
1915 0x86, 0x00, 0x01, 0x14, 0x06, 0x9A, 0x00, 0x77, 0x3E, 0x03, 0x30, 0x10, 0x06,
1916 0x9A, 0x00, 0x77, 0x3E, 0x03, 0x30, 0x08, 0x08, 0x9A, 0x00, 0x70, 0x00, 0x00,
1917 0x48, 0x78, 0x07, 0x10, 0x00, 0x33, 0x03, 0x00, 0x82, 0x4C, 0x02, 0x9A, 0x00,
1918 0x85, 0x0C, 0x05, 0x06, 0x30, 0x1F, 0x9A, 0x00, 0x03, 0x16, 0x2C, 0x00, 0xE0,
1919 0x08, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x9A, 0x00, 0x7E, 0x00,
1920 0x00, 0x40, 0x2E, 0x00, 0x02, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x21, 0x00, 0x0D,
1921 0x00, 0x14, 0x03, 0x9A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x03, 0x9A, 0x00,
1922 0x01, 0x00, 0x00, 0x00, 0x10, 0x02, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x80, 0x38,
1923 0x03, 0x9A, 0x00, 0x23, 0x01, 0x30, 0x00, 0x00, 0x03, 0x9A, 0x00, 0x2D, 0x02,
1924 0x00, 0x00, 0x54, 0x03, 0x9A, 0x00, 0x00, 0x00, 0x80, 0x00, 0x2E, 0x00, 0x02,
1925 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x09, 0x00, 0x30, 0x03, 0x9A, 0x00,
1926 0x30, 0x00, 0x10, 0x00, 0x48, 0x03, 0x9A, 0x00, 0x88, 0x00, 0x70, 0x00, 0x38,
1927 0xD6, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x04, 0xD6, 0x00, 0x00, 0x01, 0x00,
1928 0x00, 0x00, 0x2E, 0x00, 0x02, 0x00, 0x20, 0x4E, 0x00, 0x00, 0x21, 0x00, 0x07,
1929 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x82, 0x18, 0x03, 0x9A, 0x00,
1930 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x90, 0x8F, 0x02, 0x2E,
1931 0x00, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x78, 0x09,
1932 0x9A, 0x00, 0x0B, 0x1E, 0x7A, 0x88, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27,
1933 0x00, 0x10, 0x09, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x98, 0x14, 0x09, 0x90, 0x00,
1934 0x00, 0x00, 0x0A, 0x98, 0x10, 0x49, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x98, 0x14,
1935 0x49, 0x90, 0x00, 0x00, 0x00, 0x0A, 0x98, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
1936 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x09, 0x90, 0x00, 0x15, 0x00, 0x03,
1937 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20, 0xA1, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00,
1938 0x74, 0x49, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x20,
1939 0xA1, 0x07, 0x00, 0x21, 0x00, 0x0D, 0x00, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10,
1940 0x27, 0x01, 0x30, 0x08, 0x9A, 0x00, 0x91, 0x10, 0x27, 0x00, 0x10, 0x09, 0x90,
1941 0x00, 0x00, 0x00, 0x08, 0x19, 0x14, 0x09, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19,
1942 0x10, 0x49, 0x90, 0x00, 0x00, 0x00, 0x08, 0x19, 0x14, 0x49, 0x90, 0x00, 0x00,
1943 0x00, 0x08, 0x19, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1944 0x00, 0x00, 0x34, 0x00, 0x02, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03,
1945 0x00, 0x00, 0x02, 0x9A, 0x00, 0x00, 0x98, 0x8F, 0x02, 0x16, 0x00, 0x02, 0x00,
1946 0x00, 0x00, 0x00, 0x00,
1947};
1948
1949#ifdef CONFIG_DEBUG_FS
1950static int mclk_debugfs_init(struct gk20a *g);
1951#endif
1952
1953static void mclk_memory_load_training_pattern(struct gk20a *g)
1954{
1955 u32 reg_writes;
1956 u32 index;
1957
1958 gk20a_dbg_info("");
1959
1960 reg_writes = ((sizeof(memory_pattern_reglist) /
1961 sizeof((memory_pattern_reglist)[0])));
1962
1963 for (index = 0; index < reg_writes; index++) {
1964 gk20a_writel(g, memory_pattern_reglist[index].regaddr,
1965 memory_pattern_reglist[index].writeval);
1966 }
1967
1968 gk20a_dbg_fn("done");
1969}
1970
1971static void mclk_seq_pmucmdhandler(struct gk20a *g, struct pmu_msg *_msg,
1972 void *param, u32 handle, u32 status)
1973{
1974 struct nv_pmu_seq_msg *msg = (struct nv_pmu_seq_msg *)_msg;
1975 struct nv_pmu_seq_msg_run_script *seq_msg;
1976 u32 msg_status = 0;
1977
1978 gk20a_dbg_info("");
1979
1980 if (status != 0) {
1981 gk20a_err(dev_from_gk20a(g), "mclk seq_script cmd aborted");
1982 msg_status = -ENOENT;
1983 goto status_update;
1984 }
1985
1986 seq_msg = &msg->run_script;
1987
1988 if (seq_msg->msg_type != NV_PMU_SEQ_MSG_ID_RUN_SCRIPT) {
1989 msg_status = -ENOENT;
1990 goto status_update;
1991 }
1992
1993 if (seq_msg->error_code) {
1994 msg_status = -ENOENT;
1995 goto status_update;
1996 }
1997
1998status_update:
1999 *((u32 *)param) = msg_status;
2000}
2001
2002static int mclk_get_memclk_table(struct gk20a *g)
2003{
2004 int status = 0;
2005 u8 *mem_table_ptr = NULL;
2006 u32 idx_to_ptr_tbl[8];
2007 u32 idx_to_cmd_ptr_tbl[8];
2008
2009 u32 old_fbio_delay;
2010 u32 old_fbio_cmd_delay;
2011
2012 u32 cmd_idx;
2013 u32 shadow_idx;
2014
2015 struct vbios_memory_clock_header_1x memclock_table_header = { 0 };
2016 struct vbios_memory_clock_base_entry_11 memclock_base_entry = { 0 };
2017
2018 u8 *mem_entry_ptr = NULL;
2019 int index;
2020
2021 gk20a_dbg_info("");
2022
2023 if (!(g->ops.bios.get_perf_table_ptrs &&
2024 g->ops.bios.execute_script)) {
2025 goto done;
2026 }
2027
2028 mem_table_ptr = (u8 *)g->ops.bios.get_perf_table_ptrs(g,
2029 g->bios.perf_token,
2030 MEMORY_CLOCK_TABLE);
2031 if (mem_table_ptr == NULL) {
2032 status = -EPERM;
2033 goto done;
2034 }
2035
2036 memcpy(&memclock_table_header, mem_table_ptr,
2037 sizeof(memclock_table_header));
2038
2039 if ((memclock_table_header.version <
2040 VBIOS_MEMORY_CLOCK_HEADER_11_VERSION) ||
2041 (memclock_table_header.base_entry_size <
2042 VBIOS_MEMORY_CLOCK_BASE_ENTRY_11_2_SIZE)) {
2043 status = -EINVAL;
2044 goto done;
2045 }
2046
2047 /* reset and save shadow table map and registers */
2048 old_fbio_delay = gk20a_readl(g, fb_fbpa_fbio_delay_r());
2049 old_fbio_cmd_delay = gk20a_readl(g, fb_fbpa_fbio_cmd_delay_r());
2050
2051 memset(idx_to_ptr_tbl, 0, sizeof(idx_to_ptr_tbl));
2052 memset(idx_to_cmd_ptr_tbl, 0, sizeof(idx_to_cmd_ptr_tbl));
2053
2054 /* Read table entries */
2055 mem_entry_ptr = mem_table_ptr + memclock_table_header.header_size;
2056 for (index = 0; index < memclock_table_header.entry_count; index++) {
2057 u8 script_index, cmd_script_index;
2058 u32 script_ptr = 0, cmd_script_ptr = 0;
2059
2060 memcpy(&memclock_base_entry, mem_entry_ptr,
2061 memclock_table_header.base_entry_size);
2062 if (memclock_base_entry.maximum == 0)
2063 continue;
2064
2065 script_index = BIOS_GET_FIELD(memclock_base_entry.flags1,
2066 VBIOS_MEMORY_CLOCK_BASE_ENTRY_11_FLAGS1_SCRIPT_INDEX);
2067
2068 script_ptr = gm206_bios_read_u32(g,
2069 memclock_table_header.script_list_ptr +
2070 script_index * sizeof(u32));
2071
2072 if (!script_ptr)
2073 continue;
2074
2075 /* Link and execute shadow scripts */
2076
2077 for (shadow_idx = 0; shadow_idx <= fb_fbpa_fbio_delay_priv_max_v();
2078 ++shadow_idx) {
2079 if (script_ptr == idx_to_ptr_tbl[shadow_idx]) {
2080 break;
2081 }
2082 }
2083
2084 /* script has not been executed before */
2085 if (shadow_idx > fb_fbpa_fbio_delay_priv_max_v()) {
2086 /* find unused index */
2087 for (shadow_idx = 0; shadow_idx <
2088 fb_fbpa_fbio_delay_priv_max_v();
2089 ++shadow_idx) {
2090 if (idx_to_ptr_tbl[shadow_idx] == 0)
2091 break;
2092 }
2093
2094 if (shadow_idx > fb_fbpa_fbio_delay_priv_max_v()) {
2095 gk20a_err(dev_from_gk20a(g),
2096 "invalid shadow reg script index");
2097 status = -EINVAL;
2098 goto done;
2099 }
2100
2101 idx_to_ptr_tbl[shadow_idx] = script_ptr;
2102
2103 gk20a_writel(g, fb_fbpa_fbio_delay_r(),
2104 set_field(old_fbio_delay,
2105 fb_fbpa_fbio_delay_priv_m(),
2106 fb_fbpa_fbio_delay_priv_f(shadow_idx)));
2107
2108 status = g->ops.bios.execute_script(g, script_ptr);
2109 if (status < 0) {
2110 gk20a_writel(g, fb_fbpa_fbio_delay_r(),
2111 old_fbio_delay);
2112 goto done;
2113 }
2114
2115 gk20a_writel(g, fb_fbpa_fbio_delay_r(), old_fbio_delay);
2116
2117 }
2118
2119 cmd_script_index = BIOS_GET_FIELD(memclock_base_entry.flags2,
2120 VBIOS_MEMORY_CLOCK_BASE_ENTRY_12_FLAGS2_CMD_SCRIPT_INDEX);
2121
2122 cmd_script_ptr = gm206_bios_read_u32(g,
2123 memclock_table_header.cmd_script_list_ptr +
2124 cmd_script_index * sizeof(u32));
2125
2126 if (!cmd_script_ptr)
2127 continue;
2128
2129 /* Link and execute cmd shadow scripts */
2130 for (cmd_idx = 0; cmd_idx <= fb_fbpa_fbio_cmd_delay_cmd_priv_max_v();
2131 ++cmd_idx) {
2132 if (cmd_script_ptr == idx_to_cmd_ptr_tbl[cmd_idx])
2133 break;
2134 }
2135
2136 /* script has not been executed before */
2137 if (cmd_idx > fb_fbpa_fbio_cmd_delay_cmd_priv_max_v()) {
2138 /* find unused index */
2139 for (cmd_idx = 0; cmd_idx <
2140 fb_fbpa_fbio_cmd_delay_cmd_priv_max_v();
2141 ++cmd_idx) {
2142 if (idx_to_cmd_ptr_tbl[cmd_idx] == 0)
2143 break;
2144 }
2145
2146 if (cmd_idx > fb_fbpa_fbio_cmd_delay_cmd_priv_max_v()) {
2147 gk20a_err(dev_from_gk20a(g),
2148 "invalid shadow reg cmd script index");
2149 status = -EINVAL;
2150 goto done;
2151 }
2152
2153 idx_to_cmd_ptr_tbl[cmd_idx] = cmd_script_ptr;
2154 gk20a_writel(g, fb_fbpa_fbio_cmd_delay_r(),
2155 set_field(old_fbio_cmd_delay,
2156 fb_fbpa_fbio_cmd_delay_cmd_priv_m(),
2157 fb_fbpa_fbio_cmd_delay_cmd_priv_f(
2158 cmd_idx)));
2159
2160 status = g->ops.bios.execute_script(g, cmd_script_ptr);
2161 if (status < 0) {
2162 gk20a_writel(g, fb_fbpa_fbio_cmd_delay_r(),
2163 old_fbio_cmd_delay);
2164 goto done;
2165 }
2166
2167 gk20a_writel(g, fb_fbpa_fbio_cmd_delay_r(),
2168 old_fbio_cmd_delay);
2169
2170 }
2171
2172 mem_entry_ptr += memclock_table_header.base_entry_size +
2173 memclock_table_header.strap_entry_count *
2174 memclock_table_header.strap_entry_size;
2175 }
2176
2177done:
2178 return status;
2179}
2180
2181int clk_mclkseq_init_mclk_gddr5(struct gk20a *g)
2182{
2183 struct clk_mclk_state *mclk;
2184 int status;
2185 struct clk_set_info *p5_info;
2186 struct clk_set_info *p0_info;
2187
2188
2189 gk20a_dbg_fn("");
2190
2191 mclk = &g->clk_pmu.clk_mclk;
2192
2193 mutex_init(&mclk->mclk_lock);
2194 mutex_init(&mclk->data_lock);
2195
2196 /* FBPA gain WAR */
2197 gk20a_writel(g, fb_fbpa_fbio_iref_byte_rx_ctrl_r(), 0x22222222);
2198
2199 mclk->speed = gk20a_mclk_low_speed; /* Value from Devinit */
2200
2201 /* Parse VBIOS */
2202 status = mclk_get_memclk_table(g);
2203 if (status < 0)
2204 return status;
2205
2206 /* Load RAM pattern */
2207 mclk_memory_load_training_pattern(g);
2208
2209 p5_info = pstate_get_clk_set_info(g,
2210 CTRL_PERF_PSTATE_P5, clkwhich_mclk);
2211 if (!p5_info)
2212 return -EINVAL;
2213
2214 p0_info = pstate_get_clk_set_info(g,
2215 CTRL_PERF_PSTATE_P0, clkwhich_mclk);
2216 if (!p0_info)
2217 return -EINVAL;
2218
2219
2220 mclk->p5_min = p5_info->min_mhz;
2221 mclk->p0_min = p0_info->min_mhz;
2222
2223
2224 mclk->vreg_buf = kcalloc(VREG_COUNT,
2225 sizeof(u32), GFP_KERNEL);
2226 if (!mclk->vreg_buf) {
2227 gk20a_err(dev_from_gk20a(g),
2228 "unable to allocate memory for VREG");
2229 return -ENOMEM;
2230 }
2231
2232#ifdef CONFIG_DEBUG_FS
2233 if (!mclk->debugfs_set) {
2234 if (mclk_debugfs_init(g))
2235 mclk->debugfs_set = true;
2236 }
2237#endif
2238 mclk->change = clk_mclkseq_change_mclk_gddr5;
2239
2240 mclk->init = true;
2241
2242 return 0;
2243}
2244
2245int clk_mclkseq_change_mclk_gddr5(struct gk20a *g, u16 val)
2246{
2247 struct clk_mclk_state *mclk;
2248 struct pmu_payload payload = { {0} };
2249 struct nv_pmu_seq_cmd cmd;
2250 struct nv_pmu_seq_cmd_run_script *pseq_cmd;
2251 u32 seqdesc;
2252 int status = 0;
2253 u32 seq_completion_status = ~0x0;
2254 u8 *seq_script_ptr = NULL;
2255 size_t seq_script_size = 0;
2256#ifdef CONFIG_DEBUG_FS
2257 u64 t0, t1;
2258#endif
2259 enum gk20a_mclk_speed speed;
2260
2261 gk20a_dbg_info("");
2262
2263 mclk = &g->clk_pmu.clk_mclk;
2264
2265 mutex_lock(&mclk->mclk_lock);
2266
2267 if (!mclk->init)
2268 goto exit_status;
2269
2270 speed = (val < mclk->p5_min) ? gk20a_mclk_low_speed :
2271 (val < mclk->p0_min) ? gk20a_mclk_mid_speed :
2272 gk20a_mclk_high_speed;
2273
2274
2275 if (speed == mclk->speed)
2276 goto exit_status;
2277
2278 switch (speed) {
2279 case gk20a_mclk_mid_speed:
2280 if (mclk->speed == gk20a_mclk_low_speed) {
2281 seq_script_ptr = seq_script_step33_gp106;
2282 seq_script_size = sizeof(seq_script_step33_gp106);
2283 } else {
2284 seq_script_ptr = seq_script_step32_gp106;
2285 seq_script_size = sizeof(seq_script_step32_gp106);
2286 }
2287 break;
2288 case gk20a_mclk_high_speed:
2289 seq_script_ptr = seq_script_step28_gp106;
2290 seq_script_size = sizeof(seq_script_step28_gp106);
2291 break;
2292 case gk20a_mclk_low_speed:
2293 if (mclk->speed == gk20a_mclk_mid_speed) {
2294 seq_script_ptr = seq_script_step33_ls_gp106;
2295 seq_script_size = sizeof(seq_script_step33_ls_gp106);
2296 } else {
2297 seq_script_ptr = seq_script_step32_ls_gp106;
2298 seq_script_size = sizeof(seq_script_step32_ls_gp106);
2299 }
2300 break;
2301 default:
2302 gk20a_err(dev_from_gk20a(g),
2303 "Illegal MCLK clock change");
2304 status = -EINVAL;
2305 goto exit_status;
2306 }
2307
2308 /* Fill command header with SEQ ID & size */
2309 memset(&cmd, 0, sizeof(cmd));
2310 cmd.hdr.unit_id = PMU_UNIT_SEQ;
2311 cmd.hdr.size = sizeof(struct nv_pmu_seq_cmd_run_script) +
2312 sizeof(struct pmu_hdr);
2313
2314 /* Fill RM_PMU_SEQ_CMD_RUN_SCRIPT struct */
2315 pseq_cmd = &cmd.run_script;
2316 pseq_cmd->cmd_type = NV_PMU_SEQ_CMD_ID_RUN_SCRIPT;
2317
2318#ifdef CONFIG_DEBUG_FS
2319 g->ops.read_ptimer(g, &t0);
2320#endif
2321
2322 if (speed == gk20a_mclk_high_speed) {
2323 gk20a_writel(g, 0x132000, 0x98010000);
2324 /* Introduce delay */
2325 gk20a_readl(g, 0x132000);
2326 gk20a_readl(g, 0x132000);
2327 }
2328
2329 gk20a_writel(g, 0x137300, 0x20000103);
2330
2331 /* Read sequencer binary*/
2332 payload.in.buf = seq_script_ptr;
2333 payload.in.size = seq_script_size;
2334 payload.in.fb_size = PMU_CMD_SUBMIT_PAYLOAD_PARAMS_FB_SIZE_UNUSED;
2335 payload.in.offset = offsetof(struct nv_pmu_seq_cmd_run_script,
2336 script_alloc);
2337
2338 memset(mclk->vreg_buf, 0, (sizeof(u32) * VREG_COUNT));
2339
2340 payload.out.buf = mclk->vreg_buf;
2341 payload.out.size = (VREG_COUNT * sizeof(u32));
2342 payload.out.fb_size = PMU_CMD_SUBMIT_PAYLOAD_PARAMS_FB_SIZE_UNUSED;
2343 payload.out.offset = offsetof(struct nv_pmu_seq_cmd_run_script,
2344 reg_alloc);
2345
2346 /* Send command to PMU to execute sequencer script */
2347 status = gk20a_pmu_cmd_post(g, (struct pmu_cmd *)&cmd, NULL, &payload,
2348 PMU_COMMAND_QUEUE_LPQ,
2349 mclk_seq_pmucmdhandler,
2350 &seq_completion_status, &seqdesc, ~0);
2351 if (status) {
2352 gk20a_err(dev_from_gk20a(g),
2353 "unable to post seq script exec cmd for unit %x ",
2354 cmd.hdr.unit_id);
2355 goto exit_status;
2356 }
2357 /* wait till sequencer script complete */
2358 pmu_wait_message_cond(&g->pmu, (gk20a_get_gr_idle_timeout(g)),
2359 &seq_completion_status, 0);
2360 if (seq_completion_status != 0) {
2361 gk20a_err(dev_from_gk20a(g),
2362 "seq_script update failed");
2363 status = -EBUSY;
2364 goto exit_status;
2365 }
2366
2367 mclk->speed = speed;
2368
2369#ifdef CONFIG_DEBUG_FS
2370 g->ops.read_ptimer(g, &t1);
2371
2372 mutex_lock(&mclk->data_lock);
2373 mclk->switch_num++;
2374
2375 if (mclk->switch_num == 1) {
2376 mclk->switch_max = mclk->switch_min =
2377 mclk->switch_avg = (t1-t0)/1000;
2378 mclk->switch_std = 0;
2379 } else {
2380 s64 prev_avg;
2381 s64 curr = (t1-t0)/1000;
2382
2383 mclk->switch_max = curr > mclk->switch_max ?
2384 curr : mclk->switch_max;
2385 mclk->switch_min = mclk->switch_min ?
2386 (curr < mclk->switch_min ?
2387 curr : mclk->switch_min) : curr;
2388 prev_avg = mclk->switch_avg;
2389 mclk->switch_avg = (curr +
2390 (mclk->switch_avg * (mclk->switch_num-1))) /
2391 mclk->switch_num;
2392 mclk->switch_std +=
2393 (curr - mclk->switch_avg) * (curr - prev_avg);
2394 }
2395 mutex_unlock(&mclk->data_lock);
2396#endif
2397exit_status:
2398
2399 mutex_unlock(&mclk->mclk_lock);
2400 return status;
2401}
2402
2403#ifdef CONFIG_DEBUG_FS
2404static int mclk_debug_speed_set(void *data, u64 val)
2405{
2406 struct gk20a *g = (struct gk20a *) data;
2407 struct clk_mclk_state *mclk;
2408
2409 mclk = &g->clk_pmu.clk_mclk;
2410
2411 /* This is problematic because it can interrupt the arbiter
2412 * and send it to sleep. we need to consider removing this
2413 */
2414 if (mclk->change)
2415 return mclk->change(g, (u16) val);
2416 return 0;
2417
2418}
2419
2420DEFINE_SIMPLE_ATTRIBUTE(
2421 mclk_debug_speed_set_fops,
2422 NULL,
2423 mclk_debug_speed_set,
2424 "%llu\n"
2425);
2426
2427static int mclk_switch_stats_show(struct seq_file *s, void *unused)
2428{
2429 struct gk20a *g = s->private;
2430 struct clk_mclk_state *mclk;
2431 u64 num;
2432 s64 tmp, avg, std, max, min;
2433
2434 mclk = &g->clk_pmu.clk_mclk;
2435
2436 /* Make copy of structure to reduce time with lock held */
2437 mutex_lock(&mclk->data_lock);
2438 std = mclk->switch_std;
2439 avg = mclk->switch_avg;
2440 max = mclk->switch_max;
2441 min = mclk->switch_min;
2442 num = mclk->switch_num;
2443 mutex_unlock(&mclk->data_lock);
2444
2445 tmp = std;
2446 do_div(tmp, num);
2447 seq_printf(s, "MCLK:\n number of transitions: %lld\n",
2448 num);
2449 seq_printf(s, "max / min : %lld / %lld usec\n",
2450 max, min);
2451 seq_printf(s, "avg / std : %lld / %ld usec\n",
2452 avg, int_sqrt(tmp));
2453
2454 return 0;
2455}
2456
2457static int mclk_switch_stats_open(struct inode *inode, struct file *file)
2458{
2459 return single_open(file, mclk_switch_stats_show, inode->i_private);
2460}
2461
2462static const struct file_operations mclk_switch_stats_fops = {
2463 .open = mclk_switch_stats_open,
2464 .read = seq_read,
2465 .llseek = seq_lseek,
2466 .release = single_release,
2467};
2468
2469
2470static int mclk_debugfs_init(struct gk20a *g)
2471{
2472 struct gk20a_platform *platform = dev_get_drvdata(g->dev);
2473
2474 struct dentry *gpu_root = platform->debugfs;
2475 struct dentry *d;
2476
2477 gk20a_dbg(gpu_dbg_info, "g=%p", g);
2478
2479 d = debugfs_create_file(
2480 "mclk_speed_set",
2481 S_IWUGO,
2482 gpu_root,
2483 g,
2484 &mclk_debug_speed_set_fops);
2485 if (!d)
2486 return -ENOMEM;
2487
2488 d = debugfs_create_file(
2489 "mclk_switch_stats",
2490 S_IRUGO,
2491 gpu_root,
2492 g,
2493 &mclk_switch_stats_fops);
2494 if (!d)
2495 return -ENOMEM;
2496
2497 return 0;
2498}
2499#endif