1 /******************************************************************************
3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 ******************************************************************************/
17 #include "odm_precomp.h"
19 static bool CheckPositive(
20 PDM_ODM_T pDM_Odm, const u32 Condition1, const u32 Condition2
24 ((pDM_Odm->BoardType & BIT4) >> 4) << 0 | /* _GLNA */
25 ((pDM_Odm->BoardType & BIT3) >> 3) << 1 | /* _GPA */
26 ((pDM_Odm->BoardType & BIT7) >> 7) << 2 | /* _ALNA */
27 ((pDM_Odm->BoardType & BIT6) >> 6) << 3 | /* _APA */
28 ((pDM_Odm->BoardType & BIT2) >> 2) << 4; /* _BT */
30 u32 cond1 = Condition1, cond2 = Condition2;
32 pDM_Odm->CutVersion << 24 |
33 pDM_Odm->SupportPlatform << 16 |
34 pDM_Odm->PackageType << 12 |
35 pDM_Odm->SupportInterface << 8 |
39 pDM_Odm->TypeGLNA << 0 |
40 pDM_Odm->TypeGPA << 8 |
41 pDM_Odm->TypeALNA << 16 |
42 pDM_Odm->TypeAPA << 24;
49 "===> [8812A] CheckPositive (cond1, cond2) = (0x%X 0x%X)\n",
59 "===> [8812A] CheckPositive (driver1, driver2) = (0x%X 0x%X)\n",
70 " (Platform, Interface) = (0x%X, 0x%X)\n",
71 pDM_Odm->SupportPlatform,
72 pDM_Odm->SupportInterface
80 " (Board, Package) = (0x%X, 0x%X)\n",
86 /* Value Defined Check =============== */
87 /* QFN Type [15:12] and Cut Version [27:24] need to do value check */
90 ((cond1 & 0x0000F000) != 0) &&
91 ((cond1 & 0x0000F000) != (driver1 & 0x0000F000))
96 ((cond1 & 0x0F000000) != 0) &&
97 ((cond1 & 0x0F000000) != (driver1 & 0x0F000000))
101 /* Bit Defined Check ================ */
102 /* We don't care [31:28] and [23:20] */
104 driver1 &= 0x000F0FFF;
106 if ((cond1 & driver1) == cond1) {
109 if ((cond1 & 0x0F) == 0) /* BoardType is DONTCARE */
112 if ((cond1 & BIT0) != 0) /* GLNA */
113 bitMask |= 0x000000FF;
114 if ((cond1 & BIT1) != 0) /* GPA */
115 bitMask |= 0x0000FF00;
116 if ((cond1 & BIT2) != 0) /* ALNA */
117 bitMask |= 0x00FF0000;
118 if ((cond1 & BIT3) != 0) /* APA */
119 bitMask |= 0xFF000000;
121 /* BoardType of each RF path is matched */
122 if ((cond2 & bitMask) == (driver2 & bitMask))
131 static bool CheckNegative(
132 PDM_ODM_T pDM_Odm, const u32 Condition1, const u32 Condition2
138 /******************************************************************************
140 ******************************************************************************/
142 static u32 Array_MP_8723B_RadioA[] = {
166 0x80002000, 0x00000000, 0x40000000, 0x00000000,
168 0x90003000, 0x00000000, 0x40000000, 0x00000000,
170 0x90004000, 0x00000000, 0x40000000, 0x00000000,
172 0xA0000000, 0x00000000,
174 0xB0000000, 0x00000000,
181 0x80002000, 0x00000000, 0x40000000, 0x00000000,
183 0x90003000, 0x00000000, 0x40000000, 0x00000000,
185 0x90004000, 0x00000000, 0x40000000, 0x00000000,
187 0xA0000000, 0x00000000,
189 0xB0000000, 0x00000000,
270 void ODM_ReadAndConfig_MP_8723B_RadioA(PDM_ODM_T pDM_Odm)
273 u32 ArrayLen = sizeof(Array_MP_8723B_RadioA)/sizeof(u32);
274 u32 *Array = Array_MP_8723B_RadioA;
280 ("===> ODM_ReadAndConfig_MP_8723B_RadioA\n")
283 for (i = 0; i < ArrayLen; i += 2) {
287 /* This (offset, data) pair doesn't care the condition. */
288 if (v1 < 0x40000000) {
289 odm_ConfigRF_RadioA_8723B(pDM_Odm, v1, v2);
292 /* This line is the beginning of branch. */
293 bool bMatched = true;
294 u8 cCond = (u8)((v1 & (BIT29|BIT28)) >> 28);
296 if (cCond == COND_ELSE) { /* ELSE, ENDIF */
298 READ_NEXT_PAIR(v1, v2, i);
299 } else if (!CheckPositive(pDM_Odm, v1, v2)) {
301 READ_NEXT_PAIR(v1, v2, i);
302 READ_NEXT_PAIR(v1, v2, i);
304 READ_NEXT_PAIR(v1, v2, i);
305 if (!CheckNegative(pDM_Odm, v1, v2))
309 READ_NEXT_PAIR(v1, v2, i);
312 if (bMatched == false) {
313 /* Condition isn't matched.
314 * Discard the following (offset, data) pairs.
316 while (v1 < 0x40000000 && i < ArrayLen-2)
317 READ_NEXT_PAIR(v1, v2, i);
319 i -= 2; /* prevent from for-loop += 2 */
321 /* Configure matched pairs and skip to end of if-else. */
322 while (v1 < 0x40000000 && i < ArrayLen-2) {
323 odm_ConfigRF_RadioA_8723B(pDM_Odm, v1, v2);
324 READ_NEXT_PAIR(v1, v2, i);
327 /* Keeps reading until ENDIF. */
328 cCond = (u8)((v1 & (BIT29|BIT28)) >> 28);
329 while (cCond != COND_ENDIF && i < ArrayLen-2) {
330 READ_NEXT_PAIR(v1, v2, i);
331 cCond = (u8)((v1 & (BIT29|BIT28)) >> 28);
338 /******************************************************************************
339 * TxPowerTrack_SDIO.TXT
340 ******************************************************************************/
342 static u8 gDeltaSwingTableIdx_MP_5GB_N_TxPowerTrack_SDIO_8723B[][DELTA_SWINGIDX_SIZE] = {
344 0, 1, 1, 2, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9,
345 9, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
348 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10,
349 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
352 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10,
353 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
356 static u8 gDeltaSwingTableIdx_MP_5GB_P_TxPowerTrack_SDIO_8723B[][DELTA_SWINGIDX_SIZE] = {
358 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12,
359 12, 13, 14, 15, 15, 16, 16, 17, 17, 18, 19, 20, 20, 20
362 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12,
363 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 19, 20, 20, 20
366 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12,
367 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 21
370 static u8 gDeltaSwingTableIdx_MP_5GA_N_TxPowerTrack_SDIO_8723B[][DELTA_SWINGIDX_SIZE] = {
372 0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, 10,
373 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
376 0, 1, 2, 3, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10,
377 11, 11, 12, 13, 13, 14, 15, 16, 16, 16, 16, 16, 16, 16
380 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 10, 11,
381 11, 12, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16
384 static u8 gDeltaSwingTableIdx_MP_5GA_P_TxPowerTrack_SDIO_8723B[][DELTA_SWINGIDX_SIZE] = {
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
390 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12,
391 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 21
394 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12,
395 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 21
398 static u8 gDeltaSwingTableIdx_MP_2GB_N_TxPowerTrack_SDIO_8723B[] = {
399 0, 0, 1, 2, 2, 2, 3, 3, 3, 4, 5, 5, 6, 6, 6, 6,
400 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 13, 14, 15
402 static u8 gDeltaSwingTableIdx_MP_2GB_P_TxPowerTrack_SDIO_8723B[] = {
403 0, 0, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8,
404 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 15
406 static u8 gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_SDIO_8723B[] = {
407 0, 0, 1, 2, 2, 2, 3, 3, 3, 4, 5, 5, 6, 6, 6, 6,
408 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 13, 14, 15
410 static u8 gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_SDIO_8723B[] = {
411 0, 0, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8,
412 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 15
414 static u8 gDeltaSwingTableIdx_MP_2GCCKB_N_TxPowerTrack_SDIO_8723B[] = {
415 0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 7, 8,
416 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 15
418 static u8 gDeltaSwingTableIdx_MP_2GCCKB_P_TxPowerTrack_SDIO_8723B[] = {
419 0, 0, 1, 2, 2, 2, 3, 3, 3, 4, 5, 5, 6, 6, 7, 7,
420 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 15
422 static u8 gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_SDIO_8723B[] = {
423 0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 7, 8,
424 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 15
426 static u8 gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_SDIO_8723B[] = {
427 0, 0, 1, 2, 2, 2, 3, 3, 3, 4, 5, 5, 6, 6, 7, 7,
428 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 15
431 void ODM_ReadAndConfig_MP_8723B_TxPowerTrack_SDIO(PDM_ODM_T pDM_Odm)
433 PODM_RF_CAL_T pRFCalibrateInfo = &(pDM_Odm->RFCalibrateInfo);
439 ("===> ODM_ReadAndConfig_MP_MP_8723B\n")
444 pRFCalibrateInfo->DeltaSwingTableIdx_2GA_P,
445 gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_SDIO_8723B,
449 pRFCalibrateInfo->DeltaSwingTableIdx_2GA_N,
450 gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_SDIO_8723B,
454 pRFCalibrateInfo->DeltaSwingTableIdx_2GB_P,
455 gDeltaSwingTableIdx_MP_2GB_P_TxPowerTrack_SDIO_8723B,
459 pRFCalibrateInfo->DeltaSwingTableIdx_2GB_N,
460 gDeltaSwingTableIdx_MP_2GB_N_TxPowerTrack_SDIO_8723B,
465 pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_P,
466 gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_SDIO_8723B,
470 pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_N,
471 gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_SDIO_8723B,
475 pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_P,
476 gDeltaSwingTableIdx_MP_2GCCKB_P_TxPowerTrack_SDIO_8723B,
480 pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_N,
481 gDeltaSwingTableIdx_MP_2GCCKB_N_TxPowerTrack_SDIO_8723B,
486 pRFCalibrateInfo->DeltaSwingTableIdx_5GA_P,
487 gDeltaSwingTableIdx_MP_5GA_P_TxPowerTrack_SDIO_8723B,
488 DELTA_SWINGIDX_SIZE*3
491 pRFCalibrateInfo->DeltaSwingTableIdx_5GA_N,
492 gDeltaSwingTableIdx_MP_5GA_N_TxPowerTrack_SDIO_8723B,
493 DELTA_SWINGIDX_SIZE*3
496 pRFCalibrateInfo->DeltaSwingTableIdx_5GB_P,
497 gDeltaSwingTableIdx_MP_5GB_P_TxPowerTrack_SDIO_8723B,
498 DELTA_SWINGIDX_SIZE*3
501 pRFCalibrateInfo->DeltaSwingTableIdx_5GB_N,
502 gDeltaSwingTableIdx_MP_5GB_N_TxPowerTrack_SDIO_8723B,
503 DELTA_SWINGIDX_SIZE*3
507 /******************************************************************************
509 ******************************************************************************/
511 static u8 *Array_MP_8723B_TXPWR_LMT[] = {
512 "FCC", "2.4G", "20M", "CCK", "1T", "01", "32",
513 "ETSI", "2.4G", "20M", "CCK", "1T", "01", "32",
514 "MKK", "2.4G", "20M", "CCK", "1T", "01", "32",
515 "FCC", "2.4G", "20M", "CCK", "1T", "02", "32",
516 "ETSI", "2.4G", "20M", "CCK", "1T", "02", "32",
517 "MKK", "2.4G", "20M", "CCK", "1T", "02", "32",
518 "FCC", "2.4G", "20M", "CCK", "1T", "03", "32",
519 "ETSI", "2.4G", "20M", "CCK", "1T", "03", "32",
520 "MKK", "2.4G", "20M", "CCK", "1T", "03", "32",
521 "FCC", "2.4G", "20M", "CCK", "1T", "04", "32",
522 "ETSI", "2.4G", "20M", "CCK", "1T", "04", "32",
523 "MKK", "2.4G", "20M", "CCK", "1T", "04", "32",
524 "FCC", "2.4G", "20M", "CCK", "1T", "05", "32",
525 "ETSI", "2.4G", "20M", "CCK", "1T", "05", "32",
526 "MKK", "2.4G", "20M", "CCK", "1T", "05", "32",
527 "FCC", "2.4G", "20M", "CCK", "1T", "06", "32",
528 "ETSI", "2.4G", "20M", "CCK", "1T", "06", "32",
529 "MKK", "2.4G", "20M", "CCK", "1T", "06", "32",
530 "FCC", "2.4G", "20M", "CCK", "1T", "07", "32",
531 "ETSI", "2.4G", "20M", "CCK", "1T", "07", "32",
532 "MKK", "2.4G", "20M", "CCK", "1T", "07", "32",
533 "FCC", "2.4G", "20M", "CCK", "1T", "08", "32",
534 "ETSI", "2.4G", "20M", "CCK", "1T", "08", "32",
535 "MKK", "2.4G", "20M", "CCK", "1T", "08", "32",
536 "FCC", "2.4G", "20M", "CCK", "1T", "09", "32",
537 "ETSI", "2.4G", "20M", "CCK", "1T", "09", "32",
538 "MKK", "2.4G", "20M", "CCK", "1T", "09", "32",
539 "FCC", "2.4G", "20M", "CCK", "1T", "10", "32",
540 "ETSI", "2.4G", "20M", "CCK", "1T", "10", "32",
541 "MKK", "2.4G", "20M", "CCK", "1T", "10", "32",
542 "FCC", "2.4G", "20M", "CCK", "1T", "11", "32",
543 "ETSI", "2.4G", "20M", "CCK", "1T", "11", "32",
544 "MKK", "2.4G", "20M", "CCK", "1T", "11", "32",
545 "FCC", "2.4G", "20M", "CCK", "1T", "12", "63",
546 "ETSI", "2.4G", "20M", "CCK", "1T", "12", "32",
547 "MKK", "2.4G", "20M", "CCK", "1T", "12", "32",
548 "FCC", "2.4G", "20M", "CCK", "1T", "13", "63",
549 "ETSI", "2.4G", "20M", "CCK", "1T", "13", "32",
550 "MKK", "2.4G", "20M", "CCK", "1T", "13", "32",
551 "FCC", "2.4G", "20M", "CCK", "1T", "14", "63",
552 "ETSI", "2.4G", "20M", "CCK", "1T", "14", "63",
553 "MKK", "2.4G", "20M", "CCK", "1T", "14", "32",
554 "FCC", "2.4G", "20M", "OFDM", "1T", "01", "28",
555 "ETSI", "2.4G", "20M", "OFDM", "1T", "01", "32",
556 "MKK", "2.4G", "20M", "OFDM", "1T", "01", "32",
557 "FCC", "2.4G", "20M", "OFDM", "1T", "02", "28",
558 "ETSI", "2.4G", "20M", "OFDM", "1T", "02", "32",
559 "MKK", "2.4G", "20M", "OFDM", "1T", "02", "32",
560 "FCC", "2.4G", "20M", "OFDM", "1T", "03", "32",
561 "ETSI", "2.4G", "20M", "OFDM", "1T", "03", "32",
562 "MKK", "2.4G", "20M", "OFDM", "1T", "03", "32",
563 "FCC", "2.4G", "20M", "OFDM", "1T", "04", "32",
564 "ETSI", "2.4G", "20M", "OFDM", "1T", "04", "32",
565 "MKK", "2.4G", "20M", "OFDM", "1T", "04", "32",
566 "FCC", "2.4G", "20M", "OFDM", "1T", "05", "32",
567 "ETSI", "2.4G", "20M", "OFDM", "1T", "05", "32",
568 "MKK", "2.4G", "20M", "OFDM", "1T", "05", "32",
569 "FCC", "2.4G", "20M", "OFDM", "1T", "06", "32",
570 "ETSI", "2.4G", "20M", "OFDM", "1T", "06", "32",
571 "MKK", "2.4G", "20M", "OFDM", "1T", "06", "32",
572 "FCC", "2.4G", "20M", "OFDM", "1T", "07", "32",
573 "ETSI", "2.4G", "20M", "OFDM", "1T", "07", "32",
574 "MKK", "2.4G", "20M", "OFDM", "1T", "07", "32",
575 "FCC", "2.4G", "20M", "OFDM", "1T", "08", "32",
576 "ETSI", "2.4G", "20M", "OFDM", "1T", "08", "32",
577 "MKK", "2.4G", "20M", "OFDM", "1T", "08", "32",
578 "FCC", "2.4G", "20M", "OFDM", "1T", "09", "32",
579 "ETSI", "2.4G", "20M", "OFDM", "1T", "09", "32",
580 "MKK", "2.4G", "20M", "OFDM", "1T", "09", "32",
581 "FCC", "2.4G", "20M", "OFDM", "1T", "10", "28",
582 "ETSI", "2.4G", "20M", "OFDM", "1T", "10", "32",
583 "MKK", "2.4G", "20M", "OFDM", "1T", "10", "32",
584 "FCC", "2.4G", "20M", "OFDM", "1T", "11", "28",
585 "ETSI", "2.4G", "20M", "OFDM", "1T", "11", "32",
586 "MKK", "2.4G", "20M", "OFDM", "1T", "11", "32",
587 "FCC", "2.4G", "20M", "OFDM", "1T", "12", "63",
588 "ETSI", "2.4G", "20M", "OFDM", "1T", "12", "32",
589 "MKK", "2.4G", "20M", "OFDM", "1T", "12", "32",
590 "FCC", "2.4G", "20M", "OFDM", "1T", "13", "63",
591 "ETSI", "2.4G", "20M", "OFDM", "1T", "13", "32",
592 "MKK", "2.4G", "20M", "OFDM", "1T", "13", "32",
593 "FCC", "2.4G", "20M", "OFDM", "1T", "14", "63",
594 "ETSI", "2.4G", "20M", "OFDM", "1T", "14", "63",
595 "MKK", "2.4G", "20M", "OFDM", "1T", "14", "63",
596 "FCC", "2.4G", "20M", "HT", "1T", "01", "26",
597 "ETSI", "2.4G", "20M", "HT", "1T", "01", "32",
598 "MKK", "2.4G", "20M", "HT", "1T", "01", "32",
599 "FCC", "2.4G", "20M", "HT", "1T", "02", "26",
600 "ETSI", "2.4G", "20M", "HT", "1T", "02", "32",
601 "MKK", "2.4G", "20M", "HT", "1T", "02", "32",
602 "FCC", "2.4G", "20M", "HT", "1T", "03", "32",
603 "ETSI", "2.4G", "20M", "HT", "1T", "03", "32",
604 "MKK", "2.4G", "20M", "HT", "1T", "03", "32",
605 "FCC", "2.4G", "20M", "HT", "1T", "04", "32",
606 "ETSI", "2.4G", "20M", "HT", "1T", "04", "32",
607 "MKK", "2.4G", "20M", "HT", "1T", "04", "32",
608 "FCC", "2.4G", "20M", "HT", "1T", "05", "32",
609 "ETSI", "2.4G", "20M", "HT", "1T", "05", "32",
610 "MKK", "2.4G", "20M", "HT", "1T", "05", "32",
611 "FCC", "2.4G", "20M", "HT", "1T", "06", "32",
612 "ETSI", "2.4G", "20M", "HT", "1T", "06", "32",
613 "MKK", "2.4G", "20M", "HT", "1T", "06", "32",
614 "FCC", "2.4G", "20M", "HT", "1T", "07", "32",
615 "ETSI", "2.4G", "20M", "HT", "1T", "07", "32",
616 "MKK", "2.4G", "20M", "HT", "1T", "07", "32",
617 "FCC", "2.4G", "20M", "HT", "1T", "08", "32",
618 "ETSI", "2.4G", "20M", "HT", "1T", "08", "32",
619 "MKK", "2.4G", "20M", "HT", "1T", "08", "32",
620 "FCC", "2.4G", "20M", "HT", "1T", "09", "32",
621 "ETSI", "2.4G", "20M", "HT", "1T", "09", "32",
622 "MKK", "2.4G", "20M", "HT", "1T", "09", "32",
623 "FCC", "2.4G", "20M", "HT", "1T", "10", "26",
624 "ETSI", "2.4G", "20M", "HT", "1T", "10", "32",
625 "MKK", "2.4G", "20M", "HT", "1T", "10", "32",
626 "FCC", "2.4G", "20M", "HT", "1T", "11", "26",
627 "ETSI", "2.4G", "20M", "HT", "1T", "11", "32",
628 "MKK", "2.4G", "20M", "HT", "1T", "11", "32",
629 "FCC", "2.4G", "20M", "HT", "1T", "12", "63",
630 "ETSI", "2.4G", "20M", "HT", "1T", "12", "32",
631 "MKK", "2.4G", "20M", "HT", "1T", "12", "32",
632 "FCC", "2.4G", "20M", "HT", "1T", "13", "63",
633 "ETSI", "2.4G", "20M", "HT", "1T", "13", "32",
634 "MKK", "2.4G", "20M", "HT", "1T", "13", "32",
635 "FCC", "2.4G", "20M", "HT", "1T", "14", "63",
636 "ETSI", "2.4G", "20M", "HT", "1T", "14", "63",
637 "MKK", "2.4G", "20M", "HT", "1T", "14", "63",
638 "FCC", "2.4G", "20M", "HT", "2T", "01", "30",
639 "ETSI", "2.4G", "20M", "HT", "2T", "01", "32",
640 "MKK", "2.4G", "20M", "HT", "2T", "01", "32",
641 "FCC", "2.4G", "20M", "HT", "2T", "02", "32",
642 "ETSI", "2.4G", "20M", "HT", "2T", "02", "32",
643 "MKK", "2.4G", "20M", "HT", "2T", "02", "32",
644 "FCC", "2.4G", "20M", "HT", "2T", "03", "32",
645 "ETSI", "2.4G", "20M", "HT", "2T", "03", "32",
646 "MKK", "2.4G", "20M", "HT", "2T", "03", "32",
647 "FCC", "2.4G", "20M", "HT", "2T", "04", "32",
648 "ETSI", "2.4G", "20M", "HT", "2T", "04", "32",
649 "MKK", "2.4G", "20M", "HT", "2T", "04", "32",
650 "FCC", "2.4G", "20M", "HT", "2T", "05", "32",
651 "ETSI", "2.4G", "20M", "HT", "2T", "05", "32",
652 "MKK", "2.4G", "20M", "HT", "2T", "05", "32",
653 "FCC", "2.4G", "20M", "HT", "2T", "06", "32",
654 "ETSI", "2.4G", "20M", "HT", "2T", "06", "32",
655 "MKK", "2.4G", "20M", "HT", "2T", "06", "32",
656 "FCC", "2.4G", "20M", "HT", "2T", "07", "32",
657 "ETSI", "2.4G", "20M", "HT", "2T", "07", "32",
658 "MKK", "2.4G", "20M", "HT", "2T", "07", "32",
659 "FCC", "2.4G", "20M", "HT", "2T", "08", "32",
660 "ETSI", "2.4G", "20M", "HT", "2T", "08", "32",
661 "MKK", "2.4G", "20M", "HT", "2T", "08", "32",
662 "FCC", "2.4G", "20M", "HT", "2T", "09", "32",
663 "ETSI", "2.4G", "20M", "HT", "2T", "09", "32",
664 "MKK", "2.4G", "20M", "HT", "2T", "09", "32",
665 "FCC", "2.4G", "20M", "HT", "2T", "10", "32",
666 "ETSI", "2.4G", "20M", "HT", "2T", "10", "32",
667 "MKK", "2.4G", "20M", "HT", "2T", "10", "32",
668 "FCC", "2.4G", "20M", "HT", "2T", "11", "30",
669 "ETSI", "2.4G", "20M", "HT", "2T", "11", "32",
670 "MKK", "2.4G", "20M", "HT", "2T", "11", "32",
671 "FCC", "2.4G", "20M", "HT", "2T", "12", "63",
672 "ETSI", "2.4G", "20M", "HT", "2T", "12", "32",
673 "MKK", "2.4G", "20M", "HT", "2T", "12", "32",
674 "FCC", "2.4G", "20M", "HT", "2T", "13", "63",
675 "ETSI", "2.4G", "20M", "HT", "2T", "13", "32",
676 "MKK", "2.4G", "20M", "HT", "2T", "13", "32",
677 "FCC", "2.4G", "20M", "HT", "2T", "14", "63",
678 "ETSI", "2.4G", "20M", "HT", "2T", "14", "63",
679 "MKK", "2.4G", "20M", "HT", "2T", "14", "63",
680 "FCC", "2.4G", "40M", "HT", "1T", "01", "63",
681 "ETSI", "2.4G", "40M", "HT", "1T", "01", "63",
682 "MKK", "2.4G", "40M", "HT", "1T", "01", "63",
683 "FCC", "2.4G", "40M", "HT", "1T", "02", "63",
684 "ETSI", "2.4G", "40M", "HT", "1T", "02", "63",
685 "MKK", "2.4G", "40M", "HT", "1T", "02", "63",
686 "FCC", "2.4G", "40M", "HT", "1T", "03", "26",
687 "ETSI", "2.4G", "40M", "HT", "1T", "03", "32",
688 "MKK", "2.4G", "40M", "HT", "1T", "03", "32",
689 "FCC", "2.4G", "40M", "HT", "1T", "04", "26",
690 "ETSI", "2.4G", "40M", "HT", "1T", "04", "32",
691 "MKK", "2.4G", "40M", "HT", "1T", "04", "32",
692 "FCC", "2.4G", "40M", "HT", "1T", "05", "32",
693 "ETSI", "2.4G", "40M", "HT", "1T", "05", "32",
694 "MKK", "2.4G", "40M", "HT", "1T", "05", "32",
695 "FCC", "2.4G", "40M", "HT", "1T", "06", "32",
696 "ETSI", "2.4G", "40M", "HT", "1T", "06", "32",
697 "MKK", "2.4G", "40M", "HT", "1T", "06", "32",
698 "FCC", "2.4G", "40M", "HT", "1T", "07", "32",
699 "ETSI", "2.4G", "40M", "HT", "1T", "07", "32",
700 "MKK", "2.4G", "40M", "HT", "1T", "07", "32",
701 "FCC", "2.4G", "40M", "HT", "1T", "08", "26",
702 "ETSI", "2.4G", "40M", "HT", "1T", "08", "32",
703 "MKK", "2.4G", "40M", "HT", "1T", "08", "32",
704 "FCC", "2.4G", "40M", "HT", "1T", "09", "26",
705 "ETSI", "2.4G", "40M", "HT", "1T", "09", "32",
706 "MKK", "2.4G", "40M", "HT", "1T", "09", "32",
707 "FCC", "2.4G", "40M", "HT", "1T", "10", "26",
708 "ETSI", "2.4G", "40M", "HT", "1T", "10", "32",
709 "MKK", "2.4G", "40M", "HT", "1T", "10", "32",
710 "FCC", "2.4G", "40M", "HT", "1T", "11", "26",
711 "ETSI", "2.4G", "40M", "HT", "1T", "11", "32",
712 "MKK", "2.4G", "40M", "HT", "1T", "11", "32",
713 "FCC", "2.4G", "40M", "HT", "1T", "12", "63",
714 "ETSI", "2.4G", "40M", "HT", "1T", "12", "32",
715 "MKK", "2.4G", "40M", "HT", "1T", "12", "32",
716 "FCC", "2.4G", "40M", "HT", "1T", "13", "63",
717 "ETSI", "2.4G", "40M", "HT", "1T", "13", "32",
718 "MKK", "2.4G", "40M", "HT", "1T", "13", "32",
719 "FCC", "2.4G", "40M", "HT", "1T", "14", "63",
720 "ETSI", "2.4G", "40M", "HT", "1T", "14", "63",
721 "MKK", "2.4G", "40M", "HT", "1T", "14", "63",
722 "FCC", "2.4G", "40M", "HT", "2T", "01", "63",
723 "ETSI", "2.4G", "40M", "HT", "2T", "01", "63",
724 "MKK", "2.4G", "40M", "HT", "2T", "01", "63",
725 "FCC", "2.4G", "40M", "HT", "2T", "02", "63",
726 "ETSI", "2.4G", "40M", "HT", "2T", "02", "63",
727 "MKK", "2.4G", "40M", "HT", "2T", "02", "63",
728 "FCC", "2.4G", "40M", "HT", "2T", "03", "30",
729 "ETSI", "2.4G", "40M", "HT", "2T", "03", "30",
730 "MKK", "2.4G", "40M", "HT", "2T", "03", "30",
731 "FCC", "2.4G", "40M", "HT", "2T", "04", "32",
732 "ETSI", "2.4G", "40M", "HT", "2T", "04", "30",
733 "MKK", "2.4G", "40M", "HT", "2T", "04", "30",
734 "FCC", "2.4G", "40M", "HT", "2T", "05", "32",
735 "ETSI", "2.4G", "40M", "HT", "2T", "05", "30",
736 "MKK", "2.4G", "40M", "HT", "2T", "05", "30",
737 "FCC", "2.4G", "40M", "HT", "2T", "06", "32",
738 "ETSI", "2.4G", "40M", "HT", "2T", "06", "30",
739 "MKK", "2.4G", "40M", "HT", "2T", "06", "30",
740 "FCC", "2.4G", "40M", "HT", "2T", "07", "32",
741 "ETSI", "2.4G", "40M", "HT", "2T", "07", "30",
742 "MKK", "2.4G", "40M", "HT", "2T", "07", "30",
743 "FCC", "2.4G", "40M", "HT", "2T", "08", "32",
744 "ETSI", "2.4G", "40M", "HT", "2T", "08", "30",
745 "MKK", "2.4G", "40M", "HT", "2T", "08", "30",
746 "FCC", "2.4G", "40M", "HT", "2T", "09", "32",
747 "ETSI", "2.4G", "40M", "HT", "2T", "09", "30",
748 "MKK", "2.4G", "40M", "HT", "2T", "09", "30",
749 "FCC", "2.4G", "40M", "HT", "2T", "10", "32",
750 "ETSI", "2.4G", "40M", "HT", "2T", "10", "30",
751 "MKK", "2.4G", "40M", "HT", "2T", "10", "30",
752 "FCC", "2.4G", "40M", "HT", "2T", "11", "30",
753 "ETSI", "2.4G", "40M", "HT", "2T", "11", "30",
754 "MKK", "2.4G", "40M", "HT", "2T", "11", "30",
755 "FCC", "2.4G", "40M", "HT", "2T", "12", "63",
756 "ETSI", "2.4G", "40M", "HT", "2T", "12", "32",
757 "MKK", "2.4G", "40M", "HT", "2T", "12", "32",
758 "FCC", "2.4G", "40M", "HT", "2T", "13", "63",
759 "ETSI", "2.4G", "40M", "HT", "2T", "13", "32",
760 "MKK", "2.4G", "40M", "HT", "2T", "13", "32",
761 "FCC", "2.4G", "40M", "HT", "2T", "14", "63",
762 "ETSI", "2.4G", "40M", "HT", "2T", "14", "63",
763 "MKK", "2.4G", "40M", "HT", "2T", "14", "63"
766 void ODM_ReadAndConfig_MP_8723B_TXPWR_LMT(PDM_ODM_T pDM_Odm)
769 u32 ArrayLen = sizeof(Array_MP_8723B_TXPWR_LMT)/sizeof(u8 *);
770 u8 **Array = Array_MP_8723B_TXPWR_LMT;
776 ("===> ODM_ReadAndConfig_MP_8723B_TXPWR_LMT\n")
779 for (i = 0; i < ArrayLen; i += 7) {
780 u8 *regulation = Array[i];
781 u8 *band = Array[i+1];
782 u8 *bandwidth = Array[i+2];
783 u8 *rate = Array[i+3];
784 u8 *rfPath = Array[i+4];
785 u8 *chnl = Array[i+5];
786 u8 *val = Array[i+6];
788 odm_ConfigBB_TXPWR_LMT_8723B(