HalHWImg8821A_TestChip_RF.c 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
  4. *
  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.
  8. *
  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
  12. * more details.
  13. *
  14. * You should have received a copy of the GNU General Public License along with
  15. * this program; if not, write to the Free Software Foundation, Inc.,
  16. * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  17. *
  18. *
  19. ******************************************************************************/
  20. //#include "Mp_Precomp.h"
  21. #include "../odm_precomp.h"
  22. #if (RTL8821A_SUPPORT == 1)
  23. static BOOLEAN
  24. CheckCondition(
  25. const u4Byte Condition,
  26. const u4Byte Hex
  27. )
  28. {
  29. u4Byte _board = (Hex & 0x000000FF);
  30. u4Byte _interface = (Hex & 0x0000FF00) >> 8;
  31. u4Byte _platform = (Hex & 0x00FF0000) >> 16;
  32. u4Byte cond = Condition;
  33. if ( Condition == 0xCDCDCDCD )
  34. return TRUE;
  35. cond = Condition & 0x000000FF;
  36. if ( (_board != cond) && (cond != 0xFF) )
  37. return FALSE;
  38. cond = Condition & 0x0000FF00;
  39. cond = cond >> 8;
  40. if ( ((_interface & cond) == 0) && (cond != 0x07) )
  41. return FALSE;
  42. cond = Condition & 0x00FF0000;
  43. cond = cond >> 16;
  44. if ( ((_platform & cond) == 0) && (cond != 0x0F) )
  45. return FALSE;
  46. return TRUE;
  47. }
  48. /******************************************************************************
  49. * RadioA.TXT
  50. ******************************************************************************/
  51. u4Byte Array_TC_8821A_RadioA[] = {
  52. 0x018, 0x0001712A,
  53. 0x056, 0x00051CF2,
  54. 0x066, 0x00040000,
  55. 0x01C, 0x000739D2,
  56. 0x01E, 0x000F8000,
  57. 0x082, 0x00000830,
  58. 0x083, 0x00021800,
  59. 0x084, 0x00028000,
  60. 0x085, 0x00048000,
  61. 0x086, 0x00094838,
  62. 0x087, 0x00044980,
  63. 0x088, 0x00048000,
  64. 0x089, 0x0000D480,
  65. 0x08A, 0x00042240,
  66. 0x08B, 0x000F0380,
  67. 0x08C, 0x00090000,
  68. 0x08D, 0x00022852,
  69. 0x08E, 0x00065540,
  70. 0x08F, 0x00088001,
  71. 0x0EF, 0x00020000,
  72. 0x03E, 0x00000380,
  73. 0x03F, 0x00090018,
  74. 0x03E, 0x00020380,
  75. 0x03F, 0x000A0018,
  76. 0x03E, 0x00040308,
  77. 0x03F, 0x000A0018,
  78. 0x03E, 0x00060018,
  79. 0x03F, 0x000A0018,
  80. 0x0EF, 0x00000000,
  81. 0x018, 0x0001712A,
  82. 0x0EF, 0x00001000,
  83. 0x03A, 0x000000C4,
  84. 0x03B, 0x0003A000,
  85. 0x03A, 0x000001FC,
  86. 0x03B, 0x00032000,
  87. 0x03A, 0x000001B4,
  88. 0x03B, 0x0002A000,
  89. 0x03A, 0x000001C4,
  90. 0x03B, 0x000221C8,
  91. 0x03A, 0x00000188,
  92. 0x03B, 0x0001A001,
  93. 0x03A, 0x000000C4,
  94. 0x03B, 0x0007A000,
  95. 0x03A, 0x000001FC,
  96. 0x03B, 0x00072000,
  97. 0x03A, 0x000001B4,
  98. 0x03B, 0x0006A000,
  99. 0x03A, 0x000001C4,
  100. 0x03B, 0x000621C8,
  101. 0x03A, 0x00000188,
  102. 0x03B, 0x0005A001,
  103. 0x03A, 0x000000C4,
  104. 0x03B, 0x000BA000,
  105. 0x03A, 0x000001FC,
  106. 0x03B, 0x000B2000,
  107. 0x03A, 0x000001B4,
  108. 0x03B, 0x000AA000,
  109. 0x03A, 0x000001C4,
  110. 0x03B, 0x000A21C8,
  111. 0x03A, 0x00000188,
  112. 0x03B, 0x0009A001,
  113. 0x0EF, 0x00000000,
  114. 0x0EF, 0x00001100,
  115. 0xFF0F02C0, 0xABCD,
  116. 0x034, 0x0004A8B1,
  117. 0x034, 0x000498AE,
  118. 0x034, 0x000484AE,
  119. 0x034, 0x000474AB,
  120. 0x034, 0x0004648E,
  121. 0x034, 0x0004548B,
  122. 0x034, 0x0004408D,
  123. 0x034, 0x0004308A,
  124. 0x034, 0x00042087,
  125. 0x034, 0x00041084,
  126. 0x034, 0x00040081,
  127. 0xCDCDCDCD, 0xCDCD,
  128. 0x034, 0x0004ADF7,
  129. 0x034, 0x00049DF3,
  130. 0x034, 0x00048DEF,
  131. 0x034, 0x00047DEC,
  132. 0x034, 0x00046DE9,
  133. 0x034, 0x00045CCB,
  134. 0x034, 0x0004488D,
  135. 0x034, 0x0004348D,
  136. 0x034, 0x0004248A,
  137. 0x034, 0x0004108D,
  138. 0x034, 0x0004008A,
  139. 0xFF0F02C0, 0xDEAD,
  140. 0xFF0F02C0, 0xABCD,
  141. 0x034, 0x0002A8F0,
  142. 0x034, 0x000298AF,
  143. 0x034, 0x000284AF,
  144. 0x034, 0x000274AC,
  145. 0x034, 0x0002648E,
  146. 0x034, 0x0002548B,
  147. 0x034, 0x0002408D,
  148. 0x034, 0x0002308A,
  149. 0x034, 0x00022087,
  150. 0x034, 0x00021084,
  151. 0x034, 0x00020081,
  152. 0xCDCDCDCD, 0xCDCD,
  153. 0x034, 0x0002ADF7,
  154. 0x034, 0x00029DF2,
  155. 0x034, 0x00028DEE,
  156. 0x034, 0x00027DEB,
  157. 0x034, 0x00026CCD,
  158. 0x034, 0x00025CCA,
  159. 0x034, 0x0002488C,
  160. 0x034, 0x0002384C,
  161. 0x034, 0x00022849,
  162. 0x034, 0x00021449,
  163. 0x034, 0x0002004D,
  164. 0xFF0F02C0, 0xDEAD,
  165. 0xFF0F02C0, 0xABCD,
  166. 0x034, 0x0000A9EF,
  167. 0x034, 0x000098EF,
  168. 0x034, 0x000088AE,
  169. 0x034, 0x000074AE,
  170. 0x034, 0x000064AB,
  171. 0x034, 0x0000548E,
  172. 0x034, 0x0000448B,
  173. 0x034, 0x0000308D,
  174. 0x034, 0x0000208A,
  175. 0x034, 0x00001087,
  176. 0x034, 0x00000084,
  177. 0xCDCDCDCD, 0xCDCD,
  178. 0x034, 0x0000ADF7,
  179. 0x034, 0x00009DF4,
  180. 0x034, 0x00008DF1,
  181. 0x034, 0x00007DEE,
  182. 0x034, 0x00006DCD,
  183. 0x034, 0x00005CCD,
  184. 0x034, 0x00004CCA,
  185. 0x034, 0x0000388C,
  186. 0x034, 0x00002888,
  187. 0x034, 0x00001488,
  188. 0x034, 0x00000486,
  189. 0xFF0F02C0, 0xDEAD,
  190. 0x0EF, 0x00000000,
  191. 0x018, 0x0001712A,
  192. 0x0EF, 0x00000040,
  193. 0x035, 0x00000145,
  194. 0x035, 0x00008145,
  195. 0x035, 0x00010145,
  196. 0x035, 0x00020196,
  197. 0x035, 0x00028196,
  198. 0x035, 0x00030196,
  199. 0x035, 0x000401C7,
  200. 0x035, 0x000481C7,
  201. 0x035, 0x000501C7,
  202. 0x0EF, 0x00000000,
  203. 0x018, 0x0001712A,
  204. 0x0EF, 0x00000010,
  205. 0x036, 0x000056B3,
  206. 0x036, 0x0000D6B3,
  207. 0x036, 0x000156B3,
  208. 0x036, 0x0001D6B3,
  209. 0x036, 0x00026634,
  210. 0x036, 0x0002E634,
  211. 0x036, 0x00036634,
  212. 0x036, 0x0003E634,
  213. 0x036, 0x000467B4,
  214. 0x036, 0x0004E7B4,
  215. 0x036, 0x000567B4,
  216. 0x036, 0x0005E7B4,
  217. 0x0EF, 0x00000000,
  218. 0x0EF, 0x00000008,
  219. 0x03C, 0x0000022A,
  220. 0x03C, 0x00000594,
  221. 0xFF0F02C0, 0xABCD,
  222. 0x03C, 0x00000820,
  223. 0xCDCDCDCD, 0xCDCD,
  224. 0x03C, 0x00000900,
  225. 0xFF0F02C0, 0xDEAD,
  226. 0x0EF, 0x00000000,
  227. 0x018, 0x0001712A,
  228. 0x0EF, 0x00000002,
  229. 0x008, 0x00002000,
  230. 0x0EF, 0x00000000,
  231. 0x0DF, 0x000000C0,
  232. 0x01F, 0x00040064,
  233. 0x058, 0x00081184,
  234. 0x059, 0x0006016C,
  235. 0x061, 0x000EAD53,
  236. 0x062, 0x00093BC4,
  237. 0x063, 0x000714E9,
  238. 0x064, 0x0001C67C,
  239. 0xFF0F02C0, 0xABCD,
  240. 0x065, 0x00091011,
  241. 0xCDCDCDCD, 0xCDCD,
  242. 0x065, 0x00091016,
  243. 0xFF0F02C0, 0xDEAD,
  244. 0x018, 0x00000006,
  245. 0x0EF, 0x00002000,
  246. 0x03B, 0x00039258,
  247. 0x03B, 0x00031258,
  248. 0x03B, 0x00029258,
  249. 0x03B, 0x00027A58,
  250. 0x03B, 0x0001FA58,
  251. 0x03B, 0x00012590,
  252. 0x03B, 0x00008248,
  253. 0x03B, 0x00000A40,
  254. 0x0EF, 0x00000000,
  255. 0x0EF, 0x00000100,
  256. 0x034, 0x0000ADF2,
  257. 0x035, 0x00004800,
  258. 0x034, 0x00009DEF,
  259. 0x035, 0x00003C00,
  260. 0x034, 0x00008DEC,
  261. 0x035, 0x00003000,
  262. 0x034, 0x00007DE9,
  263. 0x035, 0x00002400,
  264. 0x034, 0x00006CEC,
  265. 0x035, 0x00003000,
  266. 0x034, 0x00005CE9,
  267. 0x035, 0x00002400,
  268. 0x034, 0x000044EC,
  269. 0x035, 0x00003000,
  270. 0x034, 0x000034E9,
  271. 0x035, 0x00002400,
  272. 0x034, 0x0000246C,
  273. 0x035, 0x00003000,
  274. 0x034, 0x00001469,
  275. 0x035, 0x00002400,
  276. 0x034, 0x0000006C,
  277. 0x035, 0x00003000,
  278. 0x0EF, 0x00000000,
  279. 0x0ED, 0x00000010,
  280. 0x044, 0x0000ADF2,
  281. 0x044, 0x00009DEF,
  282. 0x044, 0x00008DEC,
  283. 0x044, 0x00007DE9,
  284. 0x044, 0x00006CEC,
  285. 0x044, 0x00005CE9,
  286. 0x044, 0x000044EC,
  287. 0x044, 0x000034E9,
  288. 0x044, 0x0000246C,
  289. 0x044, 0x00001469,
  290. 0x044, 0x0000006C,
  291. 0x0ED, 0x00000000,
  292. 0x0ED, 0x00000001,
  293. 0x040, 0x00038DA7,
  294. 0x040, 0x000300C2,
  295. 0x040, 0x000288E2,
  296. 0x040, 0x000200B8,
  297. 0x040, 0x000188A5,
  298. 0x040, 0x00010FBC,
  299. 0x040, 0x00008F71,
  300. 0x040, 0x00000240,
  301. 0x0ED, 0x00000000,
  302. 0x0EF, 0x000020A2,
  303. 0x0DF, 0x00000080,
  304. 0x035, 0x00000120,
  305. 0x035, 0x00008120,
  306. 0x035, 0x00010120,
  307. 0x036, 0x00000085,
  308. 0x036, 0x00008085,
  309. 0x036, 0x00010085,
  310. 0x036, 0x00018085,
  311. 0x0EF, 0x00000000,
  312. 0x051, 0x00000C31,
  313. 0x052, 0x00000622,
  314. 0x053, 0x000FC70B,
  315. 0x054, 0x0000017E,
  316. 0x056, 0x00051DF3,
  317. 0x051, 0x00000C01,
  318. 0x052, 0x000006D6,
  319. 0x053, 0x000FC649,
  320. 0xFF0F0104, 0xABCD,
  321. 0x0DD, 0x00000060,
  322. 0xCDCDCDCD, 0xCDCD,
  323. 0x0DD, 0x00000040,
  324. 0xFF0F0104, 0xDEAD,
  325. 0x070, 0x00049661,
  326. 0x071, 0x0007843E,
  327. 0x072, 0x00000382,
  328. 0x074, 0x00051400,
  329. 0x035, 0x00000160,
  330. 0x035, 0x00008160,
  331. 0x035, 0x00010160,
  332. 0x036, 0x00000124,
  333. 0x036, 0x00008124,
  334. 0x036, 0x00010124,
  335. 0x036, 0x00018124,
  336. 0x0ED, 0x0000000C,
  337. 0x045, 0x00000140,
  338. 0x045, 0x00008140,
  339. 0x045, 0x00010140,
  340. 0x046, 0x00000124,
  341. 0x046, 0x00008124,
  342. 0x046, 0x00010124,
  343. 0x046, 0x00018124,
  344. 0x0DF, 0x00000088,
  345. 0x0B3, 0x000F0618,
  346. 0x0B4, 0x00013E4C,
  347. 0x0B7, 0x00030008,
  348. 0x018, 0x0001F12A,
  349. 0x0FE, 0x00000000,
  350. 0x0FE, 0x00000000,
  351. 0x0FE, 0x00000000,
  352. 0x0FE, 0x00000000,
  353. 0x0B3, 0x000F0E18,
  354. 0x0B4, 0x0001364C,
  355. };
  356. void
  357. ODM_ReadAndConfig_TC_8821A_RadioA(
  358. IN PDM_ODM_T pDM_Odm
  359. )
  360. {
  361. #define READ_NEXT_PAIR(v1, v2, i) do { i += 2; v1 = Array[i]; v2 = Array[i+1]; } while(0)
  362. u4Byte hex = 0;
  363. u4Byte i = 0;
  364. u2Byte count = 0;
  365. pu4Byte ptr_array = NULL;
  366. u1Byte platform = pDM_Odm->SupportPlatform;
  367. u1Byte _interface = pDM_Odm->SupportInterface;
  368. u1Byte board = pDM_Odm->BoardType;
  369. u4Byte ArrayLen = sizeof(Array_TC_8821A_RadioA)/sizeof(u4Byte);
  370. pu4Byte Array = Array_TC_8821A_RadioA;
  371. hex += board;
  372. hex += _interface << 8;
  373. hex += platform << 16;
  374. hex += 0xFF000000;
  375. ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ReadAndConfig_TC_8821A_RadioA, hex = 0x%X\n", hex));
  376. for (i = 0; i < ArrayLen; i += 2 )
  377. {
  378. u4Byte v1 = Array[i];
  379. u4Byte v2 = Array[i+1];
  380. // This (offset, data) pair meets the condition.
  381. if ( v1 < 0xCDCDCDCD )
  382. {
  383. odm_ConfigRF_RadioA_8821A(pDM_Odm, v1, v2);
  384. continue;
  385. }
  386. else
  387. { // This line is the start line of branch.
  388. if ( !CheckCondition(Array[i], hex) )
  389. { // Discard the following (offset, data) pairs.
  390. READ_NEXT_PAIR(v1, v2, i);
  391. while (v2 != 0xDEAD &&
  392. v2 != 0xCDEF &&
  393. v2 != 0xCDCD && i < ArrayLen -2)
  394. {
  395. READ_NEXT_PAIR(v1, v2, i);
  396. }
  397. i -= 2; // prevent from for-loop += 2
  398. }
  399. else // Configure matched pairs and skip to end of if-else.
  400. {
  401. READ_NEXT_PAIR(v1, v2, i);
  402. while (v2 != 0xDEAD &&
  403. v2 != 0xCDEF &&
  404. v2 != 0xCDCD && i < ArrayLen -2)
  405. {
  406. odm_ConfigRF_RadioA_8821A(pDM_Odm, v1, v2);
  407. READ_NEXT_PAIR(v1, v2, i);
  408. }
  409. while (v2 != 0xDEAD && i < ArrayLen -2)
  410. {
  411. READ_NEXT_PAIR(v1, v2, i);
  412. }
  413. }
  414. }
  415. }
  416. }
  417. /******************************************************************************
  418. * TxPowerTrack_AP.TXT
  419. ******************************************************************************/
  420. u1Byte gDeltaSwingTableIdx_TC_5GB_N__8821A[][DELTA_SWINGIDX_SIZE] = {
  421. {0, 1, 1, 2, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
  422. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 19, 20, 20, 20},
  423. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 21},
  424. };
  425. u1Byte gDeltaSwingTableIdx_TC_5GB_P__8821A[][DELTA_SWINGIDX_SIZE] = {
  426. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 17, 17, 18, 19, 20, 20, 20},
  427. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 19, 20, 20, 20},
  428. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 21},
  429. };
  430. u1Byte gDeltaSwingTableIdx_TC_5GA_N__8821A[][DELTA_SWINGIDX_SIZE] = {
  431. {0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
  432. {0, 1, 2, 3, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10, 11, 11, 12, 13, 13, 14, 15, 16, 16, 16, 16, 16, 16, 16},
  433. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16},
  434. };
  435. u1Byte gDeltaSwingTableIdx_TC_5GA_P__8821A[][DELTA_SWINGIDX_SIZE] = {
  436. {0, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 18, 19, 19, 19},
  437. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 21},
  438. {0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 21},
  439. };
  440. u1Byte gDeltaSwingTableIdx_TC_2GB_N__8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  441. u1Byte gDeltaSwingTableIdx_TC_2GB_P__8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  442. u1Byte gDeltaSwingTableIdx_TC_2GA_N__8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  443. u1Byte gDeltaSwingTableIdx_TC_2GA_P__8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  444. u1Byte gDeltaSwingTableIdx_TC_2GCCKB_N__8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  445. u1Byte gDeltaSwingTableIdx_TC_2GCCKB_P__8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  446. u1Byte gDeltaSwingTableIdx_TC_2GCCKA_N__8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  447. u1Byte gDeltaSwingTableIdx_TC_2GCCKA_P__8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  448. void
  449. ODM_ReadAndConfig_TC_8821A_TxPowerTrack_AP(
  450. IN PDM_ODM_T pDM_Odm
  451. )
  452. {
  453. PODM_RF_CAL_T pRFCalibrateInfo = &(pDM_Odm->RFCalibrateInfo);
  454. ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ReadAndConfig_MP_TC_8821A\n"));
  455. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GA_P, gDeltaSwingTableIdx_TC_2GA_P__8821A, DELTA_SWINGIDX_SIZE);
  456. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GA_N, gDeltaSwingTableIdx_TC_2GA_N__8821A, DELTA_SWINGIDX_SIZE);
  457. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GB_P, gDeltaSwingTableIdx_TC_2GB_P__8821A, DELTA_SWINGIDX_SIZE);
  458. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GB_N, gDeltaSwingTableIdx_TC_2GB_N__8821A, DELTA_SWINGIDX_SIZE);
  459. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_P, gDeltaSwingTableIdx_TC_2GCCKA_P__8821A, DELTA_SWINGIDX_SIZE);
  460. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_N, gDeltaSwingTableIdx_TC_2GCCKA_N__8821A, DELTA_SWINGIDX_SIZE);
  461. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_P, gDeltaSwingTableIdx_TC_2GCCKB_P__8821A, DELTA_SWINGIDX_SIZE);
  462. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_N, gDeltaSwingTableIdx_TC_2GCCKB_N__8821A, DELTA_SWINGIDX_SIZE);
  463. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GA_P, gDeltaSwingTableIdx_TC_5GA_P__8821A, DELTA_SWINGIDX_SIZE*3);
  464. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GA_N, gDeltaSwingTableIdx_TC_5GA_N__8821A, DELTA_SWINGIDX_SIZE*3);
  465. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GB_P, gDeltaSwingTableIdx_TC_5GB_P__8821A, DELTA_SWINGIDX_SIZE*3);
  466. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GB_N, gDeltaSwingTableIdx_TC_5GB_N__8821A, DELTA_SWINGIDX_SIZE*3);
  467. }
  468. /******************************************************************************
  469. * TxPowerTrack_PCIE.TXT
  470. ******************************************************************************/
  471. u1Byte gDeltaSwingTableIdx_TC_5GB_N_PCIE_8821A[][DELTA_SWINGIDX_SIZE] = {
  472. {0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13},
  473. {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11},
  474. {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  475. };
  476. u1Byte gDeltaSwingTableIdx_TC_5GB_P_PCIE_8821A[][DELTA_SWINGIDX_SIZE] = {
  477. {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11},
  478. {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11},
  479. {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  480. };
  481. u1Byte gDeltaSwingTableIdx_TC_5GA_N_PCIE_8821A[][DELTA_SWINGIDX_SIZE] = {
  482. {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13},
  483. {0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13},
  484. {0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 18, 18},
  485. };
  486. u1Byte gDeltaSwingTableIdx_TC_5GA_P_PCIE_8821A[][DELTA_SWINGIDX_SIZE] = {
  487. {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11},
  488. {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  489. {0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  490. };
  491. u1Byte gDeltaSwingTableIdx_TC_2GB_N_PCIE_8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  492. u1Byte gDeltaSwingTableIdx_TC_2GB_P_PCIE_8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  493. u1Byte gDeltaSwingTableIdx_TC_2GA_N_PCIE_8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  494. u1Byte gDeltaSwingTableIdx_TC_2GA_P_PCIE_8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  495. u1Byte gDeltaSwingTableIdx_TC_2GCCKB_N_PCIE_8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  496. u1Byte gDeltaSwingTableIdx_TC_2GCCKB_P_PCIE_8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  497. u1Byte gDeltaSwingTableIdx_TC_2GCCKA_N_PCIE_8821A[] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11};
  498. u1Byte gDeltaSwingTableIdx_TC_2GCCKA_P_PCIE_8821A[] = {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9};
  499. void
  500. ODM_ReadAndConfig_TC_8821A_TxPowerTrack_PCIE(
  501. IN PDM_ODM_T pDM_Odm
  502. )
  503. {
  504. PODM_RF_CAL_T pRFCalibrateInfo = &(pDM_Odm->RFCalibrateInfo);
  505. ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ReadAndConfig_MP_TC_8821A\n"));
  506. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GA_P, gDeltaSwingTableIdx_TC_2GA_P_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  507. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GA_N, gDeltaSwingTableIdx_TC_2GA_N_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  508. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GB_P, gDeltaSwingTableIdx_TC_2GB_P_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  509. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GB_N, gDeltaSwingTableIdx_TC_2GB_N_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  510. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_P, gDeltaSwingTableIdx_TC_2GCCKA_P_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  511. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_N, gDeltaSwingTableIdx_TC_2GCCKA_N_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  512. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_P, gDeltaSwingTableIdx_TC_2GCCKB_P_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  513. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_N, gDeltaSwingTableIdx_TC_2GCCKB_N_PCIE_8821A, DELTA_SWINGIDX_SIZE);
  514. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GA_P, gDeltaSwingTableIdx_TC_5GA_P_PCIE_8821A, DELTA_SWINGIDX_SIZE*3);
  515. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GA_N, gDeltaSwingTableIdx_TC_5GA_N_PCIE_8821A, DELTA_SWINGIDX_SIZE*3);
  516. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GB_P, gDeltaSwingTableIdx_TC_5GB_P_PCIE_8821A, DELTA_SWINGIDX_SIZE*3);
  517. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GB_N, gDeltaSwingTableIdx_TC_5GB_N_PCIE_8821A, DELTA_SWINGIDX_SIZE*3);
  518. }
  519. /******************************************************************************
  520. * TxPowerTrack_USB.TXT
  521. ******************************************************************************/
  522. u1Byte gDeltaSwingTableIdx_TC_5GB_N_USB_8821A[][DELTA_SWINGIDX_SIZE] = {
  523. {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14},
  524. {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  525. {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  526. };
  527. u1Byte gDeltaSwingTableIdx_TC_5GB_P_USB_8821A[][DELTA_SWINGIDX_SIZE] = {
  528. {0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  529. {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  530. {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  531. };
  532. u1Byte gDeltaSwingTableIdx_TC_5GA_N_USB_8821A[][DELTA_SWINGIDX_SIZE] = {
  533. {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 15, 15, 15, 15},
  534. {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 15, 15, 15, 15},
  535. {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 15, 15, 15, 15},
  536. };
  537. u1Byte gDeltaSwingTableIdx_TC_5GA_P_USB_8821A[][DELTA_SWINGIDX_SIZE] = {
  538. {0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  539. {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  540. {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 11, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  541. };
  542. u1Byte gDeltaSwingTableIdx_TC_2GB_N_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11};
  543. u1Byte gDeltaSwingTableIdx_TC_2GB_P_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7};
  544. u1Byte gDeltaSwingTableIdx_TC_2GA_N_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 10, 10, 10, 10};
  545. u1Byte gDeltaSwingTableIdx_TC_2GA_P_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7};
  546. u1Byte gDeltaSwingTableIdx_TC_2GCCKB_N_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11};
  547. u1Byte gDeltaSwingTableIdx_TC_2GCCKB_P_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7};
  548. u1Byte gDeltaSwingTableIdx_TC_2GCCKA_N_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 10, 10, 10, 10};
  549. u1Byte gDeltaSwingTableIdx_TC_2GCCKA_P_USB_8821A[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7};
  550. void
  551. ODM_ReadAndConfig_TC_8821A_TxPowerTrack_USB(
  552. IN PDM_ODM_T pDM_Odm
  553. )
  554. {
  555. PODM_RF_CAL_T pRFCalibrateInfo = &(pDM_Odm->RFCalibrateInfo);
  556. ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ReadAndConfig_MP_TC_8821A\n"));
  557. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GA_P, gDeltaSwingTableIdx_TC_2GA_P_USB_8821A, DELTA_SWINGIDX_SIZE);
  558. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GA_N, gDeltaSwingTableIdx_TC_2GA_N_USB_8821A, DELTA_SWINGIDX_SIZE);
  559. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GB_P, gDeltaSwingTableIdx_TC_2GB_P_USB_8821A, DELTA_SWINGIDX_SIZE);
  560. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GB_N, gDeltaSwingTableIdx_TC_2GB_N_USB_8821A, DELTA_SWINGIDX_SIZE);
  561. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_P, gDeltaSwingTableIdx_TC_2GCCKA_P_USB_8821A, DELTA_SWINGIDX_SIZE);
  562. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKA_N, gDeltaSwingTableIdx_TC_2GCCKA_N_USB_8821A, DELTA_SWINGIDX_SIZE);
  563. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_P, gDeltaSwingTableIdx_TC_2GCCKB_P_USB_8821A, DELTA_SWINGIDX_SIZE);
  564. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_2GCCKB_N, gDeltaSwingTableIdx_TC_2GCCKB_N_USB_8821A, DELTA_SWINGIDX_SIZE);
  565. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GA_P, gDeltaSwingTableIdx_TC_5GA_P_USB_8821A, DELTA_SWINGIDX_SIZE*3);
  566. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GA_N, gDeltaSwingTableIdx_TC_5GA_N_USB_8821A, DELTA_SWINGIDX_SIZE*3);
  567. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GB_P, gDeltaSwingTableIdx_TC_5GB_P_USB_8821A, DELTA_SWINGIDX_SIZE*3);
  568. ODM_MoveMemory(pDM_Odm, pRFCalibrateInfo->DeltaSwingTableIdx_5GB_N, gDeltaSwingTableIdx_TC_5GB_N_USB_8821A, DELTA_SWINGIDX_SIZE*3);
  569. }
  570. /******************************************************************************
  571. * TXPWR_LMT.TXT
  572. ******************************************************************************/
  573. pu1Byte Array_TC_8821A_TXPWR_LMT[] = {
  574. "FCC", "2.4G", "20M", "CCK", "1T", "01", "34",
  575. "ETSI", "2.4G", "20M", "CCK", "1T", "01", "32",
  576. "MKK", "2.4G", "20M", "CCK", "1T", "01", "32",
  577. "FCC", "2.4G", "20M", "CCK", "1T", "02", "34",
  578. "ETSI", "2.4G", "20M", "CCK", "1T", "02", "32",
  579. "MKK", "2.4G", "20M", "CCK", "1T", "02", "32",
  580. "FCC", "2.4G", "20M", "CCK", "1T", "03", "34",
  581. "ETSI", "2.4G", "20M", "CCK", "1T", "03", "32",
  582. "MKK", "2.4G", "20M", "CCK", "1T", "03", "32",
  583. "FCC", "2.4G", "20M", "CCK", "1T", "04", "34",
  584. "ETSI", "2.4G", "20M", "CCK", "1T", "04", "32",
  585. "MKK", "2.4G", "20M", "CCK", "1T", "04", "32",
  586. "FCC", "2.4G", "20M", "CCK", "1T", "05", "34",
  587. "ETSI", "2.4G", "20M", "CCK", "1T", "05", "32",
  588. "MKK", "2.4G", "20M", "CCK", "1T", "05", "32",
  589. "FCC", "2.4G", "20M", "CCK", "1T", "06", "34",
  590. "ETSI", "2.4G", "20M", "CCK", "1T", "06", "32",
  591. "MKK", "2.4G", "20M", "CCK", "1T", "06", "32",
  592. "FCC", "2.4G", "20M", "CCK", "1T", "07", "34",
  593. "ETSI", "2.4G", "20M", "CCK", "1T", "07", "32",
  594. "MKK", "2.4G", "20M", "CCK", "1T", "07", "32",
  595. "FCC", "2.4G", "20M", "CCK", "1T", "08", "34",
  596. "ETSI", "2.4G", "20M", "CCK", "1T", "08", "32",
  597. "MKK", "2.4G", "20M", "CCK", "1T", "08", "32",
  598. "FCC", "2.4G", "20M", "CCK", "1T", "09", "34",
  599. "ETSI", "2.4G", "20M", "CCK", "1T", "09", "32",
  600. "MKK", "2.4G", "20M", "CCK", "1T", "09", "32",
  601. "FCC", "2.4G", "20M", "CCK", "1T", "10", "34",
  602. "ETSI", "2.4G", "20M", "CCK", "1T", "10", "32",
  603. "MKK", "2.4G", "20M", "CCK", "1T", "10", "32",
  604. "FCC", "2.4G", "20M", "CCK", "1T", "11", "34",
  605. "ETSI", "2.4G", "20M", "CCK", "1T", "11", "32",
  606. "MKK", "2.4G", "20M", "CCK", "1T", "11", "32",
  607. "FCC", "2.4G", "20M", "CCK", "1T", "12", "63",
  608. "ETSI", "2.4G", "20M", "CCK", "1T", "12", "32",
  609. "MKK", "2.4G", "20M", "CCK", "1T", "12", "32",
  610. "FCC", "2.4G", "20M", "CCK", "1T", "13", "63",
  611. "ETSI", "2.4G", "20M", "CCK", "1T", "13", "32",
  612. "MKK", "2.4G", "20M", "CCK", "1T", "13", "32",
  613. "FCC", "2.4G", "20M", "CCK", "1T", "14", "63",
  614. "ETSI", "2.4G", "20M", "CCK", "1T", "14", "63",
  615. "MKK", "2.4G", "20M", "CCK", "1T", "14", "32",
  616. "FCC", "2.4G", "20M", "OFDM", "1T", "01", "32",
  617. "ETSI", "2.4G", "20M", "OFDM", "1T", "01", "32",
  618. "MKK", "2.4G", "20M", "OFDM", "1T", "01", "32",
  619. "FCC", "2.4G", "20M", "OFDM", "1T", "02", "34",
  620. "ETSI", "2.4G", "20M", "OFDM", "1T", "02", "32",
  621. "MKK", "2.4G", "20M", "OFDM", "1T", "02", "32",
  622. "FCC", "2.4G", "20M", "OFDM", "1T", "03", "34",
  623. "ETSI", "2.4G", "20M", "OFDM", "1T", "03", "32",
  624. "MKK", "2.4G", "20M", "OFDM", "1T", "03", "32",
  625. "FCC", "2.4G", "20M", "OFDM", "1T", "04", "34",
  626. "ETSI", "2.4G", "20M", "OFDM", "1T", "04", "32",
  627. "MKK", "2.4G", "20M", "OFDM", "1T", "04", "32",
  628. "FCC", "2.4G", "20M", "OFDM", "1T", "05", "34",
  629. "ETSI", "2.4G", "20M", "OFDM", "1T", "05", "32",
  630. "MKK", "2.4G", "20M", "OFDM", "1T", "05", "32",
  631. "FCC", "2.4G", "20M", "OFDM", "1T", "06", "34",
  632. "ETSI", "2.4G", "20M", "OFDM", "1T", "06", "32",
  633. "MKK", "2.4G", "20M", "OFDM", "1T", "06", "32",
  634. "FCC", "2.4G", "20M", "OFDM", "1T", "07", "34",
  635. "ETSI", "2.4G", "20M", "OFDM", "1T", "07", "32",
  636. "MKK", "2.4G", "20M", "OFDM", "1T", "07", "32",
  637. "FCC", "2.4G", "20M", "OFDM", "1T", "08", "34",
  638. "ETSI", "2.4G", "20M", "OFDM", "1T", "08", "32",
  639. "MKK", "2.4G", "20M", "OFDM", "1T", "08", "32",
  640. "FCC", "2.4G", "20M", "OFDM", "1T", "09", "34",
  641. "ETSI", "2.4G", "20M", "OFDM", "1T", "09", "32",
  642. "MKK", "2.4G", "20M", "OFDM", "1T", "09", "32",
  643. "FCC", "2.4G", "20M", "OFDM", "1T", "10", "34",
  644. "ETSI", "2.4G", "20M", "OFDM", "1T", "10", "32",
  645. "MKK", "2.4G", "20M", "OFDM", "1T", "10", "32",
  646. "FCC", "2.4G", "20M", "OFDM", "1T", "11", "32",
  647. "ETSI", "2.4G", "20M", "OFDM", "1T", "11", "32",
  648. "MKK", "2.4G", "20M", "OFDM", "1T", "11", "32",
  649. "FCC", "2.4G", "20M", "OFDM", "1T", "12", "63",
  650. "ETSI", "2.4G", "20M", "OFDM", "1T", "12", "32",
  651. "MKK", "2.4G", "20M", "OFDM", "1T", "12", "32",
  652. "FCC", "2.4G", "20M", "OFDM", "1T", "13", "63",
  653. "ETSI", "2.4G", "20M", "OFDM", "1T", "13", "32",
  654. "MKK", "2.4G", "20M", "OFDM", "1T", "13", "32",
  655. "FCC", "2.4G", "20M", "OFDM", "1T", "14", "63",
  656. "ETSI", "2.4G", "20M", "OFDM", "1T", "14", "63",
  657. "MKK", "2.4G", "20M", "OFDM", "1T", "14", "63",
  658. "FCC", "2.4G", "20M", "HT", "1T", "01", "32",
  659. "ETSI", "2.4G", "20M", "HT", "1T", "01", "32",
  660. "MKK", "2.4G", "20M", "HT", "1T", "01", "32",
  661. "FCC", "2.4G", "20M", "HT", "1T", "02", "34",
  662. "ETSI", "2.4G", "20M", "HT", "1T", "02", "32",
  663. "MKK", "2.4G", "20M", "HT", "1T", "02", "32",
  664. "FCC", "2.4G", "20M", "HT", "1T", "03", "34",
  665. "ETSI", "2.4G", "20M", "HT", "1T", "03", "32",
  666. "MKK", "2.4G", "20M", "HT", "1T", "03", "32",
  667. "FCC", "2.4G", "20M", "HT", "1T", "04", "34",
  668. "ETSI", "2.4G", "20M", "HT", "1T", "04", "32",
  669. "MKK", "2.4G", "20M", "HT", "1T", "04", "32",
  670. "FCC", "2.4G", "20M", "HT", "1T", "05", "34",
  671. "ETSI", "2.4G", "20M", "HT", "1T", "05", "32",
  672. "MKK", "2.4G", "20M", "HT", "1T", "05", "32",
  673. "FCC", "2.4G", "20M", "HT", "1T", "06", "34",
  674. "ETSI", "2.4G", "20M", "HT", "1T", "06", "32",
  675. "MKK", "2.4G", "20M", "HT", "1T", "06", "32",
  676. "FCC", "2.4G", "20M", "HT", "1T", "07", "34",
  677. "ETSI", "2.4G", "20M", "HT", "1T", "07", "32",
  678. "MKK", "2.4G", "20M", "HT", "1T", "07", "32",
  679. "FCC", "2.4G", "20M", "HT", "1T", "08", "34",
  680. "ETSI", "2.4G", "20M", "HT", "1T", "08", "32",
  681. "MKK", "2.4G", "20M", "HT", "1T", "08", "32",
  682. "FCC", "2.4G", "20M", "HT", "1T", "09", "34",
  683. "ETSI", "2.4G", "20M", "HT", "1T", "09", "32",
  684. "MKK", "2.4G", "20M", "HT", "1T", "09", "32",
  685. "FCC", "2.4G", "20M", "HT", "1T", "10", "34",
  686. "ETSI", "2.4G", "20M", "HT", "1T", "10", "32",
  687. "MKK", "2.4G", "20M", "HT", "1T", "10", "32",
  688. "FCC", "2.4G", "20M", "HT", "1T", "11", "32",
  689. "ETSI", "2.4G", "20M", "HT", "1T", "11", "32",
  690. "MKK", "2.4G", "20M", "HT", "1T", "11", "32",
  691. "FCC", "2.4G", "20M", "HT", "1T", "12", "63",
  692. "ETSI", "2.4G", "20M", "HT", "1T", "12", "32",
  693. "MKK", "2.4G", "20M", "HT", "1T", "12", "32",
  694. "FCC", "2.4G", "20M", "HT", "1T", "13", "63",
  695. "ETSI", "2.4G", "20M", "HT", "1T", "13", "32",
  696. "MKK", "2.4G", "20M", "HT", "1T", "13", "32",
  697. "FCC", "2.4G", "20M", "HT", "1T", "14", "63",
  698. "ETSI", "2.4G", "20M", "HT", "1T", "14", "63",
  699. "MKK", "2.4G", "20M", "HT", "1T", "14", "63",
  700. "FCC", "2.4G", "20M", "HT", "2T", "01", "30",
  701. "ETSI", "2.4G", "20M", "HT", "2T", "01", "32",
  702. "MKK", "2.4G", "20M", "HT", "2T", "01", "32",
  703. "FCC", "2.4G", "20M", "HT", "2T", "02", "32",
  704. "ETSI", "2.4G", "20M", "HT", "2T", "02", "32",
  705. "MKK", "2.4G", "20M", "HT", "2T", "02", "32",
  706. "FCC", "2.4G", "20M", "HT", "2T", "03", "32",
  707. "ETSI", "2.4G", "20M", "HT", "2T", "03", "32",
  708. "MKK", "2.4G", "20M", "HT", "2T", "03", "32",
  709. "FCC", "2.4G", "20M", "HT", "2T", "04", "32",
  710. "ETSI", "2.4G", "20M", "HT", "2T", "04", "32",
  711. "MKK", "2.4G", "20M", "HT", "2T", "04", "32",
  712. "FCC", "2.4G", "20M", "HT", "2T", "05", "32",
  713. "ETSI", "2.4G", "20M", "HT", "2T", "05", "32",
  714. "MKK", "2.4G", "20M", "HT", "2T", "05", "32",
  715. "FCC", "2.4G", "20M", "HT", "2T", "06", "32",
  716. "ETSI", "2.4G", "20M", "HT", "2T", "06", "32",
  717. "MKK", "2.4G", "20M", "HT", "2T", "06", "32",
  718. "FCC", "2.4G", "20M", "HT", "2T", "07", "32",
  719. "ETSI", "2.4G", "20M", "HT", "2T", "07", "32",
  720. "MKK", "2.4G", "20M", "HT", "2T", "07", "32",
  721. "FCC", "2.4G", "20M", "HT", "2T", "08", "32",
  722. "ETSI", "2.4G", "20M", "HT", "2T", "08", "32",
  723. "MKK", "2.4G", "20M", "HT", "2T", "08", "32",
  724. "FCC", "2.4G", "20M", "HT", "2T", "09", "32",
  725. "ETSI", "2.4G", "20M", "HT", "2T", "09", "32",
  726. "MKK", "2.4G", "20M", "HT", "2T", "09", "32",
  727. "FCC", "2.4G", "20M", "HT", "2T", "10", "32",
  728. "ETSI", "2.4G", "20M", "HT", "2T", "10", "32",
  729. "MKK", "2.4G", "20M", "HT", "2T", "10", "32",
  730. "FCC", "2.4G", "20M", "HT", "2T", "11", "30",
  731. "ETSI", "2.4G", "20M", "HT", "2T", "11", "32",
  732. "MKK", "2.4G", "20M", "HT", "2T", "11", "32",
  733. "FCC", "2.4G", "20M", "HT", "2T", "12", "63",
  734. "ETSI", "2.4G", "20M", "HT", "2T", "12", "32",
  735. "MKK", "2.4G", "20M", "HT", "2T", "12", "32",
  736. "FCC", "2.4G", "20M", "HT", "2T", "13", "63",
  737. "ETSI", "2.4G", "20M", "HT", "2T", "13", "32",
  738. "MKK", "2.4G", "20M", "HT", "2T", "13", "32",
  739. "FCC", "2.4G", "20M", "HT", "2T", "14", "63",
  740. "ETSI", "2.4G", "20M", "HT", "2T", "14", "63",
  741. "MKK", "2.4G", "20M", "HT", "2T", "14", "63",
  742. "FCC", "2.4G", "40M", "HT", "1T", "01", "63",
  743. "ETSI", "2.4G", "40M", "HT", "1T", "01", "63",
  744. "MKK", "2.4G", "40M", "HT", "1T", "01", "63",
  745. "FCC", "2.4G", "40M", "HT", "1T", "02", "63",
  746. "ETSI", "2.4G", "40M", "HT", "1T", "02", "63",
  747. "MKK", "2.4G", "40M", "HT", "1T", "02", "63",
  748. "FCC", "2.4G", "40M", "HT", "1T", "03", "32",
  749. "ETSI", "2.4G", "40M", "HT", "1T", "03", "32",
  750. "MKK", "2.4G", "40M", "HT", "1T", "03", "32",
  751. "FCC", "2.4G", "40M", "HT", "1T", "04", "34",
  752. "ETSI", "2.4G", "40M", "HT", "1T", "04", "32",
  753. "MKK", "2.4G", "40M", "HT", "1T", "04", "32",
  754. "FCC", "2.4G", "40M", "HT", "1T", "05", "34",
  755. "ETSI", "2.4G", "40M", "HT", "1T", "05", "32",
  756. "MKK", "2.4G", "40M", "HT", "1T", "05", "32",
  757. "FCC", "2.4G", "40M", "HT", "1T", "06", "34",
  758. "ETSI", "2.4G", "40M", "HT", "1T", "06", "32",
  759. "MKK", "2.4G", "40M", "HT", "1T", "06", "32",
  760. "FCC", "2.4G", "40M", "HT", "1T", "07", "34",
  761. "ETSI", "2.4G", "40M", "HT", "1T", "07", "32",
  762. "MKK", "2.4G", "40M", "HT", "1T", "07", "32",
  763. "FCC", "2.4G", "40M", "HT", "1T", "08", "34",
  764. "ETSI", "2.4G", "40M", "HT", "1T", "08", "32",
  765. "MKK", "2.4G", "40M", "HT", "1T", "08", "32",
  766. "FCC", "2.4G", "40M", "HT", "1T", "09", "34",
  767. "ETSI", "2.4G", "40M", "HT", "1T", "09", "32",
  768. "MKK", "2.4G", "40M", "HT", "1T", "09", "32",
  769. "FCC", "2.4G", "40M", "HT", "1T", "10", "34",
  770. "ETSI", "2.4G", "40M", "HT", "1T", "10", "32",
  771. "MKK", "2.4G", "40M", "HT", "1T", "10", "32",
  772. "FCC", "2.4G", "40M", "HT", "1T", "11", "32",
  773. "ETSI", "2.4G", "40M", "HT", "1T", "11", "32",
  774. "MKK", "2.4G", "40M", "HT", "1T", "11", "32",
  775. "FCC", "2.4G", "40M", "HT", "1T", "12", "63",
  776. "ETSI", "2.4G", "40M", "HT", "1T", "12", "32",
  777. "MKK", "2.4G", "40M", "HT", "1T", "12", "32",
  778. "FCC", "2.4G", "40M", "HT", "1T", "13", "63",
  779. "ETSI", "2.4G", "40M", "HT", "1T", "13", "32",
  780. "MKK", "2.4G", "40M", "HT", "1T", "13", "32",
  781. "FCC", "2.4G", "40M", "HT", "1T", "14", "63",
  782. "ETSI", "2.4G", "40M", "HT", "1T", "14", "63",
  783. "MKK", "2.4G", "40M", "HT", "1T", "14", "63",
  784. "FCC", "2.4G", "40M", "HT", "2T", "01", "63",
  785. "ETSI", "2.4G", "40M", "HT", "2T", "01", "63",
  786. "MKK", "2.4G", "40M", "HT", "2T", "01", "63",
  787. "FCC", "2.4G", "40M", "HT", "2T", "02", "63",
  788. "ETSI", "2.4G", "40M", "HT", "2T", "02", "63",
  789. "MKK", "2.4G", "40M", "HT", "2T", "02", "63",
  790. "FCC", "2.4G", "40M", "HT", "2T", "03", "30",
  791. "ETSI", "2.4G", "40M", "HT", "2T", "03", "30",
  792. "MKK", "2.4G", "40M", "HT", "2T", "03", "30",
  793. "FCC", "2.4G", "40M", "HT", "2T", "04", "32",
  794. "ETSI", "2.4G", "40M", "HT", "2T", "04", "30",
  795. "MKK", "2.4G", "40M", "HT", "2T", "04", "30",
  796. "FCC", "2.4G", "40M", "HT", "2T", "05", "32",
  797. "ETSI", "2.4G", "40M", "HT", "2T", "05", "30",
  798. "MKK", "2.4G", "40M", "HT", "2T", "05", "30",
  799. "FCC", "2.4G", "40M", "HT", "2T", "06", "32",
  800. "ETSI", "2.4G", "40M", "HT", "2T", "06", "30",
  801. "MKK", "2.4G", "40M", "HT", "2T", "06", "30",
  802. "FCC", "2.4G", "40M", "HT", "2T", "07", "32",
  803. "ETSI", "2.4G", "40M", "HT", "2T", "07", "30",
  804. "MKK", "2.4G", "40M", "HT", "2T", "07", "30",
  805. "FCC", "2.4G", "40M", "HT", "2T", "08", "32",
  806. "ETSI", "2.4G", "40M", "HT", "2T", "08", "30",
  807. "MKK", "2.4G", "40M", "HT", "2T", "08", "30",
  808. "FCC", "2.4G", "40M", "HT", "2T", "09", "32",
  809. "ETSI", "2.4G", "40M", "HT", "2T", "09", "30",
  810. "MKK", "2.4G", "40M", "HT", "2T", "09", "30",
  811. "FCC", "2.4G", "40M", "HT", "2T", "10", "32",
  812. "ETSI", "2.4G", "40M", "HT", "2T", "10", "30",
  813. "MKK", "2.4G", "40M", "HT", "2T", "10", "30",
  814. "FCC", "2.4G", "40M", "HT", "2T", "11", "30",
  815. "ETSI", "2.4G", "40M", "HT", "2T", "11", "30",
  816. "MKK", "2.4G", "40M", "HT", "2T", "11", "30",
  817. "FCC", "2.4G", "40M", "HT", "2T", "12", "63",
  818. "ETSI", "2.4G", "40M", "HT", "2T", "12", "32",
  819. "MKK", "2.4G", "40M", "HT", "2T", "12", "32",
  820. "FCC", "2.4G", "40M", "HT", "2T", "13", "63",
  821. "ETSI", "2.4G", "40M", "HT", "2T", "13", "32",
  822. "MKK", "2.4G", "40M", "HT", "2T", "13", "32",
  823. "FCC", "2.4G", "40M", "HT", "2T", "14", "63",
  824. "ETSI", "2.4G", "40M", "HT", "2T", "14", "63",
  825. "MKK", "2.4G", "40M", "HT", "2T", "14", "63",
  826. "FCC", "5G", "20M", "OFDM", "1T", "36", "30",
  827. "ETSI", "5G", "20M", "OFDM", "1T", "36", "32",
  828. "MKK", "5G", "20M", "OFDM", "1T", "36", "32",
  829. "FCC", "5G", "20M", "OFDM", "1T", "40", "30",
  830. "ETSI", "5G", "20M", "OFDM", "1T", "40", "32",
  831. "MKK", "5G", "20M", "OFDM", "1T", "40", "32",
  832. "FCC", "5G", "20M", "OFDM", "1T", "44", "30",
  833. "ETSI", "5G", "20M", "OFDM", "1T", "44", "32",
  834. "MKK", "5G", "20M", "OFDM", "1T", "44", "32",
  835. "FCC", "5G", "20M", "OFDM", "1T", "48", "30",
  836. "ETSI", "5G", "20M", "OFDM", "1T", "48", "32",
  837. "MKK", "5G", "20M", "OFDM", "1T", "48", "32",
  838. "FCC", "5G", "20M", "OFDM", "1T", "52", "34",
  839. "ETSI", "5G", "20M", "OFDM", "1T", "52", "32",
  840. "MKK", "5G", "20M", "OFDM", "1T", "52", "32",
  841. "FCC", "5G", "20M", "OFDM", "1T", "56", "34",
  842. "ETSI", "5G", "20M", "OFDM", "1T", "56", "32",
  843. "MKK", "5G", "20M", "OFDM", "1T", "56", "32",
  844. "FCC", "5G", "20M", "OFDM", "1T", "60", "32",
  845. "ETSI", "5G", "20M", "OFDM", "1T", "60", "32",
  846. "MKK", "5G", "20M", "OFDM", "1T", "60", "32",
  847. "FCC", "5G", "20M", "OFDM", "1T", "64", "28",
  848. "ETSI", "5G", "20M", "OFDM", "1T", "64", "32",
  849. "MKK", "5G", "20M", "OFDM", "1T", "64", "32",
  850. "FCC", "5G", "20M", "OFDM", "1T", "100", "30",
  851. "ETSI", "5G", "20M", "OFDM", "1T", "100", "32",
  852. "MKK", "5G", "20M", "OFDM", "1T", "100", "32",
  853. "FCC", "5G", "20M", "OFDM", "1T", "114", "30",
  854. "ETSI", "5G", "20M", "OFDM", "1T", "114", "32",
  855. "MKK", "5G", "20M", "OFDM", "1T", "114", "32",
  856. "FCC", "5G", "20M", "OFDM", "1T", "108", "32",
  857. "ETSI", "5G", "20M", "OFDM", "1T", "108", "32",
  858. "MKK", "5G", "20M", "OFDM", "1T", "108", "32",
  859. "FCC", "5G", "20M", "OFDM", "1T", "112", "34",
  860. "ETSI", "5G", "20M", "OFDM", "1T", "112", "32",
  861. "MKK", "5G", "20M", "OFDM", "1T", "112", "32",
  862. "FCC", "5G", "20M", "OFDM", "1T", "116", "34",
  863. "ETSI", "5G", "20M", "OFDM", "1T", "116", "32",
  864. "MKK", "5G", "20M", "OFDM", "1T", "116", "32",
  865. "FCC", "5G", "20M", "OFDM", "1T", "120", "34",
  866. "ETSI", "5G", "20M", "OFDM", "1T", "120", "32",
  867. "MKK", "5G", "20M", "OFDM", "1T", "120", "32",
  868. "FCC", "5G", "20M", "OFDM", "1T", "124", "34",
  869. "ETSI", "5G", "20M", "OFDM", "1T", "124", "32",
  870. "MKK", "5G", "20M", "OFDM", "1T", "124", "32",
  871. "FCC", "5G", "20M", "OFDM", "1T", "128", "32",
  872. "ETSI", "5G", "20M", "OFDM", "1T", "128", "32",
  873. "MKK", "5G", "20M", "OFDM", "1T", "128", "32",
  874. "FCC", "5G", "20M", "OFDM", "1T", "132", "30",
  875. "ETSI", "5G", "20M", "OFDM", "1T", "132", "32",
  876. "MKK", "5G", "20M", "OFDM", "1T", "132", "32",
  877. "FCC", "5G", "20M", "OFDM", "1T", "136", "30",
  878. "ETSI", "5G", "20M", "OFDM", "1T", "136", "32",
  879. "MKK", "5G", "20M", "OFDM", "1T", "136", "32",
  880. "FCC", "5G", "20M", "OFDM", "1T", "140", "28",
  881. "ETSI", "5G", "20M", "OFDM", "1T", "140", "32",
  882. "MKK", "5G", "20M", "OFDM", "1T", "140", "32",
  883. "FCC", "5G", "20M", "OFDM", "1T", "149", "34",
  884. "ETSI", "5G", "20M", "OFDM", "1T", "149", "32",
  885. "MKK", "5G", "20M", "OFDM", "1T", "149", "63",
  886. "FCC", "5G", "20M", "OFDM", "1T", "153", "34",
  887. "ETSI", "5G", "20M", "OFDM", "1T", "153", "32",
  888. "MKK", "5G", "20M", "OFDM", "1T", "153", "63",
  889. "FCC", "5G", "20M", "OFDM", "1T", "157", "34",
  890. "ETSI", "5G", "20M", "OFDM", "1T", "157", "32",
  891. "MKK", "5G", "20M", "OFDM", "1T", "157", "63",
  892. "FCC", "5G", "20M", "OFDM", "1T", "161", "34",
  893. "ETSI", "5G", "20M", "OFDM", "1T", "161", "32",
  894. "MKK", "5G", "20M", "OFDM", "1T", "161", "63",
  895. "FCC", "5G", "20M", "OFDM", "1T", "165", "34",
  896. "ETSI", "5G", "20M", "OFDM", "1T", "165", "32",
  897. "MKK", "5G", "20M", "OFDM", "1T", "165", "63",
  898. "FCC", "5G", "20M", "HT", "1T", "36", "30",
  899. "ETSI", "5G", "20M", "HT", "1T", "36", "32",
  900. "MKK", "5G", "20M", "HT", "1T", "36", "32",
  901. "FCC", "5G", "20M", "HT", "1T", "40", "30",
  902. "ETSI", "5G", "20M", "HT", "1T", "40", "32",
  903. "MKK", "5G", "20M", "HT", "1T", "40", "32",
  904. "FCC", "5G", "20M", "HT", "1T", "44", "30",
  905. "ETSI", "5G", "20M", "HT", "1T", "44", "32",
  906. "MKK", "5G", "20M", "HT", "1T", "44", "32",
  907. "FCC", "5G", "20M", "HT", "1T", "48", "30",
  908. "ETSI", "5G", "20M", "HT", "1T", "48", "32",
  909. "MKK", "5G", "20M", "HT", "1T", "48", "32",
  910. "FCC", "5G", "20M", "HT", "1T", "52", "34",
  911. "ETSI", "5G", "20M", "HT", "1T", "52", "32",
  912. "MKK", "5G", "20M", "HT", "1T", "52", "32",
  913. "FCC", "5G", "20M", "HT", "1T", "56", "34",
  914. "ETSI", "5G", "20M", "HT", "1T", "56", "32",
  915. "MKK", "5G", "20M", "HT", "1T", "56", "32",
  916. "FCC", "5G", "20M", "HT", "1T", "60", "32",
  917. "ETSI", "5G", "20M", "HT", "1T", "60", "32",
  918. "MKK", "5G", "20M", "HT", "1T", "60", "32",
  919. "FCC", "5G", "20M", "HT", "1T", "64", "28",
  920. "ETSI", "5G", "20M", "HT", "1T", "64", "32",
  921. "MKK", "5G", "20M", "HT", "1T", "64", "32",
  922. "FCC", "5G", "20M", "HT", "1T", "100", "30",
  923. "ETSI", "5G", "20M", "HT", "1T", "100", "32",
  924. "MKK", "5G", "20M", "HT", "1T", "100", "32",
  925. "FCC", "5G", "20M", "HT", "1T", "114", "30",
  926. "ETSI", "5G", "20M", "HT", "1T", "114", "32",
  927. "MKK", "5G", "20M", "HT", "1T", "114", "32",
  928. "FCC", "5G", "20M", "HT", "1T", "108", "32",
  929. "ETSI", "5G", "20M", "HT", "1T", "108", "32",
  930. "MKK", "5G", "20M", "HT", "1T", "108", "32",
  931. "FCC", "5G", "20M", "HT", "1T", "112", "34",
  932. "ETSI", "5G", "20M", "HT", "1T", "112", "32",
  933. "MKK", "5G", "20M", "HT", "1T", "112", "32",
  934. "FCC", "5G", "20M", "HT", "1T", "116", "34",
  935. "ETSI", "5G", "20M", "HT", "1T", "116", "32",
  936. "MKK", "5G", "20M", "HT", "1T", "116", "32",
  937. "FCC", "5G", "20M", "HT", "1T", "120", "34",
  938. "ETSI", "5G", "20M", "HT", "1T", "120", "32",
  939. "MKK", "5G", "20M", "HT", "1T", "120", "32",
  940. "FCC", "5G", "20M", "HT", "1T", "124", "34",
  941. "ETSI", "5G", "20M", "HT", "1T", "124", "32",
  942. "MKK", "5G", "20M", "HT", "1T", "124", "32",
  943. "FCC", "5G", "20M", "HT", "1T", "128", "32",
  944. "ETSI", "5G", "20M", "HT", "1T", "128", "32",
  945. "MKK", "5G", "20M", "HT", "1T", "128", "32",
  946. "FCC", "5G", "20M", "HT", "1T", "132", "30",
  947. "ETSI", "5G", "20M", "HT", "1T", "132", "32",
  948. "MKK", "5G", "20M", "HT", "1T", "132", "32",
  949. "FCC", "5G", "20M", "HT", "1T", "136", "30",
  950. "ETSI", "5G", "20M", "HT", "1T", "136", "32",
  951. "MKK", "5G", "20M", "HT", "1T", "136", "32",
  952. "FCC", "5G", "20M", "HT", "1T", "140", "28",
  953. "ETSI", "5G", "20M", "HT", "1T", "140", "32",
  954. "MKK", "5G", "20M", "HT", "1T", "140", "32",
  955. "FCC", "5G", "20M", "HT", "1T", "149", "34",
  956. "ETSI", "5G", "20M", "HT", "1T", "149", "32",
  957. "MKK", "5G", "20M", "HT", "1T", "149", "63",
  958. "FCC", "5G", "20M", "HT", "1T", "153", "34",
  959. "ETSI", "5G", "20M", "HT", "1T", "153", "32",
  960. "MKK", "5G", "20M", "HT", "1T", "153", "63",
  961. "FCC", "5G", "20M", "HT", "1T", "157", "34",
  962. "ETSI", "5G", "20M", "HT", "1T", "157", "32",
  963. "MKK", "5G", "20M", "HT", "1T", "157", "63",
  964. "FCC", "5G", "20M", "HT", "1T", "161", "34",
  965. "ETSI", "5G", "20M", "HT", "1T", "161", "32",
  966. "MKK", "5G", "20M", "HT", "1T", "161", "63",
  967. "FCC", "5G", "20M", "HT", "1T", "165", "34",
  968. "ETSI", "5G", "20M", "HT", "1T", "165", "32",
  969. "MKK", "5G", "20M", "HT", "1T", "165", "63",
  970. "FCC", "5G", "20M", "HT", "2T", "36", "28",
  971. "ETSI", "5G", "20M", "HT", "2T", "36", "30",
  972. "MKK", "5G", "20M", "HT", "2T", "36", "30",
  973. "FCC", "5G", "20M", "HT", "2T", "40", "28",
  974. "ETSI", "5G", "20M", "HT", "2T", "40", "30",
  975. "MKK", "5G", "20M", "HT", "2T", "40", "30",
  976. "FCC", "5G", "20M", "HT", "2T", "44", "28",
  977. "ETSI", "5G", "20M", "HT", "2T", "44", "30",
  978. "MKK", "5G", "20M", "HT", "2T", "44", "30",
  979. "FCC", "5G", "20M", "HT", "2T", "48", "28",
  980. "ETSI", "5G", "20M", "HT", "2T", "48", "30",
  981. "MKK", "5G", "20M", "HT", "2T", "48", "30",
  982. "FCC", "5G", "20M", "HT", "2T", "52", "34",
  983. "ETSI", "5G", "20M", "HT", "2T", "52", "30",
  984. "MKK", "5G", "20M", "HT", "2T", "52", "30",
  985. "FCC", "5G", "20M", "HT", "2T", "56", "32",
  986. "ETSI", "5G", "20M", "HT", "2T", "56", "30",
  987. "MKK", "5G", "20M", "HT", "2T", "56", "30",
  988. "FCC", "5G", "20M", "HT", "2T", "60", "30",
  989. "ETSI", "5G", "20M", "HT", "2T", "60", "30",
  990. "MKK", "5G", "20M", "HT", "2T", "60", "30",
  991. "FCC", "5G", "20M", "HT", "2T", "64", "26",
  992. "ETSI", "5G", "20M", "HT", "2T", "64", "30",
  993. "MKK", "5G", "20M", "HT", "2T", "64", "30",
  994. "FCC", "5G", "20M", "HT", "2T", "100", "28",
  995. "ETSI", "5G", "20M", "HT", "2T", "100", "30",
  996. "MKK", "5G", "20M", "HT", "2T", "100", "30",
  997. "FCC", "5G", "20M", "HT", "2T", "114", "28",
  998. "ETSI", "5G", "20M", "HT", "2T", "114", "30",
  999. "MKK", "5G", "20M", "HT", "2T", "114", "30",
  1000. "FCC", "5G", "20M", "HT", "2T", "108", "30",
  1001. "ETSI", "5G", "20M", "HT", "2T", "108", "30",
  1002. "MKK", "5G", "20M", "HT", "2T", "108", "30",
  1003. "FCC", "5G", "20M", "HT", "2T", "112", "32",
  1004. "ETSI", "5G", "20M", "HT", "2T", "112", "30",
  1005. "MKK", "5G", "20M", "HT", "2T", "112", "30",
  1006. "FCC", "5G", "20M", "HT", "2T", "116", "32",
  1007. "ETSI", "5G", "20M", "HT", "2T", "116", "30",
  1008. "MKK", "5G", "20M", "HT", "2T", "116", "30",
  1009. "FCC", "5G", "20M", "HT", "2T", "120", "34",
  1010. "ETSI", "5G", "20M", "HT", "2T", "120", "30",
  1011. "MKK", "5G", "20M", "HT", "2T", "120", "30",
  1012. "FCC", "5G", "20M", "HT", "2T", "124", "32",
  1013. "ETSI", "5G", "20M", "HT", "2T", "124", "30",
  1014. "MKK", "5G", "20M", "HT", "2T", "124", "30",
  1015. "FCC", "5G", "20M", "HT", "2T", "128", "30",
  1016. "ETSI", "5G", "20M", "HT", "2T", "128", "30",
  1017. "MKK", "5G", "20M", "HT", "2T", "128", "30",
  1018. "FCC", "5G", "20M", "HT", "2T", "132", "28",
  1019. "ETSI", "5G", "20M", "HT", "2T", "132", "30",
  1020. "MKK", "5G", "20M", "HT", "2T", "132", "30",
  1021. "FCC", "5G", "20M", "HT", "2T", "136", "28",
  1022. "ETSI", "5G", "20M", "HT", "2T", "136", "30",
  1023. "MKK", "5G", "20M", "HT", "2T", "136", "30",
  1024. "FCC", "5G", "20M", "HT", "2T", "140", "26",
  1025. "ETSI", "5G", "20M", "HT", "2T", "140", "30",
  1026. "MKK", "5G", "20M", "HT", "2T", "140", "30",
  1027. "FCC", "5G", "20M", "HT", "2T", "149", "34",
  1028. "ETSI", "5G", "20M", "HT", "2T", "149", "30",
  1029. "MKK", "5G", "20M", "HT", "2T", "149", "63",
  1030. "FCC", "5G", "20M", "HT", "2T", "153", "34",
  1031. "ETSI", "5G", "20M", "HT", "2T", "153", "30",
  1032. "MKK", "5G", "20M", "HT", "2T", "153", "63",
  1033. "FCC", "5G", "20M", "HT", "2T", "157", "34",
  1034. "ETSI", "5G", "20M", "HT", "2T", "157", "30",
  1035. "MKK", "5G", "20M", "HT", "2T", "157", "63",
  1036. "FCC", "5G", "20M", "HT", "2T", "161", "34",
  1037. "ETSI", "5G", "20M", "HT", "2T", "161", "30",
  1038. "MKK", "5G", "20M", "HT", "2T", "161", "63",
  1039. "FCC", "5G", "20M", "HT", "2T", "165", "34",
  1040. "ETSI", "5G", "20M", "HT", "2T", "165", "30",
  1041. "MKK", "5G", "20M", "HT", "2T", "165", "63",
  1042. "FCC", "5G", "40M", "HT", "1T", "38", "30",
  1043. "ETSI", "5G", "40M", "HT", "1T", "38", "32",
  1044. "MKK", "5G", "40M", "HT", "1T", "38", "32",
  1045. "FCC", "5G", "40M", "HT", "1T", "46", "30",
  1046. "ETSI", "5G", "40M", "HT", "1T", "46", "32",
  1047. "MKK", "5G", "40M", "HT", "1T", "46", "32",
  1048. "FCC", "5G", "40M", "HT", "1T", "54", "32",
  1049. "ETSI", "5G", "40M", "HT", "1T", "54", "32",
  1050. "MKK", "5G", "40M", "HT", "1T", "54", "32",
  1051. "FCC", "5G", "40M", "HT", "1T", "62", "32",
  1052. "ETSI", "5G", "40M", "HT", "1T", "62", "32",
  1053. "MKK", "5G", "40M", "HT", "1T", "62", "32",
  1054. "FCC", "5G", "40M", "HT", "1T", "102", "28",
  1055. "ETSI", "5G", "40M", "HT", "1T", "102", "32",
  1056. "MKK", "5G", "40M", "HT", "1T", "102", "32",
  1057. "FCC", "5G", "40M", "HT", "1T", "110", "32",
  1058. "ETSI", "5G", "40M", "HT", "1T", "110", "32",
  1059. "MKK", "5G", "40M", "HT", "1T", "110", "32",
  1060. "FCC", "5G", "40M", "HT", "1T", "118", "34",
  1061. "ETSI", "5G", "40M", "HT", "1T", "118", "32",
  1062. "MKK", "5G", "40M", "HT", "1T", "118", "32",
  1063. "FCC", "5G", "40M", "HT", "1T", "126", "34",
  1064. "ETSI", "5G", "40M", "HT", "1T", "126", "32",
  1065. "MKK", "5G", "40M", "HT", "1T", "126", "32",
  1066. "FCC", "5G", "40M", "HT", "1T", "134", "32",
  1067. "ETSI", "5G", "40M", "HT", "1T", "134", "32",
  1068. "MKK", "5G", "40M", "HT", "1T", "134", "32",
  1069. "FCC", "5G", "40M", "HT", "1T", "151", "34",
  1070. "ETSI", "5G", "40M", "HT", "1T", "151", "32",
  1071. "MKK", "5G", "40M", "HT", "1T", "151", "63",
  1072. "FCC", "5G", "40M", "HT", "1T", "159", "34",
  1073. "ETSI", "5G", "40M", "HT", "1T", "159", "32",
  1074. "MKK", "5G", "40M", "HT", "1T", "159", "63",
  1075. "FCC", "5G", "40M", "HT", "2T", "38", "28",
  1076. "ETSI", "5G", "40M", "HT", "2T", "38", "30",
  1077. "MKK", "5G", "40M", "HT", "2T", "38", "30",
  1078. "FCC", "5G", "40M", "HT", "2T", "46", "28",
  1079. "ETSI", "5G", "40M", "HT", "2T", "46", "30",
  1080. "MKK", "5G", "40M", "HT", "2T", "46", "30",
  1081. "FCC", "5G", "40M", "HT", "2T", "54", "30",
  1082. "ETSI", "5G", "40M", "HT", "2T", "54", "30",
  1083. "MKK", "5G", "40M", "HT", "2T", "54", "30",
  1084. "FCC", "5G", "40M", "HT", "2T", "62", "30",
  1085. "ETSI", "5G", "40M", "HT", "2T", "62", "30",
  1086. "MKK", "5G", "40M", "HT", "2T", "62", "30",
  1087. "FCC", "5G", "40M", "HT", "2T", "102", "26",
  1088. "ETSI", "5G", "40M", "HT", "2T", "102", "30",
  1089. "MKK", "5G", "40M", "HT", "2T", "102", "30",
  1090. "FCC", "5G", "40M", "HT", "2T", "110", "30",
  1091. "ETSI", "5G", "40M", "HT", "2T", "110", "30",
  1092. "MKK", "5G", "40M", "HT", "2T", "110", "30",
  1093. "FCC", "5G", "40M", "HT", "2T", "118", "34",
  1094. "ETSI", "5G", "40M", "HT", "2T", "118", "30",
  1095. "MKK", "5G", "40M", "HT", "2T", "118", "30",
  1096. "FCC", "5G", "40M", "HT", "2T", "126", "32",
  1097. "ETSI", "5G", "40M", "HT", "2T", "126", "30",
  1098. "MKK", "5G", "40M", "HT", "2T", "126", "30",
  1099. "FCC", "5G", "40M", "HT", "2T", "134", "30",
  1100. "ETSI", "5G", "40M", "HT", "2T", "134", "30",
  1101. "MKK", "5G", "40M", "HT", "2T", "134", "30",
  1102. "FCC", "5G", "40M", "HT", "2T", "151", "34",
  1103. "ETSI", "5G", "40M", "HT", "2T", "151", "30",
  1104. "MKK", "5G", "40M", "HT", "2T", "151", "63",
  1105. "FCC", "5G", "40M", "HT", "2T", "159", "34",
  1106. "ETSI", "5G", "40M", "HT", "2T", "159", "30",
  1107. "MKK", "5G", "40M", "HT", "2T", "159", "63",
  1108. "FCC", "5G", "80M", "VHT", "1T", "42", "30",
  1109. "ETSI", "5G", "80M", "VHT", "1T", "42", "32",
  1110. "MKK", "5G", "80M", "VHT", "1T", "42", "32",
  1111. "FCC", "5G", "80M", "VHT", "1T", "58", "28",
  1112. "ETSI", "5G", "80M", "VHT", "1T", "58", "32",
  1113. "MKK", "5G", "80M", "VHT", "1T", "58", "32",
  1114. "FCC", "5G", "80M", "VHT", "1T", "106", "30",
  1115. "ETSI", "5G", "80M", "VHT", "1T", "106", "32",
  1116. "MKK", "5G", "80M", "VHT", "1T", "106", "32",
  1117. "FCC", "5G", "80M", "VHT", "1T", "122", "34",
  1118. "ETSI", "5G", "80M", "VHT", "1T", "122", "32",
  1119. "MKK", "5G", "80M", "VHT", "1T", "122", "32",
  1120. "FCC", "5G", "80M", "VHT", "1T", "155", "34",
  1121. "ETSI", "5G", "80M", "VHT", "1T", "155", "32",
  1122. "MKK", "5G", "80M", "VHT", "1T", "155", "63",
  1123. "FCC", "5G", "80M", "VHT", "2T", "42", "28",
  1124. "ETSI", "5G", "80M", "VHT", "2T", "42", "30",
  1125. "MKK", "5G", "80M", "VHT", "2T", "42", "30",
  1126. "FCC", "5G", "80M", "VHT", "2T", "58", "26",
  1127. "ETSI", "5G", "80M", "VHT", "2T", "58", "30",
  1128. "MKK", "5G", "80M", "VHT", "2T", "58", "30",
  1129. "FCC", "5G", "80M", "VHT", "2T", "106", "28",
  1130. "ETSI", "5G", "80M", "VHT", "2T", "106", "30",
  1131. "MKK", "5G", "80M", "VHT", "2T", "106", "30",
  1132. "FCC", "5G", "80M", "VHT", "2T", "122", "32",
  1133. "ETSI", "5G", "80M", "VHT", "2T", "122", "30",
  1134. "MKK", "5G", "80M", "VHT", "2T", "122", "30",
  1135. "FCC", "5G", "80M", "VHT", "2T", "155", "34",
  1136. "ETSI", "5G", "80M", "VHT", "2T", "155", "30",
  1137. "MKK", "5G", "80M", "VHT", "2T", "155", "63"
  1138. };
  1139. void
  1140. ODM_ReadAndConfig_TC_8821A_TXPWR_LMT(
  1141. IN PDM_ODM_T pDM_Odm
  1142. )
  1143. {
  1144. u4Byte i = 0;
  1145. u4Byte ArrayLen = sizeof(Array_TC_8821A_TXPWR_LMT)/sizeof(pu1Byte);
  1146. pu1Byte *Array = Array_TC_8821A_TXPWR_LMT;
  1147. ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ReadAndConfig_TC_8821A_TXPWR_LMT\n"));
  1148. for (i = 0; i < ArrayLen; i += 7 )
  1149. {
  1150. pu1Byte regulation = Array[i];
  1151. pu1Byte band = Array[i+1];
  1152. pu1Byte bandwidth = Array[i+2];
  1153. pu1Byte rate = Array[i+3];
  1154. pu1Byte rfPath = Array[i+4];
  1155. pu1Byte chnl = Array[i+5];
  1156. pu1Byte val = Array[i+6];
  1157. odm_ConfigBB_TXPWR_LMT_8821A(pDM_Odm, regulation, band, bandwidth, rate, rfPath, chnl, val);
  1158. }
  1159. }
  1160. #endif // end of HWIMG_SUPPORT