1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3 *
4 * Copyright(c) 2007 - 2017 Realtek Corporation.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of version 2 of the GNU General Public License as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 *****************************************************************************/
16
17 /*Image2HeaderVersion: 3.5.2*/
18 #include "mp_precomp.h"
19 #include "../phydm_precomp.h"
20
21 #if (RTL8188E_SUPPORT == 1)
22 static boolean
check_positive(struct dm_struct * dm,const u32 condition1,const u32 condition2,const u32 condition3,const u32 condition4)23 check_positive(
24 struct dm_struct *dm,
25 const u32 condition1,
26 const u32 condition2,
27 const u32 condition3,
28 const u32 condition4
29 )
30 {
31 u8 _board_type = ((dm->board_type & BIT(4)) >> 4) << 0 | /* _GLNA*/
32 ((dm->board_type & BIT(3)) >> 3) << 1 | /* _GPA*/
33 ((dm->board_type & BIT(7)) >> 7) << 2 | /* _ALNA*/
34 ((dm->board_type & BIT(6)) >> 6) << 3 | /* _APA */
35 ((dm->board_type & BIT(2)) >> 2) << 4 | /* _BT*/
36 ((dm->board_type & BIT(1)) >> 1) << 5 | /* _NGFF*/
37 ((dm->board_type & BIT(5)) >> 5) << 6; /* _TRSWT*/
38
39 u32 cond1 = condition1, cond2 = condition2, cond3 = condition3, cond4 = condition4;
40
41 u8 cut_version_for_para = (dm->cut_version == ODM_CUT_A) ? 15 : dm->cut_version;
42 u8 pkg_type_for_para = (dm->package_type == 0) ? 15 : dm->package_type;
43
44 u32 driver1 = cut_version_for_para << 24 |
45 (dm->support_interface & 0xF0) << 16 |
46 dm->support_platform << 16 |
47 pkg_type_for_para << 12 |
48 (dm->support_interface & 0x0F) << 8 |
49 _board_type;
50
51 u32 driver2 = (dm->type_glna & 0xFF) << 0 |
52 (dm->type_gpa & 0xFF) << 8 |
53 (dm->type_alna & 0xFF) << 16 |
54 (dm->type_apa & 0xFF) << 24;
55
56 u32 driver3 = 0;
57
58 u32 driver4 = (dm->type_glna & 0xFF00) >> 8 |
59 (dm->type_gpa & 0xFF00) |
60 (dm->type_alna & 0xFF00) << 8 |
61 (dm->type_apa & 0xFF00) << 16;
62
63 PHYDM_DBG(dm, ODM_COMP_INIT,
64 "===> %s (cond1, cond2, cond3, cond4) = (0x%X 0x%X 0x%X 0x%X)\n",
65 __func__, cond1, cond2, cond3, cond4);
66 PHYDM_DBG(dm, ODM_COMP_INIT,
67 "===> %s (driver1, driver2, driver3, driver4) = (0x%X 0x%X 0x%X 0x%X)\n",
68 __func__, driver1, driver2, driver3, driver4);
69
70 PHYDM_DBG(dm, ODM_COMP_INIT,
71 " (Platform, Interface) = (0x%X, 0x%X)\n",
72 dm->support_platform, dm->support_interface);
73 PHYDM_DBG(dm, ODM_COMP_INIT,
74 " (Board, Package) = (0x%X, 0x%X)\n", dm->board_type,
75 dm->package_type);
76
77
78 /*============== value Defined Check ===============*/
79 /*QFN type [15:12] and cut version [27:24] need to do value check*/
80
81 if (((cond1 & 0x0000F000) != 0) && ((cond1 & 0x0000F000) != (driver1 & 0x0000F000)))
82 return false;
83 if (((cond1 & 0x0F000000) != 0) && ((cond1 & 0x0F000000) != (driver1 & 0x0F000000)))
84 return false;
85
86 /*=============== Bit Defined Check ================*/
87 /* We don't care [31:28] */
88
89 cond1 &= 0x00FF0FFF;
90 driver1 &= 0x00FF0FFF;
91
92 if ((cond1 & driver1) == cond1) {
93 u32 bit_mask = 0;
94
95 if ((cond1 & 0x0F) == 0) /* board_type is DONTCARE*/
96 return true;
97
98 if ((cond1 & BIT(0)) != 0) /*GLNA*/
99 bit_mask |= 0x000000FF;
100 if ((cond1 & BIT(1)) != 0) /*GPA*/
101 bit_mask |= 0x0000FF00;
102 if ((cond1 & BIT(2)) != 0) /*ALNA*/
103 bit_mask |= 0x00FF0000;
104 if ((cond1 & BIT(3)) != 0) /*APA*/
105 bit_mask |= 0xFF000000;
106
107 if (((cond2 & bit_mask) == (driver2 & bit_mask)) && ((cond4 & bit_mask) == (driver4 & bit_mask))) /* board_type of each RF path is matched*/
108 return true;
109 else
110 return false;
111 } else
112 return false;
113 }
114
115 /******************************************************************************
116 * agc_tab.TXT
117 ******************************************************************************/
118
119 u32 array_mp_8188e_agc_tab[] = {
120 0x88000001, 0x00000000, 0x40000000, 0x00000000,
121 0xC78, 0xF6000001,
122 0xC78, 0xF5010001,
123 0xC78, 0xF4020001,
124 0xC78, 0xF3030001,
125 0xC78, 0xF2040001,
126 0x90000001, 0x00000000, 0x40000000, 0x00000000,
127 0xC78, 0xF7000001,
128 0xC78, 0xF6010001,
129 0xC78, 0xF5020001,
130 0xC78, 0xF4030001,
131 0xC78, 0xF3040001,
132 0x90000001, 0x00000001, 0x40000000, 0x00000000,
133 0xC78, 0xF9000001,
134 0xC78, 0xF8010001,
135 0xC78, 0xF7020001,
136 0xC78, 0xF6030001,
137 0xC78, 0xF5040001,
138 0x98000001, 0x00000002, 0x40000000, 0x00000000,
139 0xC78, 0xFB000001,
140 0xC78, 0xFB010001,
141 0xC78, 0xFA020001,
142 0xC78, 0xF9030001,
143 0xC78, 0xF8040001,
144 0x90000001, 0x00000002, 0x40000000, 0x00000000,
145 0xC78, 0xFF000001,
146 0xC78, 0xFF010001,
147 0xC78, 0xFE020001,
148 0xC78, 0xFD030001,
149 0xC78, 0xFC040001,
150 0xA0000000, 0x00000000,
151 0xC78, 0xFB000001,
152 0xC78, 0xFB010001,
153 0xC78, 0xFB020001,
154 0xC78, 0xFB030001,
155 0xC78, 0xFB040001,
156 0xB0000000, 0x00000000,
157 0x88000001, 0x00000000, 0x40000000, 0x00000000,
158 0xC78, 0xF1050001,
159 0xC78, 0xF0060001,
160 0xC78, 0xEF070001,
161 0xC78, 0xEE080001,
162 0xC78, 0xED090001,
163 0xC78, 0xEC0A0001,
164 0xC78, 0xEB0B0001,
165 0xC78, 0xEA0C0001,
166 0xC78, 0xE90D0001,
167 0xC78, 0xE80E0001,
168 0xC78, 0xE70F0001,
169 0xC78, 0xE6100001,
170 0xC78, 0xE5110001,
171 0xC78, 0xE4120001,
172 0xC78, 0xE3130001,
173 0xC78, 0xE2140001,
174 0xC78, 0xC5150001,
175 0xC78, 0xC4160001,
176 0xC78, 0xC3170001,
177 0xC78, 0xC2180001,
178 0xC78, 0x88190001,
179 0xC78, 0x871A0001,
180 0xC78, 0x861B0001,
181 0xC78, 0x851C0001,
182 0xC78, 0x841D0001,
183 0xC78, 0x831E0001,
184 0xC78, 0x821F0001,
185 0xC78, 0x81200001,
186 0xC78, 0x80210001,
187 0x90000001, 0x00000000, 0x40000000, 0x00000000,
188 0xC78, 0xF2050001,
189 0xC78, 0xF1060001,
190 0xC78, 0xF0070001,
191 0xC78, 0xEF080001,
192 0xC78, 0xEE090001,
193 0xC78, 0xED0A0001,
194 0xC78, 0xEC0B0001,
195 0xC78, 0xEB0C0001,
196 0xC78, 0xEA0D0001,
197 0xC78, 0xE90E0001,
198 0xC78, 0xE80F0001,
199 0xC78, 0xE7100001,
200 0xC78, 0xE6110001,
201 0xC78, 0xE5120001,
202 0xC78, 0xE4130001,
203 0xC78, 0xE3140001,
204 0xC78, 0xE2150001,
205 0xC78, 0xE1160001,
206 0xC78, 0x89170001,
207 0xC78, 0x88180001,
208 0xC78, 0x87190001,
209 0xC78, 0x861A0001,
210 0xC78, 0x851B0001,
211 0xC78, 0x841C0001,
212 0xC78, 0x831D0001,
213 0xC78, 0x821E0001,
214 0xC78, 0x811F0001,
215 0xC78, 0x6B200001,
216 0xC78, 0x6A210001,
217 0x90000001, 0x00000001, 0x40000000, 0x00000000,
218 0xC78, 0xF4050001,
219 0xC78, 0xF3060001,
220 0xC78, 0xF2070001,
221 0xC78, 0xF1080001,
222 0xC78, 0xF0090001,
223 0xC78, 0xEF0A0001,
224 0xC78, 0xEE0B0001,
225 0xC78, 0xED0C0001,
226 0xC78, 0xEC0D0001,
227 0xC78, 0xEB0E0001,
228 0xC78, 0xEA0F0001,
229 0xC78, 0xE9100001,
230 0xC78, 0xE8110001,
231 0xC78, 0xE7120001,
232 0xC78, 0xE6130001,
233 0xC78, 0xE5140001,
234 0xC78, 0xE4150001,
235 0xC78, 0xE3160001,
236 0xC78, 0xE2170001,
237 0xC78, 0xE1180001,
238 0xC78, 0x8A190001,
239 0xC78, 0x891A0001,
240 0xC78, 0x881B0001,
241 0xC78, 0x871C0001,
242 0xC78, 0x861D0001,
243 0xC78, 0x851E0001,
244 0xC78, 0x841F0001,
245 0xC78, 0x83200001,
246 0xC78, 0x82210001,
247 0x98000001, 0x00000002, 0x40000000, 0x00000000,
248 0xC78, 0xF7050001,
249 0xC78, 0xF6060001,
250 0xC78, 0xF5070001,
251 0xC78, 0xF4080001,
252 0xC78, 0xF3090001,
253 0xC78, 0xF20A0001,
254 0xC78, 0xF10B0001,
255 0xC78, 0xF00C0001,
256 0xC78, 0xEF0D0001,
257 0xC78, 0xEE0E0001,
258 0xC78, 0xED0F0001,
259 0xC78, 0xEC100001,
260 0xC78, 0xEB110001,
261 0xC78, 0xEA120001,
262 0xC78, 0xE9130001,
263 0xC78, 0xE8140001,
264 0xC78, 0xE7150001,
265 0xC78, 0xE6160001,
266 0xC78, 0xE5170001,
267 0xC78, 0xE4180001,
268 0xC78, 0xC7190001,
269 0xC78, 0xC61A0001,
270 0xC78, 0xC51B0001,
271 0xC78, 0xC41C0001,
272 0xC78, 0xC31D0001,
273 0xC78, 0xC21E0001,
274 0xC78, 0x871F0001,
275 0xC78, 0x86200001,
276 0xC78, 0x85210001,
277 0x90000001, 0x00000002, 0x40000000, 0x00000000,
278 0xC78, 0xFB050001,
279 0xC78, 0xFA060001,
280 0xC78, 0xF9070001,
281 0xC78, 0xF8080001,
282 0xC78, 0xF7090001,
283 0xC78, 0xF60A0001,
284 0xC78, 0xF50B0001,
285 0xC78, 0xF40C0001,
286 0xC78, 0xF30D0001,
287 0xC78, 0xF20E0001,
288 0xC78, 0xF10F0001,
289 0xC78, 0xF0100001,
290 0xC78, 0xEF110001,
291 0xC78, 0xEE120001,
292 0xC78, 0xED130001,
293 0xC78, 0xEC140001,
294 0xC78, 0xEB150001,
295 0xC78, 0xEA160001,
296 0xC78, 0xE9170001,
297 0xC78, 0xE8180001,
298 0xC78, 0xE7190001,
299 0xC78, 0xE61A0001,
300 0xC78, 0xC51B0001,
301 0xC78, 0xC41C0001,
302 0xC78, 0xC31D0001,
303 0xC78, 0xC21E0001,
304 0xC78, 0x881F0001,
305 0xC78, 0x87200001,
306 0xC78, 0x86210001,
307 0x98000000, 0x00000000, 0x40000000, 0x00000000,
308 0xC78, 0xFA050001,
309 0xC78, 0xF9060001,
310 0xC78, 0xF8070001,
311 0xC78, 0xF7080001,
312 0xC78, 0xF6090001,
313 0xC78, 0xF50A0001,
314 0xC78, 0xF40B0001,
315 0xC78, 0xF30C0001,
316 0xC78, 0xF20D0001,
317 0xC78, 0xF10E0001,
318 0xC78, 0xF00F0001,
319 0xC78, 0xEF100001,
320 0xC78, 0xEE110001,
321 0xC78, 0xED120001,
322 0xC78, 0xEC130001,
323 0xC78, 0xEB140001,
324 0xC78, 0xEA150001,
325 0xC78, 0xE9160001,
326 0xC78, 0xE8170001,
327 0xC78, 0xE7180001,
328 0xC78, 0xE6190001,
329 0xC78, 0xE51A0001,
330 0xC78, 0xE41B0001,
331 0xC78, 0xC71C0001,
332 0xC78, 0xC61D0001,
333 0xC78, 0xC51E0001,
334 0xC78, 0xC41F0001,
335 0xC78, 0xC3200001,
336 0xC78, 0xC2210001,
337 0xA0000000, 0x00000000,
338 0xC78, 0xFB050001,
339 0xC78, 0xFA060001,
340 0xC78, 0xF9070001,
341 0xC78, 0xF8080001,
342 0xC78, 0xF7090001,
343 0xC78, 0xF60A0001,
344 0xC78, 0xF50B0001,
345 0xC78, 0xF40C0001,
346 0xC78, 0xF30D0001,
347 0xC78, 0xF20E0001,
348 0xC78, 0xF10F0001,
349 0xC78, 0xF0100001,
350 0xC78, 0xEF110001,
351 0xC78, 0xEE120001,
352 0xC78, 0xED130001,
353 0xC78, 0xEC140001,
354 0xC78, 0xEB150001,
355 0xC78, 0xEA160001,
356 0xC78, 0xE9170001,
357 0xC78, 0xE8180001,
358 0xC78, 0xE7190001,
359 0xC78, 0xE61A0001,
360 0xC78, 0xE51B0001,
361 0xC78, 0xE41C0001,
362 0xC78, 0xE31D0001,
363 0xC78, 0xE21E0001,
364 0xC78, 0xE11F0001,
365 0xC78, 0x8A200001,
366 0xC78, 0x89210001,
367 0xB0000000, 0x00000000,
368 0x88000001, 0x00000000, 0x40000000, 0x00000000,
369 0xC78, 0x66220001,
370 0xC78, 0x65230001,
371 0xC78, 0x64240001,
372 0xC78, 0x63250001,
373 0xC78, 0x62260001,
374 0xC78, 0x61270001,
375 0xC78, 0x60280001,
376 0x90000001, 0x00000000, 0x40000000, 0x00000000,
377 0xC78, 0x69220001,
378 0xC78, 0x68230001,
379 0xC78, 0x67240001,
380 0xC78, 0x66250001,
381 0xC78, 0x65260001,
382 0xC78, 0x64270001,
383 0xC78, 0x63280001,
384 0x90000001, 0x00000001, 0x40000000, 0x00000000,
385 0xC78, 0x6B220001,
386 0xC78, 0x6A230001,
387 0xC78, 0x69240001,
388 0xC78, 0x68250001,
389 0xC78, 0x67260001,
390 0xC78, 0x66270001,
391 0xC78, 0x65280001,
392 0x98000001, 0x00000002, 0x40000000, 0x00000000,
393 0xC78, 0x84220001,
394 0xC78, 0x83230001,
395 0xC78, 0x82240001,
396 0xC78, 0x81250001,
397 0xC78, 0x67260001,
398 0xC78, 0x66270001,
399 0xC78, 0x65280001,
400 0x90000001, 0x00000002, 0x40000000, 0x00000000,
401 0xC78, 0x85220001,
402 0xC78, 0x84230001,
403 0xC78, 0x83240001,
404 0xC78, 0x82250001,
405 0xC78, 0x6A260001,
406 0xC78, 0x69270001,
407 0xC78, 0x68280001,
408 0xA0000000, 0x00000000,
409 0xC78, 0x88220001,
410 0xC78, 0x87230001,
411 0xC78, 0x86240001,
412 0xC78, 0x85250001,
413 0xC78, 0x84260001,
414 0xC78, 0x83270001,
415 0xC78, 0x82280001,
416 0xB0000000, 0x00000000,
417 0x88000001, 0x00000000, 0x40000000, 0x00000000,
418 0xC78, 0x4A290001,
419 0xC78, 0x492A0001,
420 0xC78, 0x482B0001,
421 0xC78, 0x472C0001,
422 0x90000001, 0x00000000, 0x40000000, 0x00000000,
423 0xC78, 0x62290001,
424 0xC78, 0x612A0001,
425 0xC78, 0x462B0001,
426 0xC78, 0x452C0001,
427 0x90000001, 0x00000001, 0x40000000, 0x00000000,
428 0xC78, 0x64290001,
429 0xC78, 0x632A0001,
430 0xC78, 0x622B0001,
431 0xC78, 0x612C0001,
432 0x98000001, 0x00000002, 0x40000000, 0x00000000,
433 0xC78, 0x64290001,
434 0xC78, 0x632A0001,
435 0xC78, 0x622B0001,
436 0xC78, 0x612C0001,
437 0x90000001, 0x00000002, 0x40000000, 0x00000000,
438 0xC78, 0x67290001,
439 0xC78, 0x662A0001,
440 0xC78, 0x652B0001,
441 0xC78, 0x642C0001,
442 0x98000000, 0x00000000, 0x40000000, 0x00000000,
443 0xC78, 0x81290001,
444 0xC78, 0x242A0001,
445 0xC78, 0x232B0001,
446 0xC78, 0x222C0001,
447 0xA0000000, 0x00000000,
448 0xC78, 0x6B290001,
449 0xC78, 0x6A2A0001,
450 0xC78, 0x692B0001,
451 0xC78, 0x682C0001,
452 0xB0000000, 0x00000000,
453 0x88000001, 0x00000000, 0x40000000, 0x00000000,
454 0xC78, 0x462D0001,
455 0xC78, 0x452E0001,
456 0xC78, 0x442F0001,
457 0xC78, 0x43300001,
458 0xC78, 0x42310001,
459 0xC78, 0x41320001,
460 0xC78, 0x40330001,
461 0x90000001, 0x00000000, 0x40000000, 0x00000000,
462 0xC78, 0x442D0001,
463 0xC78, 0x432E0001,
464 0xC78, 0x422F0001,
465 0xC78, 0x41300001,
466 0xC78, 0x40310001,
467 0xC78, 0x40320001,
468 0xC78, 0x40330001,
469 0x90000001, 0x00000001, 0x40000000, 0x00000000,
470 0xC78, 0x462D0001,
471 0xC78, 0x452E0001,
472 0xC78, 0x442F0001,
473 0xC78, 0x43300001,
474 0xC78, 0x42310001,
475 0xC78, 0x41320001,
476 0xC78, 0x40330001,
477 0x98000001, 0x00000002, 0x40000000, 0x00000000,
478 0xC78, 0x4B2D0001,
479 0xC78, 0x4A2E0001,
480 0xC78, 0x492F0001,
481 0xC78, 0x48300001,
482 0xC78, 0x47310001,
483 0xC78, 0x46320001,
484 0xC78, 0x45330001,
485 0x90000001, 0x00000002, 0x40000000, 0x00000000,
486 0xC78, 0x4A2D0001,
487 0xC78, 0x492E0001,
488 0xC78, 0x482F0001,
489 0xC78, 0x47300001,
490 0xC78, 0x46310001,
491 0xC78, 0x45320001,
492 0xC78, 0x44330001,
493 0xA0000000, 0x00000000,
494 0xC78, 0x672D0001,
495 0xC78, 0x662E0001,
496 0xC78, 0x652F0001,
497 0xC78, 0x64300001,
498 0xC78, 0x63310001,
499 0xC78, 0x62320001,
500 0xC78, 0x61330001,
501 0xB0000000, 0x00000000,
502 0x88000001, 0x00000000, 0x40000000, 0x00000000,
503 0xC78, 0x40340001,
504 0xC78, 0x40350001,
505 0xC78, 0x40360001,
506 0xC78, 0x40370001,
507 0xC78, 0x40380001,
508 0xC78, 0x40390001,
509 0xC78, 0x403A0001,
510 0xC78, 0x403B0001,
511 0xC78, 0x403C0001,
512 0xC78, 0x403D0001,
513 0xC78, 0x403E0001,
514 0x90000001, 0x00000000, 0x40000000, 0x00000000,
515 0xC78, 0x40340001,
516 0xC78, 0x40350001,
517 0xC78, 0x40360001,
518 0xC78, 0x40370001,
519 0xC78, 0x40380001,
520 0xC78, 0x40390001,
521 0xC78, 0x403A0001,
522 0xC78, 0x403B0001,
523 0xC78, 0x403C0001,
524 0xC78, 0x403D0001,
525 0xC78, 0x403E0001,
526 0x90000001, 0x00000001, 0x40000000, 0x00000000,
527 0xC78, 0x40340001,
528 0xC78, 0x40350001,
529 0xC78, 0x40360001,
530 0xC78, 0x40370001,
531 0xC78, 0x40380001,
532 0xC78, 0x40390001,
533 0xC78, 0x403A0001,
534 0xC78, 0x403B0001,
535 0xC78, 0x403C0001,
536 0xC78, 0x403D0001,
537 0xC78, 0x403E0001,
538 0x98000001, 0x00000002, 0x40000000, 0x00000000,
539 0xC78, 0x44340001,
540 0xC78, 0x43350001,
541 0xC78, 0x42360001,
542 0xC78, 0x41370001,
543 0xC78, 0x40380001,
544 0xC78, 0x40390001,
545 0xC78, 0x403A0001,
546 0xC78, 0x403B0001,
547 0xC78, 0x403C0001,
548 0xC78, 0x403D0001,
549 0xC78, 0x403E0001,
550 0x90000001, 0x00000002, 0x40000000, 0x00000000,
551 0xC78, 0x43340001,
552 0xC78, 0x42350001,
553 0xC78, 0x41360001,
554 0xC78, 0x40370001,
555 0xC78, 0x40380001,
556 0xC78, 0x40390001,
557 0xC78, 0x403A0001,
558 0xC78, 0x403B0001,
559 0xC78, 0x403C0001,
560 0xC78, 0x403D0001,
561 0xC78, 0x403E0001,
562 0x98000000, 0x00000000, 0x40000000, 0x00000000,
563 0xC78, 0x60340001,
564 0xC78, 0x4A350001,
565 0xC78, 0x49360001,
566 0xC78, 0x48370001,
567 0xC78, 0x47380001,
568 0xC78, 0x46390001,
569 0xC78, 0x453A0001,
570 0xC78, 0x443B0001,
571 0xC78, 0x433C0001,
572 0xC78, 0x423D0001,
573 0xC78, 0x413E0001,
574 0xA0000000, 0x00000000,
575 0xC78, 0x46340001,
576 0xC78, 0x45350001,
577 0xC78, 0x44360001,
578 0xC78, 0x43370001,
579 0xC78, 0x42380001,
580 0xC78, 0x41390001,
581 0xC78, 0x403A0001,
582 0xC78, 0x403B0001,
583 0xC78, 0x403C0001,
584 0xC78, 0x403D0001,
585 0xC78, 0x403E0001,
586 0xB0000000, 0x00000000,
587 0x80000001, 0x00000001, 0x40000000, 0x00000000,
588 0xC78, 0x403F0001,
589 0x98000001, 0x00000002, 0x40000000, 0x00000000,
590 0xC78, 0x403F0001,
591 0x90000001, 0x00000002, 0x40000000, 0x00000000,
592 0xC78, 0x403F0001,
593 0xA0000000, 0x00000000,
594 0xC78, 0x403F0001,
595 0xB0000000, 0x00000000,
596 0x88000001, 0x00000000, 0x40000000, 0x00000000,
597 0xC78, 0xFB400001,
598 0xC78, 0xFA410001,
599 0xC78, 0xF9420001,
600 0xC78, 0xF8430001,
601 0xC78, 0xF7440001,
602 0xC78, 0xF6450001,
603 0xC78, 0xF5460001,
604 0xC78, 0xF4470001,
605 0xC78, 0xF3480001,
606 0xC78, 0xF2490001,
607 0xC78, 0xF14A0001,
608 0xC78, 0xF04B0001,
609 0xC78, 0xEF4C0001,
610 0xC78, 0xEE4D0001,
611 0xC78, 0xED4E0001,
612 0xC78, 0xEC4F0001,
613 0xC78, 0xEB500001,
614 0xC78, 0xEA510001,
615 0xC78, 0xE9520001,
616 0xC78, 0xE8530001,
617 0xC78, 0xE7540001,
618 0xC78, 0xE6550001,
619 0xC78, 0xE5560001,
620 0xC78, 0xC6570001,
621 0xC78, 0xC5580001,
622 0xC78, 0xC4590001,
623 0xC78, 0xC35A0001,
624 0xC78, 0xC25B0001,
625 0xC78, 0xC15C0001,
626 0xC78, 0xC05D0001,
627 0xC78, 0xA35E0001,
628 0xC78, 0xA25F0001,
629 0xC78, 0xA1600001,
630 0xC78, 0x88610001,
631 0xC78, 0x87620001,
632 0xC78, 0x86630001,
633 0xC78, 0x85640001,
634 0xC78, 0x84650001,
635 0xC78, 0x83660001,
636 0xC78, 0x82670001,
637 0xC78, 0x66680001,
638 0xC78, 0x65690001,
639 0xC78, 0x646A0001,
640 0xC78, 0x636B0001,
641 0xC78, 0x626C0001,
642 0xC78, 0x616D0001,
643 0xC78, 0x486E0001,
644 0xC78, 0x476F0001,
645 0xC78, 0x46700001,
646 0xC78, 0x45710001,
647 0xC78, 0x44720001,
648 0xC78, 0x43730001,
649 0xC78, 0x42740001,
650 0xC78, 0x41750001,
651 0xC78, 0x40760001,
652 0xC78, 0x40770001,
653 0xC78, 0x40780001,
654 0xC78, 0x40790001,
655 0xC78, 0x407A0001,
656 0xC78, 0x407B0001,
657 0xC78, 0x407C0001,
658 0x90000001, 0x00000000, 0x40000000, 0x00000000,
659 0xC78, 0xFB400001,
660 0xC78, 0xFA410001,
661 0xC78, 0xF9420001,
662 0xC78, 0xF8430001,
663 0xC78, 0xF7440001,
664 0xC78, 0xF6450001,
665 0xC78, 0xF5460001,
666 0xC78, 0xF4470001,
667 0xC78, 0xF3480001,
668 0xC78, 0xF2490001,
669 0xC78, 0xF14A0001,
670 0xC78, 0xF04B0001,
671 0xC78, 0xEF4C0001,
672 0xC78, 0xEE4D0001,
673 0xC78, 0xED4E0001,
674 0xC78, 0xEC4F0001,
675 0xC78, 0xEB500001,
676 0xC78, 0xEA510001,
677 0xC78, 0xE9520001,
678 0xC78, 0xE8530001,
679 0xC78, 0xE7540001,
680 0xC78, 0xE6550001,
681 0xC78, 0xE5560001,
682 0xC78, 0xE4570001,
683 0xC78, 0xE3580001,
684 0xC78, 0xE2590001,
685 0xC78, 0xC35A0001,
686 0xC78, 0xC25B0001,
687 0xC78, 0xC15C0001,
688 0xC78, 0x8B5D0001,
689 0xC78, 0x8A5E0001,
690 0xC78, 0x895F0001,
691 0xC78, 0x88600001,
692 0xC78, 0x87610001,
693 0xC78, 0x86620001,
694 0xC78, 0x85630001,
695 0xC78, 0x84640001,
696 0xC78, 0x67650001,
697 0xC78, 0x66660001,
698 0xC78, 0x65670001,
699 0xC78, 0x64680001,
700 0xC78, 0x63690001,
701 0xC78, 0x626A0001,
702 0xC78, 0x616B0001,
703 0xC78, 0x606C0001,
704 0xC78, 0x466D0001,
705 0xC78, 0x456E0001,
706 0xC78, 0x446F0001,
707 0xC78, 0x43700001,
708 0xC78, 0x42710001,
709 0xC78, 0x41720001,
710 0xC78, 0x40730001,
711 0xC78, 0x40740001,
712 0xC78, 0x40750001,
713 0xC78, 0x40760001,
714 0xC78, 0x40770001,
715 0xC78, 0x40780001,
716 0xC78, 0x40790001,
717 0xC78, 0x407A0001,
718 0xC78, 0x407B0001,
719 0xC78, 0x407C0001,
720 0x90000001, 0x00000001, 0x40000000, 0x00000000,
721 0xC78, 0xFB400001,
722 0xC78, 0xFB410001,
723 0xC78, 0xFB420001,
724 0xC78, 0xFB430001,
725 0xC78, 0xFB440001,
726 0xC78, 0xFB450001,
727 0xC78, 0xFA460001,
728 0xC78, 0xF9470001,
729 0xC78, 0xF8480001,
730 0xC78, 0xF7490001,
731 0xC78, 0xF64A0001,
732 0xC78, 0xF54B0001,
733 0xC78, 0xF44C0001,
734 0xC78, 0xF34D0001,
735 0xC78, 0xF24E0001,
736 0xC78, 0xF14F0001,
737 0xC78, 0xF0500001,
738 0xC78, 0xEF510001,
739 0xC78, 0xEE520001,
740 0xC78, 0xED530001,
741 0xC78, 0xEC540001,
742 0xC78, 0xEB550001,
743 0xC78, 0xEA560001,
744 0xC78, 0xE9570001,
745 0xC78, 0xE8580001,
746 0xC78, 0xE7590001,
747 0xC78, 0xE65A0001,
748 0xC78, 0xE55B0001,
749 0xC78, 0xC65C0001,
750 0xC78, 0xC55D0001,
751 0xC78, 0xC45E0001,
752 0xC78, 0xC35F0001,
753 0xC78, 0xC2600001,
754 0xC78, 0xC1610001,
755 0xC78, 0xC0620001,
756 0xC78, 0xA3630001,
757 0xC78, 0xA2640001,
758 0xC78, 0xA1650001,
759 0xC78, 0x88660001,
760 0xC78, 0x87670001,
761 0xC78, 0x86680001,
762 0xC78, 0x85690001,
763 0xC78, 0x846A0001,
764 0xC78, 0x836B0001,
765 0xC78, 0x826C0001,
766 0xC78, 0x666D0001,
767 0xC78, 0x656E0001,
768 0xC78, 0x646F0001,
769 0xC78, 0x63700001,
770 0xC78, 0x62710001,
771 0xC78, 0x61720001,
772 0xC78, 0x48730001,
773 0xC78, 0x47740001,
774 0xC78, 0x46750001,
775 0xC78, 0x45760001,
776 0xC78, 0x44770001,
777 0xC78, 0x43780001,
778 0xC78, 0x42790001,
779 0xC78, 0x417A0001,
780 0xC78, 0x407B0001,
781 0xC78, 0x407C0001,
782 0x98000001, 0x00000002, 0x40000000, 0x00000000,
783 0xC78, 0xFB400001,
784 0xC78, 0xFB410001,
785 0xC78, 0xFB420001,
786 0xC78, 0xFB430001,
787 0xC78, 0xFB440001,
788 0xC78, 0xFB450001,
789 0xC78, 0xFB460001,
790 0xC78, 0xFB470001,
791 0xC78, 0xFB480001,
792 0xC78, 0xFA490001,
793 0xC78, 0xF94A0001,
794 0xC78, 0xF84B0001,
795 0xC78, 0xF74C0001,
796 0xC78, 0xF64D0001,
797 0xC78, 0xF54E0001,
798 0xC78, 0xF44F0001,
799 0xC78, 0xF3500001,
800 0xC78, 0xF2510001,
801 0xC78, 0xF1520001,
802 0xC78, 0xF0530001,
803 0xC78, 0xEF540001,
804 0xC78, 0xEE550001,
805 0xC78, 0xED560001,
806 0xC78, 0xEC570001,
807 0xC78, 0xEB580001,
808 0xC78, 0xEA590001,
809 0xC78, 0xE95A0001,
810 0xC78, 0xE85B0001,
811 0xC78, 0xE75C0001,
812 0xC78, 0xE65D0001,
813 0xC78, 0xE55E0001,
814 0xC78, 0xE45F0001,
815 0xC78, 0xE3600001,
816 0xC78, 0xE2610001,
817 0xC78, 0xC3620001,
818 0xC78, 0xC2630001,
819 0xC78, 0xC1640001,
820 0xC78, 0x8B650001,
821 0xC78, 0x8A660001,
822 0xC78, 0x89670001,
823 0xC78, 0x88680001,
824 0xC78, 0x87690001,
825 0xC78, 0x866A0001,
826 0xC78, 0x856B0001,
827 0xC78, 0x846C0001,
828 0xC78, 0x676D0001,
829 0xC78, 0x666E0001,
830 0xC78, 0x656F0001,
831 0xC78, 0x64700001,
832 0xC78, 0x63710001,
833 0xC78, 0x62720001,
834 0xC78, 0x61730001,
835 0xC78, 0x60740001,
836 0xC78, 0x46750001,
837 0xC78, 0x45760001,
838 0xC78, 0x44770001,
839 0xC78, 0x43780001,
840 0xC78, 0x42790001,
841 0xC78, 0x417A0001,
842 0xC78, 0x407B0001,
843 0xC78, 0x407C0001,
844 0x90000001, 0x00000002, 0x40000000, 0x00000000,
845 0xC78, 0xFB400001,
846 0xC78, 0xFB410001,
847 0xC78, 0xFB420001,
848 0xC78, 0xFB430001,
849 0xC78, 0xFB440001,
850 0xC78, 0xFB450001,
851 0xC78, 0xFB460001,
852 0xC78, 0xFB470001,
853 0xC78, 0xFB480001,
854 0xC78, 0xFA490001,
855 0xC78, 0xF94A0001,
856 0xC78, 0xF84B0001,
857 0xC78, 0xF74C0001,
858 0xC78, 0xF64D0001,
859 0xC78, 0xF54E0001,
860 0xC78, 0xF44F0001,
861 0xC78, 0xF3500001,
862 0xC78, 0xF2510001,
863 0xC78, 0xF1520001,
864 0xC78, 0xF0530001,
865 0xC78, 0xEF540001,
866 0xC78, 0xEE550001,
867 0xC78, 0xED560001,
868 0xC78, 0xEC570001,
869 0xC78, 0xEB580001,
870 0xC78, 0xEA590001,
871 0xC78, 0xE95A0001,
872 0xC78, 0xE85B0001,
873 0xC78, 0xE75C0001,
874 0xC78, 0xE65D0001,
875 0xC78, 0xE55E0001,
876 0xC78, 0xE45F0001,
877 0xC78, 0xE3600001,
878 0xC78, 0xE2610001,
879 0xC78, 0xC3620001,
880 0xC78, 0xC2630001,
881 0xC78, 0xC1640001,
882 0xC78, 0x8B650001,
883 0xC78, 0x8A660001,
884 0xC78, 0x89670001,
885 0xC78, 0x88680001,
886 0xC78, 0x87690001,
887 0xC78, 0x866A0001,
888 0xC78, 0x856B0001,
889 0xC78, 0x846C0001,
890 0xC78, 0x676D0001,
891 0xC78, 0x666E0001,
892 0xC78, 0x656F0001,
893 0xC78, 0x64700001,
894 0xC78, 0x63710001,
895 0xC78, 0x62720001,
896 0xC78, 0x61730001,
897 0xC78, 0x60740001,
898 0xC78, 0x46750001,
899 0xC78, 0x45760001,
900 0xC78, 0x44770001,
901 0xC78, 0x43780001,
902 0xC78, 0x42790001,
903 0xC78, 0x417A0001,
904 0xC78, 0x407B0001,
905 0xC78, 0x407C0001,
906 0x98000000, 0x00000000, 0x40000000, 0x00000000,
907 0xC78, 0xFF400001,
908 0xC78, 0xFF410001,
909 0xC78, 0xFE420001,
910 0xC78, 0xFD430001,
911 0xC78, 0xFC440001,
912 0xC78, 0xFB450001,
913 0xC78, 0xFA460001,
914 0xC78, 0xF9470001,
915 0xC78, 0xF8480001,
916 0xC78, 0xF7490001,
917 0xC78, 0xF64A0001,
918 0xC78, 0xF54B0001,
919 0xC78, 0xF44C0001,
920 0xC78, 0xF34D0001,
921 0xC78, 0xF24E0001,
922 0xC78, 0xF14F0001,
923 0xC78, 0xF0500001,
924 0xC78, 0xEF510001,
925 0xC78, 0xEE520001,
926 0xC78, 0xED530001,
927 0xC78, 0xEC540001,
928 0xC78, 0xEB550001,
929 0xC78, 0xEA560001,
930 0xC78, 0xE9570001,
931 0xC78, 0xE8580001,
932 0xC78, 0xE7590001,
933 0xC78, 0xE65A0001,
934 0xC78, 0xE55B0001,
935 0xC78, 0xE45C0001,
936 0xC78, 0xA85D0001,
937 0xC78, 0xA75E0001,
938 0xC78, 0xA65F0001,
939 0xC78, 0xA5600001,
940 0xC78, 0xA4610001,
941 0xC78, 0xA3620001,
942 0xC78, 0xA2630001,
943 0xC78, 0xA1640001,
944 0xC78, 0x28650001,
945 0xC78, 0x27660001,
946 0xC78, 0x26670001,
947 0xC78, 0x07680001,
948 0xC78, 0x06690001,
949 0xC78, 0x056A0001,
950 0xC78, 0x046B0001,
951 0xC78, 0x036C0001,
952 0xC78, 0x026D0001,
953 0xC78, 0x016E0001,
954 0xC78, 0x646F0001,
955 0xC78, 0x63700001,
956 0xC78, 0x62710001,
957 0xC78, 0x61720001,
958 0xC78, 0x47730001,
959 0xC78, 0x46740001,
960 0xC78, 0x45750001,
961 0xC78, 0x44760001,
962 0xC78, 0x43770001,
963 0xC78, 0x42780001,
964 0xC78, 0x41790001,
965 0xC78, 0x407A0001,
966 0xC78, 0x407B0001,
967 0xC78, 0x407C0001,
968 0xA0000000, 0x00000000,
969 0xC78, 0xFB400001,
970 0xC78, 0xFB410001,
971 0xC78, 0xFB420001,
972 0xC78, 0xFB430001,
973 0xC78, 0xFB440001,
974 0xC78, 0xFB450001,
975 0xC78, 0xFB460001,
976 0xC78, 0xFB470001,
977 0xC78, 0xFB480001,
978 0xC78, 0xFA490001,
979 0xC78, 0xF94A0001,
980 0xC78, 0xF84B0001,
981 0xC78, 0xF74C0001,
982 0xC78, 0xF64D0001,
983 0xC78, 0xF54E0001,
984 0xC78, 0xF44F0001,
985 0xC78, 0xF3500001,
986 0xC78, 0xF2510001,
987 0xC78, 0xF1520001,
988 0xC78, 0xF0530001,
989 0xC78, 0xEF540001,
990 0xC78, 0xEE550001,
991 0xC78, 0xED560001,
992 0xC78, 0xEC570001,
993 0xC78, 0xEB580001,
994 0xC78, 0xEA590001,
995 0xC78, 0xE95A0001,
996 0xC78, 0xE85B0001,
997 0xC78, 0xE75C0001,
998 0xC78, 0xE65D0001,
999 0xC78, 0xE55E0001,
1000 0xC78, 0xE45F0001,
1001 0xC78, 0xE3600001,
1002 0xC78, 0xE2610001,
1003 0xC78, 0xC3620001,
1004 0xC78, 0xC2630001,
1005 0xC78, 0xC1640001,
1006 0xC78, 0x8B650001,
1007 0xC78, 0x8A660001,
1008 0xC78, 0x89670001,
1009 0xC78, 0x88680001,
1010 0xC78, 0x87690001,
1011 0xC78, 0x866A0001,
1012 0xC78, 0x856B0001,
1013 0xC78, 0x846C0001,
1014 0xC78, 0x676D0001,
1015 0xC78, 0x666E0001,
1016 0xC78, 0x656F0001,
1017 0xC78, 0x64700001,
1018 0xC78, 0x63710001,
1019 0xC78, 0x62720001,
1020 0xC78, 0x61730001,
1021 0xC78, 0x60740001,
1022 0xC78, 0x46750001,
1023 0xC78, 0x45760001,
1024 0xC78, 0x44770001,
1025 0xC78, 0x43780001,
1026 0xC78, 0x42790001,
1027 0xC78, 0x417A0001,
1028 0xC78, 0x407B0001,
1029 0xC78, 0x407C0001,
1030 0xB0000000, 0x00000000,
1031 0x80000001, 0x00000001, 0x40000000, 0x00000000,
1032 0xC78, 0x407D0001,
1033 0xC78, 0x407E0001,
1034 0xC78, 0x407F0001,
1035 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1036 0xC78, 0x407D0001,
1037 0xC78, 0x407E0001,
1038 0xC78, 0x407F0001,
1039 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1040 0xC78, 0x407D0001,
1041 0xC78, 0x407E0001,
1042 0xC78, 0x407F0001,
1043 0xA0000000, 0x00000000,
1044 0xC78, 0x407D0001,
1045 0xC78, 0x407E0001,
1046 0xC78, 0x407F0001,
1047 0xB0000000, 0x00000000,
1048 0xC50, 0x69553422,
1049 0xC50, 0x69553420,
1050
1051 };
1052
1053 void
odm_read_and_config_mp_8188e_agc_tab(struct dm_struct * dm)1054 odm_read_and_config_mp_8188e_agc_tab(struct dm_struct *dm)
1055 {
1056 u32 i = 0;
1057 u8 c_cond;
1058 boolean is_matched = true, is_skipped = false;
1059 u32 array_len = sizeof(array_mp_8188e_agc_tab) / sizeof(u32);
1060 u32 *array = array_mp_8188e_agc_tab;
1061
1062 u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
1063
1064 PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__);
1065
1066 while ((i + 1) < array_len) {
1067 v1 = array[i];
1068 v2 = array[i + 1];
1069
1070 if (v1 & (BIT(31) | BIT(30))) {/*positive & negative condition*/
1071 if (v1 & BIT(31)) {/* positive condition*/
1072 c_cond = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
1073 if (c_cond == COND_ENDIF) {/*end*/
1074 is_matched = true;
1075 is_skipped = false;
1076 PHYDM_DBG(dm, ODM_COMP_INIT, "ENDIF\n");
1077 } else if (c_cond == COND_ELSE) { /*else*/
1078 is_matched = is_skipped ? false : true;
1079 PHYDM_DBG(dm, ODM_COMP_INIT, "ELSE\n");
1080 } else {/*if , else if*/
1081 pre_v1 = v1;
1082 pre_v2 = v2;
1083 PHYDM_DBG(dm, ODM_COMP_INIT, "IF or ELSE IF\n");
1084 }
1085 } else if (v1 & BIT(30)) { /*negative condition*/
1086 if (is_skipped == false) {
1087 if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
1088 is_matched = true;
1089 is_skipped = true;
1090 } else {
1091 is_matched = false;
1092 is_skipped = false;
1093 }
1094 } else
1095 is_matched = false;
1096 }
1097 } else {
1098 if (is_matched)
1099 odm_config_bb_agc_8188e(dm, v1, MASKDWORD, v2);
1100 }
1101 i = i + 2;
1102 }
1103 }
1104
1105 u32
odm_get_version_mp_8188e_agc_tab(void)1106 odm_get_version_mp_8188e_agc_tab(void)
1107 {
1108 return 71;
1109 }
1110
1111 /******************************************************************************
1112 * phy_reg.TXT
1113 ******************************************************************************/
1114
1115 u32 array_mp_8188e_phy_reg[] = {
1116 0x800, 0x80040000,
1117 0x804, 0x00000003,
1118 0x808, 0x0000FC00,
1119 0x80C, 0x0000000A,
1120 0x810, 0x10001331,
1121 0x814, 0x020C3D10,
1122 0x818, 0x02200385,
1123 0x81C, 0x00000000,
1124 0x820, 0x01000100,
1125 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1126 0x824, 0x00390204,
1127 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1128 0x824, 0x00390204,
1129 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1130 0x824, 0x00390204,
1131 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1132 0x824, 0x00390204,
1133 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1134 0x824, 0x00390204,
1135 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1136 0x824, 0x00390204,
1137 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1138 0x824, 0x00390004,
1139 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1140 0x824, 0x00390204,
1141 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1142 0x824, 0x00390204,
1143 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1144 0x824, 0x00390204,
1145 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1146 0x824, 0x00390204,
1147 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1148 0x824, 0x00390004,
1149 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1150 0x824, 0x00390204,
1151 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1152 0x824, 0x00390004,
1153 0xA0000000, 0x00000000,
1154 0x824, 0x00390204,
1155 0xB0000000, 0x00000000,
1156 0x828, 0x00000000,
1157 0x82C, 0x00000000,
1158 0x830, 0x00000000,
1159 0x834, 0x00000000,
1160 0x838, 0x00000000,
1161 0x83C, 0x00000000,
1162 0x840, 0x00010000,
1163 0x844, 0x00000000,
1164 0x848, 0x00000000,
1165 0x84C, 0x00000000,
1166 0x850, 0x00000000,
1167 0x854, 0x00000000,
1168 0x858, 0x569A11A9,
1169 0x85C, 0x01000014,
1170 0x860, 0x66F60110,
1171 0x864, 0x061F0649,
1172 0x868, 0x00000000,
1173 0x86C, 0x27272700,
1174 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1175 0x870, 0x07000300,
1176 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1177 0x870, 0x07000300,
1178 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1179 0x870, 0x07000300,
1180 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1181 0x870, 0x07000300,
1182 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1183 0x870, 0x07000300,
1184 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1185 0x870, 0x07000300,
1186 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1187 0x870, 0x07000300,
1188 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1189 0x870, 0x07000300,
1190 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1191 0x870, 0x07000300,
1192 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1193 0x870, 0x07000300,
1194 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1195 0x870, 0x07000300,
1196 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1197 0x870, 0x07000300,
1198 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1199 0x870, 0x07000760,
1200 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1201 0x870, 0x07000760,
1202 0xA0000000, 0x00000000,
1203 0x870, 0x07000760,
1204 0xB0000000, 0x00000000,
1205 0x874, 0x25004000,
1206 0x878, 0x00000808,
1207 0x87C, 0x00000000,
1208 0x880, 0xB0000C1C,
1209 0x884, 0x00000001,
1210 0x888, 0x00000000,
1211 0x88C, 0xCCC000C0,
1212 0x890, 0x00000800,
1213 0x894, 0xFFFFFFFE,
1214 0x898, 0x40302010,
1215 0x89C, 0x00706050,
1216 0x900, 0x00000000,
1217 0x904, 0x00000023,
1218 0x908, 0x00000000,
1219 0x90C, 0x81121111,
1220 0x910, 0x00000002,
1221 0x914, 0x00000201,
1222 0xA00, 0x00D047C8,
1223 0xA04, 0x80FF800C,
1224 0xA08, 0x8C838300,
1225 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1226 0xA0C, 0x2E7F120F,
1227 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1228 0xA0C, 0x2E7F120F,
1229 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1230 0xA0C, 0x2E7F120F,
1231 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1232 0xA0C, 0x2E7F120F,
1233 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1234 0xA0C, 0x2E7F120F,
1235 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1236 0xA0C, 0x2E7F120F,
1237 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1238 0xA0C, 0x2D38120F,
1239 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1240 0xA0C, 0x2E7F120F,
1241 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1242 0xA0C, 0x2E7F120F,
1243 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1244 0xA0C, 0x2E7F120F,
1245 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1246 0xA0C, 0x2E7F120F,
1247 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1248 0xA0C, 0x2D38120F,
1249 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1250 0xA0C, 0x2E7F120F,
1251 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1252 0xA0C, 0x2E34120F,
1253 0xA0000000, 0x00000000,
1254 0xA0C, 0x2E7F120F,
1255 0xB0000000, 0x00000000,
1256 0xA10, 0x9500BB7E,
1257 0xA14, 0x1114D028,
1258 0xA18, 0x00881117,
1259 0xA1C, 0x89140F00,
1260 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1261 0xA20, 0x13130000,
1262 0xA24, 0x060A0D10,
1263 0xA28, 0x00000103,
1264 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1265 0xA20, 0x13130000,
1266 0xA24, 0x060A0D10,
1267 0xA28, 0x00000103,
1268 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1269 0xA20, 0x13130000,
1270 0xA24, 0x060A0D10,
1271 0xA28, 0x00000103,
1272 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1273 0xA20, 0x1A1B0000,
1274 0xA24, 0x090E1317,
1275 0xA28, 0x00000204,
1276 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1277 0xA20, 0x1A1B0000,
1278 0xA24, 0x090E1317,
1279 0xA28, 0x00000204,
1280 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1281 0xA20, 0x1A1B0000,
1282 0xA24, 0x090E1317,
1283 0xA28, 0x00000204,
1284 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1285 0xA20, 0x13130000,
1286 0xA24, 0x060A0D10,
1287 0xA28, 0x00000103,
1288 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1289 0xA20, 0x13130000,
1290 0xA24, 0x060A0D10,
1291 0xA28, 0x00000103,
1292 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1293 0xA20, 0x13130000,
1294 0xA24, 0x060A0D10,
1295 0xA28, 0x00000103,
1296 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1297 0xA20, 0x1A1B0000,
1298 0xA24, 0x090E1317,
1299 0xA28, 0x00000204,
1300 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1301 0xA20, 0x1A1B0000,
1302 0xA24, 0x090E1317,
1303 0xA28, 0x00000204,
1304 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1305 0xA20, 0x1A1B0000,
1306 0xA24, 0x090E1317,
1307 0xA28, 0x00000204,
1308 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1309 0xA20, 0x1A1B0000,
1310 0xA24, 0x090E1317,
1311 0xA28, 0x00000204,
1312 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1313 0xA20, 0x1A1B0000,
1314 0xA24, 0x090E1317,
1315 0xA28, 0x00000204,
1316 0xA0000000, 0x00000000,
1317 0xA20, 0x1A1B0000,
1318 0xA24, 0x090E1317,
1319 0xA28, 0x00000204,
1320 0xB0000000, 0x00000000,
1321 0xA2C, 0x00D30000,
1322 0xA70, 0x101FBF00,
1323 0xA74, 0x00000007,
1324 0xA78, 0x00000900,
1325 0xA7C, 0x225B0606,
1326 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1327 0xA80, 0x218075B1,
1328 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1329 0xA80, 0x218075B1,
1330 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1331 0xA80, 0x218075B1,
1332 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1333 0xA80, 0x218075B1,
1334 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1335 0xA80, 0x218075B1,
1336 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1337 0xA80, 0x218075B1,
1338 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1339 0xA80, 0x21807530,
1340 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1341 0xA80, 0x218075B1,
1342 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1343 0xA80, 0x218075B1,
1344 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1345 0xA80, 0x218075B1,
1346 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1347 0xA80, 0x218075B1,
1348 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1349 0xA80, 0x21807530,
1350 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1351 0xA80, 0x218075B1,
1352 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1353 0xA80, 0x21807531,
1354 0xA0000000, 0x00000000,
1355 0xA80, 0x218075B1,
1356 0xB0000000, 0x00000000,
1357 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1358 0xB2C, 0x00000000,
1359 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1360 0xB2C, 0x00000000,
1361 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1362 0xB2C, 0x00000000,
1363 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1364 0xB2C, 0x00000000,
1365 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1366 0xB2C, 0x00000000,
1367 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1368 0xB2C, 0x00000000,
1369 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1370 0xB2C, 0x00000000,
1371 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1372 0xB2C, 0x00000000,
1373 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1374 0xB2C, 0x00000000,
1375 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1376 0xB2C, 0x00000000,
1377 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1378 0xB2C, 0x00000000,
1379 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1380 0xB2C, 0x00000000,
1381 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1382 0xB2C, 0x80000000,
1383 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1384 0xB2C, 0x80000000,
1385 0xA0000000, 0x00000000,
1386 0xB2C, 0x80000000,
1387 0xB0000000, 0x00000000,
1388 0xC00, 0x48071D40,
1389 0xC04, 0x03A05611,
1390 0xC08, 0x000000E4,
1391 0xC0C, 0x6C6C6C6C,
1392 0xC10, 0x08800000,
1393 0xC14, 0x40000100,
1394 0xC18, 0x08800000,
1395 0xC1C, 0x40000100,
1396 0xC20, 0x00000000,
1397 0xC24, 0x00000000,
1398 0xC28, 0x00000000,
1399 0xC2C, 0x00000000,
1400 0xC30, 0x69E9AC47,
1401 0xC34, 0x469652AF,
1402 0xC38, 0x49795994,
1403 0xC3C, 0x0A97971C,
1404 0xC40, 0x1F7C403F,
1405 0xC44, 0x000100B7,
1406 0xC48, 0xEC020107,
1407 0xC4C, 0x007F037F,
1408 0xC50, 0x69553420,
1409 0xC54, 0x43BC0094,
1410 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1411 0xC58, 0x00013159,
1412 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1413 0xC58, 0x00013159,
1414 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1415 0xC58, 0x00013959,
1416 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1417 0xC58, 0x00013159,
1418 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1419 0xC58, 0x00013159,
1420 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1421 0xC58, 0x00013959,
1422 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1423 0xC58, 0x00013169,
1424 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1425 0xC58, 0x00013159,
1426 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1427 0xC58, 0x00013169,
1428 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1429 0xC58, 0x00013169,
1430 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1431 0xC58, 0x00013169,
1432 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1433 0xC58, 0x00013169,
1434 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1435 0xC58, 0x00013159,
1436 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1437 0xC58, 0x00013159,
1438 0xA0000000, 0x00000000,
1439 0xC58, 0x00013169,
1440 0xB0000000, 0x00000000,
1441 0xC5C, 0x00250492,
1442 0xC60, 0x00000000,
1443 0xC64, 0x7112848B,
1444 0xC68, 0x47C00BFF,
1445 0xC6C, 0x00000036,
1446 0xC70, 0x2C7F000D,
1447 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1448 0xC74, 0x028610DB,
1449 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1450 0xC74, 0x028610DB,
1451 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1452 0xC74, 0x028610DB,
1453 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1454 0xC74, 0x028610DB,
1455 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1456 0xC74, 0x028610DB,
1457 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1458 0xC74, 0x028610DB,
1459 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1460 0xC74, 0x020610DB,
1461 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1462 0xC74, 0x028610DB,
1463 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1464 0xC74, 0x020610DB,
1465 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1466 0xC74, 0x020610DB,
1467 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1468 0xC74, 0x020610DB,
1469 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1470 0xC74, 0x020610DB,
1471 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1472 0xC74, 0x028610DB,
1473 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1474 0xC74, 0x028610DB,
1475 0xA0000000, 0x00000000,
1476 0xC74, 0x020610DB,
1477 0xB0000000, 0x00000000,
1478 0xC78, 0x0000001F,
1479 0xC7C, 0x00B91612,
1480 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1481 0xC80, 0x2D4000B5,
1482 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1483 0xC80, 0x2D4000B5,
1484 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1485 0xC80, 0x2D4000B5,
1486 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1487 0xC80, 0x390000E4,
1488 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1489 0xC80, 0x390000E4,
1490 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1491 0xC80, 0x390000E4,
1492 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1493 0xC80, 0x2D4000B5,
1494 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1495 0xC80, 0x2D4000B5,
1496 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1497 0xC80, 0x2D4000B5,
1498 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1499 0xC80, 0x390000E4,
1500 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1501 0xC80, 0x390000E4,
1502 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1503 0xC80, 0x390000E4,
1504 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1505 0xC80, 0x390000E4,
1506 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1507 0xC80, 0x390000E4,
1508 0xA0000000, 0x00000000,
1509 0xC80, 0x390000E4,
1510 0xB0000000, 0x00000000,
1511 0xC84, 0x21F60000,
1512 0xC88, 0x40000100,
1513 0xC8C, 0x20200000,
1514 0xC90, 0x00091521,
1515 0xC94, 0x00000000,
1516 0xC98, 0x00121820,
1517 0xC9C, 0x00007F7F,
1518 0xCA0, 0x00000000,
1519 0xCA4, 0x000300A0,
1520 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1521 0xCA8, 0xFFFF0000,
1522 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1523 0xCA8, 0xFFFF0000,
1524 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1525 0xCA8, 0xFFFF0000,
1526 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1527 0xCA8, 0xFFFF0000,
1528 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1529 0xCA8, 0xFFFF0000,
1530 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1531 0xCA8, 0xFFFF0000,
1532 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1533 0xCA8, 0x00000000,
1534 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1535 0xCA8, 0xFFFF0000,
1536 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1537 0xCA8, 0x00000000,
1538 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1539 0xCA8, 0x00000000,
1540 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1541 0xCA8, 0x00000000,
1542 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1543 0xCA8, 0x00000000,
1544 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1545 0xCA8, 0xFFFF0000,
1546 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1547 0xCA8, 0xFFFF0000,
1548 0xA0000000, 0x00000000,
1549 0xCA8, 0x00000000,
1550 0xB0000000, 0x00000000,
1551 0xCAC, 0x00000000,
1552 0xCB0, 0x00000000,
1553 0xCB4, 0x00000000,
1554 0xCB8, 0x00000000,
1555 0xCBC, 0x28000000,
1556 0xCC0, 0x00000000,
1557 0xCC4, 0x00000000,
1558 0xCC8, 0x00000000,
1559 0xCCC, 0x00000000,
1560 0xCD0, 0x00000000,
1561 0xCD4, 0x00000000,
1562 0xCD8, 0x64B22427,
1563 0xCDC, 0x00766932,
1564 0xCE0, 0x00222222,
1565 0xCE4, 0x00000000,
1566 0xCE8, 0x37644302,
1567 0xCEC, 0x2F97D40C,
1568 0xD00, 0x00000740,
1569 0xD04, 0x00020401,
1570 0xD08, 0x0000907F,
1571 0xD0C, 0x20010201,
1572 0xD10, 0xA0633333,
1573 0xD14, 0x3333BC43,
1574 0xD18, 0x7A8F5B6F,
1575 0xD2C, 0xCC979975,
1576 0xD30, 0x00000000,
1577 0xD34, 0x80608000,
1578 0xD38, 0x00000000,
1579 0xD3C, 0x00127353,
1580 0xD40, 0x00000000,
1581 0xD44, 0x00000000,
1582 0xD48, 0x00000000,
1583 0xD4C, 0x00000000,
1584 0xD50, 0x6437140A,
1585 0xD54, 0x00000000,
1586 0xD58, 0x00000282,
1587 0xD5C, 0x30032064,
1588 0xD60, 0x4653DE68,
1589 0xD64, 0x04518A3C,
1590 0xD68, 0x00002101,
1591 0xD6C, 0x2A201C16,
1592 0xD70, 0x1812362E,
1593 0xD74, 0x322C2220,
1594 0xD78, 0x000E3C24,
1595 0xE00, 0x2D2D2D2D,
1596 0xE04, 0x2D2D2D2D,
1597 0xE08, 0x0390272D,
1598 0xE10, 0x2D2D2D2D,
1599 0xE14, 0x2D2D2D2D,
1600 0xE18, 0x2D2D2D2D,
1601 0xE1C, 0x2D2D2D2D,
1602 0xE28, 0x00000000,
1603 0xE30, 0x1000DC1F,
1604 0xE34, 0x10008C1F,
1605 0xE38, 0x02140102,
1606 0xE3C, 0x681604C2,
1607 0xE40, 0x01007C00,
1608 0xE44, 0x01004800,
1609 0xE48, 0xFB000000,
1610 0xE4C, 0x000028D1,
1611 0xE50, 0x1000DC1F,
1612 0xE54, 0x10008C1F,
1613 0xE58, 0x02140102,
1614 0xE5C, 0x28160D05,
1615 0xE60, 0x00000048,
1616 0xE68, 0x001B25A4,
1617 0xE6C, 0x00C00014,
1618 0xE70, 0x00C00014,
1619 0xE74, 0x01000014,
1620 0xE78, 0x01000014,
1621 0xE7C, 0x01000014,
1622 0xE80, 0x01000014,
1623 0xE84, 0x00C00014,
1624 0xE88, 0x01000014,
1625 0xE8C, 0x00C00014,
1626 0xED0, 0x00C00014,
1627 0xED4, 0x00C00014,
1628 0xED8, 0x00C00014,
1629 0xEDC, 0x00000014,
1630 0xEE0, 0x00000014,
1631 0x88000003, 0x00000000, 0x40000000, 0x00000000,
1632 0xEE8, 0x32555448,
1633 0x98000003, 0x00000001, 0x40000000, 0x00000000,
1634 0xEE8, 0x32555448,
1635 0x98000003, 0x00000002, 0x40000000, 0x00000000,
1636 0xEE8, 0x32555448,
1637 0x98000001, 0x00000000, 0x40000000, 0x00000000,
1638 0xEE8, 0x32555448,
1639 0x98000001, 0x00000001, 0x40000000, 0x00000000,
1640 0xEE8, 0x32555448,
1641 0x98000001, 0x00000002, 0x40000000, 0x00000000,
1642 0xEE8, 0x32555448,
1643 0x90000003, 0x00000002, 0x40000000, 0x00000000,
1644 0xEE8, 0x32555448,
1645 0x98000002, 0x00000000, 0x40000000, 0x00000000,
1646 0xEE8, 0x32555448,
1647 0x90000002, 0x00000000, 0x40000000, 0x00000000,
1648 0xEE8, 0x32555448,
1649 0x90000001, 0x00000000, 0x40000000, 0x00000000,
1650 0xEE8, 0x32555448,
1651 0x90000001, 0x00000001, 0x40000000, 0x00000000,
1652 0xEE8, 0x32555448,
1653 0x90000001, 0x00000002, 0x40000000, 0x00000000,
1654 0xEE8, 0x32555448,
1655 0x98000400, 0x00000000, 0x40000000, 0x00000000,
1656 0xEE8, 0x21555448,
1657 0x98000000, 0x00000000, 0x40000000, 0x00000000,
1658 0xEE8, 0x21555448,
1659 0xA0000000, 0x00000000,
1660 0xEE8, 0x21555448,
1661 0xB0000000, 0x00000000,
1662 0xEEC, 0x01C00014,
1663 0xF14, 0x00000003,
1664 0xF4C, 0x00000000,
1665 0xF00, 0x00000300,
1666
1667 };
1668
1669 void
odm_read_and_config_mp_8188e_phy_reg(struct dm_struct * dm)1670 odm_read_and_config_mp_8188e_phy_reg(struct dm_struct *dm)
1671 {
1672 u32 i = 0;
1673 u8 c_cond;
1674 boolean is_matched = true, is_skipped = false;
1675 u32 array_len = sizeof(array_mp_8188e_phy_reg) / sizeof(u32);
1676 u32 *array = array_mp_8188e_phy_reg;
1677
1678 u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
1679
1680 PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__);
1681
1682 while ((i + 1) < array_len) {
1683 v1 = array[i];
1684 v2 = array[i + 1];
1685
1686 if (v1 & (BIT(31) | BIT(30))) {/*positive & negative condition*/
1687 if (v1 & BIT(31)) {/* positive condition*/
1688 c_cond = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
1689 if (c_cond == COND_ENDIF) {/*end*/
1690 is_matched = true;
1691 is_skipped = false;
1692 PHYDM_DBG(dm, ODM_COMP_INIT, "ENDIF\n");
1693 } else if (c_cond == COND_ELSE) { /*else*/
1694 is_matched = is_skipped ? false : true;
1695 PHYDM_DBG(dm, ODM_COMP_INIT, "ELSE\n");
1696 } else {/*if , else if*/
1697 pre_v1 = v1;
1698 pre_v2 = v2;
1699 PHYDM_DBG(dm, ODM_COMP_INIT, "IF or ELSE IF\n");
1700 }
1701 } else if (v1 & BIT(30)) { /*negative condition*/
1702 if (is_skipped == false) {
1703 if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
1704 is_matched = true;
1705 is_skipped = true;
1706 } else {
1707 is_matched = false;
1708 is_skipped = false;
1709 }
1710 } else
1711 is_matched = false;
1712 }
1713 } else {
1714 if (is_matched)
1715 odm_config_bb_phy_8188e(dm, v1, MASKDWORD, v2);
1716 }
1717 i = i + 2;
1718 }
1719 }
1720
1721 u32
odm_get_version_mp_8188e_phy_reg(void)1722 odm_get_version_mp_8188e_phy_reg(void)
1723 {
1724 return 71;
1725 }
1726
1727 /******************************************************************************
1728 * phy_reg_pg.TXT
1729 ******************************************************************************/
1730
1731 u32 array_mp_8188e_phy_reg_pg[] = {
1732 0, 0, 0, 0x00000e08, 0x0000ff00, 0x00003800,
1733 0, 0, 0, 0x0000086c, 0xffffff00, 0x32343600,
1734 0, 0, 0, 0x00000e00, 0xffffffff, 0x40424446,
1735 0, 0, 0, 0x00000e04, 0xffffffff, 0x28323638,
1736 0, 0, 0, 0x00000e10, 0xffffffff, 0x38404244,
1737 0, 0, 0, 0x00000e14, 0xffffffff, 0x26303436
1738 };
1739
1740 void
odm_read_and_config_mp_8188e_phy_reg_pg(struct dm_struct * dm)1741 odm_read_and_config_mp_8188e_phy_reg_pg(struct dm_struct *dm)
1742 {
1743 u32 i = 0;
1744 u32 array_len = sizeof(array_mp_8188e_phy_reg_pg) / sizeof(u32);
1745 u32 *array = array_mp_8188e_phy_reg_pg;
1746
1747 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
1748 void *adapter = dm->adapter;
1749 HAL_DATA_TYPE *hal_data = GET_HAL_DATA(((PADAPTER)adapter));
1750
1751 PlatformZeroMemory(hal_data->BufOfLinesPwrByRate, MAX_LINES_HWCONFIG_TXT * MAX_BYTES_LINE_HWCONFIG_TXT);
1752 hal_data->nLinesReadPwrByRate = array_len / 6;
1753 #endif
1754
1755 PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__);
1756
1757 dm->phy_reg_pg_version = 1;
1758 dm->phy_reg_pg_value_type = PHY_REG_PG_EXACT_VALUE;
1759
1760 for (i = 0; i < array_len; i += 6) {
1761 u32 v1 = array[i];
1762 u32 v2 = array[i + 1];
1763 u32 v3 = array[i + 2];
1764 u32 v4 = array[i + 3];
1765 u32 v5 = array[i + 4];
1766 u32 v6 = array[i + 5];
1767
1768 odm_config_bb_phy_reg_pg_8188e(dm, v1, v2, v3, v4, v5, v6);
1769
1770 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
1771 rsprintf((char *)hal_data->BufOfLinesPwrByRate[i / 6], 100, "%s, %s, %s, 0x%X, 0x%08X, 0x%08X,",
1772 (v1 == 0 ? "2.4G" : " 5G"), (v2 == 0 ? "A" : "B"), (v3 == 0 ? "1Tx" : "2Tx"), v4, v5, v6);
1773 #endif
1774 }
1775 }
1776
1777
1778
1779 #endif /* end of HWIMG_SUPPORT*/
1780
1781