xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rtl8723cs/hal/phydm/rtl8703b/halhwimg8703b_rf.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2017 Realtek Corporation.
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  *****************************************************************************/
15 
16 /*Image2HeaderVersion: 3.5.2*/
17 #include "mp_precomp.h"
18 #include "../phydm_precomp.h"
19 
20 #if (RTL8703B_SUPPORT == 1)
21 static boolean
check_positive(struct dm_struct * dm,const u32 condition1,const u32 condition2,const u32 condition3,const u32 condition4)22 check_positive(
23 	struct dm_struct *dm,
24 	const u32	condition1,
25 	const u32	condition2,
26 	const u32	condition3,
27 	const u32	condition4
28 )
29 {
30 	u8	_board_type = ((dm->board_type & BIT(4)) >> 4) << 0 | /* _GLNA*/
31 			((dm->board_type & BIT(3)) >> 3) << 1 | /* _GPA*/
32 			((dm->board_type & BIT(7)) >> 7) << 2 | /* _ALNA*/
33 			((dm->board_type & BIT(6)) >> 6) << 3 | /* _APA */
34 			((dm->board_type & BIT(2)) >> 2) << 4 | /* _BT*/
35 			((dm->board_type & BIT(1)) >> 1) << 5 | /* _NGFF*/
36 			((dm->board_type & BIT(5)) >> 5) << 6;  /* _TRSWT*/
37 
38 	u32	cond1 = condition1, cond2 = condition2, cond3 = condition3, cond4 = condition4;
39 
40 	u8	cut_version_for_para = (dm->cut_version ==  ODM_CUT_A) ? 15 : dm->cut_version;
41 	u8	pkg_type_for_para = (dm->package_type == 0) ? 15 : dm->package_type;
42 
43 	u32	driver1 = cut_version_for_para << 24 |
44 			(dm->support_interface & 0xF0) << 16 |
45 			dm->support_platform << 16 |
46 			pkg_type_for_para << 12 |
47 			(dm->support_interface & 0x0F) << 8  |
48 			_board_type;
49 
50 	u32	driver2 = (dm->type_glna & 0xFF) <<  0 |
51 			(dm->type_gpa & 0xFF)  <<  8 |
52 			(dm->type_alna & 0xFF) << 16 |
53 			(dm->type_apa & 0xFF)  << 24;
54 
55 	u32	driver3 = 0;
56 
57 	u32	driver4 = (dm->type_glna & 0xFF00) >>  8 |
58 			(dm->type_gpa & 0xFF00) |
59 			(dm->type_alna & 0xFF00) << 8 |
60 			(dm->type_apa & 0xFF00)  << 16;
61 
62 	PHYDM_DBG(dm, ODM_COMP_INIT,
63 		  "===> %s (cond1, cond2, cond3, cond4) = (0x%X 0x%X 0x%X 0x%X)\n",
64 		  __func__, cond1, cond2, cond3, cond4);
65 	PHYDM_DBG(dm, ODM_COMP_INIT,
66 		  "===> %s (driver1, driver2, driver3, driver4) = (0x%X 0x%X 0x%X 0x%X)\n",
67 		  __func__, driver1, driver2, driver3, driver4);
68 
69 	PHYDM_DBG(dm, ODM_COMP_INIT,
70 		  "	(Platform, Interface) = (0x%X, 0x%X)\n",
71 		  dm->support_platform, dm->support_interface);
72 	PHYDM_DBG(dm, ODM_COMP_INIT,
73 		  "	(Board, Package) = (0x%X, 0x%X)\n", dm->board_type,
74 		  dm->package_type);
75 
76 
77 	/*============== value Defined Check ===============*/
78 	/*QFN type [15:12] and cut version [27:24] need to do value check*/
79 
80 	if (((cond1 & 0x0000F000) != 0) && ((cond1 & 0x0000F000) != (driver1 & 0x0000F000)))
81 		return false;
82 	if (((cond1 & 0x0F000000) != 0) && ((cond1 & 0x0F000000) != (driver1 & 0x0F000000)))
83 		return false;
84 
85 	/*=============== Bit Defined Check ================*/
86 	/* We don't care [31:28] */
87 
88 	cond1 &= 0x00FF0FFF;
89 	driver1 &= 0x00FF0FFF;
90 
91 	if ((cond1 & driver1) == cond1) {
92 		u32	bit_mask = 0;
93 
94 		if ((cond1 & 0x0F) == 0) /* board_type is DONTCARE*/
95 			return true;
96 
97 		if ((cond1 & BIT(0)) != 0) /*GLNA*/
98 			bit_mask |= 0x000000FF;
99 		if ((cond1 & BIT(1)) != 0) /*GPA*/
100 			bit_mask |= 0x0000FF00;
101 		if ((cond1 & BIT(2)) != 0) /*ALNA*/
102 			bit_mask |= 0x00FF0000;
103 		if ((cond1 & BIT(3)) != 0) /*APA*/
104 			bit_mask |= 0xFF000000;
105 
106 		if (((cond2 & bit_mask) == (driver2 & bit_mask)) && ((cond4 & bit_mask) == (driver4 & bit_mask)))  /* board_type of each RF path is matched*/
107 			return true;
108 		else
109 			return false;
110 	} else
111 		return false;
112 }
113 
114 /******************************************************************************
115 *                           radioa.TXT
116 ******************************************************************************/
117 
118 u32 array_mp_8703b_radioa[] = {
119 		0x018, 0x00008C01,
120 		0x0B5, 0x0008C050,
121 		0x0B1, 0x00054258,
122 		0x0B2, 0x00054C00,
123 		0x030, 0x00018000,
124 		0x031, 0x00000027,
125 		0x032, 0x000A7F07,
126 		0x030, 0x00020000,
127 		0x031, 0x00000027,
128 		0x032, 0x000E7D87,
129 		0x01C, 0x000F8635,
130 		0x0EF, 0x00080000,
131 		0x030, 0x00008000,
132 		0x031, 0x00000004,
133 		0x032, 0x00006105,
134 		0x0EF, 0x00000000,
135 		0x0EF, 0x00000400,
136 		0x041, 0x0000BD54,
137 		0x041, 0x00003DD4,
138 		0x041, 0x0000FDD4,
139 		0x0EF, 0x00000000,
140 		0x0DF, 0x00000600,
141 		0x050, 0x0000C6DB,
142 		0x051, 0x00004505,
143 		0x052, 0x0000E31D,
144 		0x053, 0x00040579,
145 		0x054, 0x00000000,
146 		0x055, 0x0008206E,
147 		0x056, 0x00040000,
148 		0x0EF, 0x00000100,
149 		0x034, 0x0000ADD7,
150 		0x034, 0x00009DD4,
151 		0x034, 0x00008DD1,
152 		0x034, 0x00007DCE,
153 		0x034, 0x00006DCB,
154 		0x034, 0x00005CCE,
155 		0x034, 0x000048CD,
156 		0x034, 0x000034CC,
157 		0x034, 0x0000244F,
158 		0x034, 0x0000144C,
159 		0x034, 0x0000004E,
160 		0x0EF, 0x00000000,
161 		0x0EF, 0x00002000,
162 		0x03B, 0x0003801F,
163 		0x03B, 0x00030002,
164 		0x03B, 0x00028001,
165 		0x03B, 0x00020000,
166 		0x03B, 0x00018003,
167 		0x03B, 0x00010002,
168 		0x03B, 0x00008001,
169 		0x03B, 0x00000000,
170 		0x0EF, 0x00000000,
171 		0x082, 0x000C0000,
172 		0x083, 0x000AF025,
173 		0x01E, 0x00000C08,
174 
175 };
176 
177 void
odm_read_and_config_mp_8703b_radioa(struct dm_struct * dm)178 odm_read_and_config_mp_8703b_radioa(struct dm_struct *dm)
179 {
180 	u32	i = 0;
181 	u8	c_cond;
182 	boolean	is_matched = true, is_skipped = false;
183 	u32	array_len = sizeof(array_mp_8703b_radioa) / sizeof(u32);
184 	u32	*array = array_mp_8703b_radioa;
185 
186 	u32	v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
187 
188 	PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__);
189 
190 	while ((i + 1) < array_len) {
191 		v1 = array[i];
192 		v2 = array[i + 1];
193 
194 		if (v1 & (BIT(31) | BIT(30))) {/*positive & negative condition*/
195 			if (v1 & BIT(31)) {/* positive condition*/
196 				c_cond  = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
197 				if (c_cond == COND_ENDIF) {/*end*/
198 					is_matched = true;
199 					is_skipped = false;
200 					PHYDM_DBG(dm, ODM_COMP_INIT, "ENDIF\n");
201 				} else if (c_cond == COND_ELSE) { /*else*/
202 					is_matched = is_skipped ? false : true;
203 					PHYDM_DBG(dm, ODM_COMP_INIT, "ELSE\n");
204 				} else {/*if , else if*/
205 					pre_v1 = v1;
206 					pre_v2 = v2;
207 					PHYDM_DBG(dm, ODM_COMP_INIT, "IF or ELSE IF\n");
208 				}
209 			} else if (v1 & BIT(30)) { /*negative condition*/
210 				if (is_skipped == false) {
211 					if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
212 						is_matched = true;
213 						is_skipped = true;
214 					} else {
215 						is_matched = false;
216 						is_skipped = false;
217 					}
218 				} else
219 					is_matched = false;
220 			}
221 		} else {
222 			if (is_matched)
223 				odm_config_rf_radio_a_8703b(dm, v1, v2);
224 		}
225 		i = i + 2;
226 	}
227 }
228 
229 u32
odm_get_version_mp_8703b_radioa(void)230 odm_get_version_mp_8703b_radioa(void)
231 {
232 		return 18;
233 }
234 
235 /******************************************************************************
236 *                           txpowertrack_sdio.TXT
237 ******************************************************************************/
238 
239 #if DEV_BUS_TYPE == RT_SDIO_INTERFACE
240 u8 g_delta_swing_table_idx_mp_5gb_n_txpowertrack_sdio_8703b[][DELTA_SWINGIDX_SIZE] = {
241 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 17, 17, 17, 17, 18, 18, 18},
242 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
243 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
244 };
245 u8 g_delta_swing_table_idx_mp_5gb_p_txpowertrack_sdio_8703b[][DELTA_SWINGIDX_SIZE] = {
246 	{0, 1, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
247 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
248 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
249 };
250 u8 g_delta_swing_table_idx_mp_5ga_n_txpowertrack_sdio_8703b[][DELTA_SWINGIDX_SIZE] = {
251 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 17, 17, 17, 17, 18, 18, 18},
252 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
253 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
254 };
255 u8 g_delta_swing_table_idx_mp_5ga_p_txpowertrack_sdio_8703b[][DELTA_SWINGIDX_SIZE] = {
256 	{0, 1, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
257 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
258 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
259 };
260 u8 g_delta_swing_table_idx_mp_2gb_n_txpowertrack_sdio_8703b[]    = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
261 u8 g_delta_swing_table_idx_mp_2gb_p_txpowertrack_sdio_8703b[]    = {0, 1, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15};
262 u8 g_delta_swing_table_idx_mp_2ga_n_txpowertrack_sdio_8703b[]    = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
263 u8 g_delta_swing_table_idx_mp_2ga_p_txpowertrack_sdio_8703b[]    = {0, 1, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15};
264 u8 g_delta_swing_table_idx_mp_2g_cck_b_n_txpowertrack_sdio_8703b[] = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
265 u8 g_delta_swing_table_idx_mp_2g_cck_b_p_txpowertrack_sdio_8703b[] = {0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13};
266 u8 g_delta_swing_table_idx_mp_2g_cck_a_n_txpowertrack_sdio_8703b[] = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
267 u8 g_delta_swing_table_idx_mp_2g_cck_a_p_txpowertrack_sdio_8703b[] = {0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13};
268 #endif
269 
270 void
odm_read_and_config_mp_8703b_txpowertrack_sdio(struct dm_struct * dm)271 odm_read_and_config_mp_8703b_txpowertrack_sdio(struct dm_struct *dm)
272 {
273 #if DEV_BUS_TYPE == RT_SDIO_INTERFACE
274 	struct dm_rf_calibration_struct  *cali_info = &(dm->rf_calibrate_info);
275 
276 	PHYDM_DBG(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8703b\n");
277 
278 
279 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p, g_delta_swing_table_idx_mp_2ga_p_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
280 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n, g_delta_swing_table_idx_mp_2ga_n_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
281 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p, g_delta_swing_table_idx_mp_2gb_p_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
282 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n, g_delta_swing_table_idx_mp_2gb_n_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
283 
284 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p, g_delta_swing_table_idx_mp_2g_cck_a_p_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
285 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n, g_delta_swing_table_idx_mp_2g_cck_a_n_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
286 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p, g_delta_swing_table_idx_mp_2g_cck_b_p_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
287 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n, g_delta_swing_table_idx_mp_2g_cck_b_n_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE);
288 
289 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p, g_delta_swing_table_idx_mp_5ga_p_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE * 3);
290 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n, g_delta_swing_table_idx_mp_5ga_n_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE * 3);
291 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p, g_delta_swing_table_idx_mp_5gb_p_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE * 3);
292 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n, g_delta_swing_table_idx_mp_5gb_n_txpowertrack_sdio_8703b, DELTA_SWINGIDX_SIZE * 3);
293 #endif
294 }
295 
296 /******************************************************************************
297 *                           txpowertrack_usb.TXT
298 ******************************************************************************/
299 
300 #if DEV_BUS_TYPE == RT_USB_INTERFACE
301 u8 g_delta_swing_table_idx_mp_5gb_n_txpowertrack_usb_8703b[][DELTA_SWINGIDX_SIZE] = {
302 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 17, 17, 17, 17, 18, 18, 18},
303 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
304 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
305 };
306 u8 g_delta_swing_table_idx_mp_5gb_p_txpowertrack_usb_8703b[][DELTA_SWINGIDX_SIZE] = {
307 	{0, 1, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
308 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
309 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
310 };
311 u8 g_delta_swing_table_idx_mp_5ga_n_txpowertrack_usb_8703b[][DELTA_SWINGIDX_SIZE] = {
312 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 17, 17, 17, 17, 18, 18, 18},
313 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
314 	{0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 18, 18},
315 };
316 u8 g_delta_swing_table_idx_mp_5ga_p_txpowertrack_usb_8703b[][DELTA_SWINGIDX_SIZE] = {
317 	{0, 1, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
318 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
319 	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
320 };
321 u8 g_delta_swing_table_idx_mp_2gb_n_txpowertrack_usb_8703b[]    = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
322 u8 g_delta_swing_table_idx_mp_2gb_p_txpowertrack_usb_8703b[]    = {0, 1, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15};
323 u8 g_delta_swing_table_idx_mp_2ga_n_txpowertrack_usb_8703b[]    = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
324 u8 g_delta_swing_table_idx_mp_2ga_p_txpowertrack_usb_8703b[]    = {0, 1, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15};
325 u8 g_delta_swing_table_idx_mp_2g_cck_b_n_txpowertrack_usb_8703b[] = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
326 u8 g_delta_swing_table_idx_mp_2g_cck_b_p_txpowertrack_usb_8703b[] = {0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13};
327 u8 g_delta_swing_table_idx_mp_2g_cck_a_n_txpowertrack_usb_8703b[] = {0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11};
328 u8 g_delta_swing_table_idx_mp_2g_cck_a_p_txpowertrack_usb_8703b[] = {0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13};
329 #endif
330 
331 void
odm_read_and_config_mp_8703b_txpowertrack_usb(struct dm_struct * dm)332 odm_read_and_config_mp_8703b_txpowertrack_usb(struct dm_struct *dm)
333 {
334 #if DEV_BUS_TYPE == RT_USB_INTERFACE
335 	struct dm_rf_calibration_struct  *cali_info = &(dm->rf_calibrate_info);
336 
337 	PHYDM_DBG(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8703b\n");
338 
339 
340 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p, g_delta_swing_table_idx_mp_2ga_p_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
341 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n, g_delta_swing_table_idx_mp_2ga_n_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
342 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p, g_delta_swing_table_idx_mp_2gb_p_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
343 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n, g_delta_swing_table_idx_mp_2gb_n_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
344 
345 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p, g_delta_swing_table_idx_mp_2g_cck_a_p_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
346 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n, g_delta_swing_table_idx_mp_2g_cck_a_n_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
347 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p, g_delta_swing_table_idx_mp_2g_cck_b_p_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
348 	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n, g_delta_swing_table_idx_mp_2g_cck_b_n_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE);
349 
350 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p, g_delta_swing_table_idx_mp_5ga_p_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE * 3);
351 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n, g_delta_swing_table_idx_mp_5ga_n_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE * 3);
352 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p, g_delta_swing_table_idx_mp_5gb_p_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE * 3);
353 	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n, g_delta_swing_table_idx_mp_5gb_n_txpowertrack_usb_8703b, DELTA_SWINGIDX_SIZE * 3);
354 #endif
355 }
356 
357 /******************************************************************************
358 *                           txpwr_lmt.TXT
359 ******************************************************************************/
360 
361 const char *array_mp_8703b_txpwr_lmt[] = {
362 	"FCC", "2.4G", "20M", "CCK", "1T", "01", "30",
363 	"ETSI", "2.4G", "20M", "CCK", "1T", "01", "26",
364 	"MKK", "2.4G", "20M", "CCK", "1T", "01", "32",
365 	"FCC", "2.4G", "20M", "CCK", "1T", "02", "30",
366 	"ETSI", "2.4G", "20M", "CCK", "1T", "02", "26",
367 	"MKK", "2.4G", "20M", "CCK", "1T", "02", "32",
368 	"FCC", "2.4G", "20M", "CCK", "1T", "03", "30",
369 	"ETSI", "2.4G", "20M", "CCK", "1T", "03", "26",
370 	"MKK", "2.4G", "20M", "CCK", "1T", "03", "32",
371 	"FCC", "2.4G", "20M", "CCK", "1T", "04", "30",
372 	"ETSI", "2.4G", "20M", "CCK", "1T", "04", "26",
373 	"MKK", "2.4G", "20M", "CCK", "1T", "04", "32",
374 	"FCC", "2.4G", "20M", "CCK", "1T", "05", "30",
375 	"ETSI", "2.4G", "20M", "CCK", "1T", "05", "26",
376 	"MKK", "2.4G", "20M", "CCK", "1T", "05", "32",
377 	"FCC", "2.4G", "20M", "CCK", "1T", "06", "30",
378 	"ETSI", "2.4G", "20M", "CCK", "1T", "06", "26",
379 	"MKK", "2.4G", "20M", "CCK", "1T", "06", "32",
380 	"FCC", "2.4G", "20M", "CCK", "1T", "07", "30",
381 	"ETSI", "2.4G", "20M", "CCK", "1T", "07", "26",
382 	"MKK", "2.4G", "20M", "CCK", "1T", "07", "32",
383 	"FCC", "2.4G", "20M", "CCK", "1T", "08", "30",
384 	"ETSI", "2.4G", "20M", "CCK", "1T", "08", "26",
385 	"MKK", "2.4G", "20M", "CCK", "1T", "08", "32",
386 	"FCC", "2.4G", "20M", "CCK", "1T", "09", "30",
387 	"ETSI", "2.4G", "20M", "CCK", "1T", "09", "26",
388 	"MKK", "2.4G", "20M", "CCK", "1T", "09", "32",
389 	"FCC", "2.4G", "20M", "CCK", "1T", "10", "30",
390 	"ETSI", "2.4G", "20M", "CCK", "1T", "10", "26",
391 	"MKK", "2.4G", "20M", "CCK", "1T", "10", "32",
392 	"FCC", "2.4G", "20M", "CCK", "1T", "11", "30",
393 	"ETSI", "2.4G", "20M", "CCK", "1T", "11", "26",
394 	"MKK", "2.4G", "20M", "CCK", "1T", "11", "32",
395 	"FCC", "2.4G", "20M", "CCK", "1T", "12", "63",
396 	"ETSI", "2.4G", "20M", "CCK", "1T", "12", "26",
397 	"MKK", "2.4G", "20M", "CCK", "1T", "12", "32",
398 	"FCC", "2.4G", "20M", "CCK", "1T", "13", "63",
399 	"ETSI", "2.4G", "20M", "CCK", "1T", "13", "26",
400 	"MKK", "2.4G", "20M", "CCK", "1T", "13", "32",
401 	"FCC", "2.4G", "20M", "CCK", "1T", "14", "63",
402 	"ETSI", "2.4G", "20M", "CCK", "1T", "14", "63",
403 	"MKK", "2.4G", "20M", "CCK", "1T", "14", "32",
404 	"FCC", "2.4G", "20M", "OFDM", "1T", "01", "28",
405 	"ETSI", "2.4G", "20M", "OFDM", "1T", "01", "28",
406 	"MKK", "2.4G", "20M", "OFDM", "1T", "01", "28",
407 	"FCC", "2.4G", "20M", "OFDM", "1T", "02", "28",
408 	"ETSI", "2.4G", "20M", "OFDM", "1T", "02", "32",
409 	"MKK", "2.4G", "20M", "OFDM", "1T", "02", "32",
410 	"FCC", "2.4G", "20M", "OFDM", "1T", "03", "32",
411 	"ETSI", "2.4G", "20M", "OFDM", "1T", "03", "32",
412 	"MKK", "2.4G", "20M", "OFDM", "1T", "03", "32",
413 	"FCC", "2.4G", "20M", "OFDM", "1T", "04", "32",
414 	"ETSI", "2.4G", "20M", "OFDM", "1T", "04", "32",
415 	"MKK", "2.4G", "20M", "OFDM", "1T", "04", "32",
416 	"FCC", "2.4G", "20M", "OFDM", "1T", "05", "32",
417 	"ETSI", "2.4G", "20M", "OFDM", "1T", "05", "32",
418 	"MKK", "2.4G", "20M", "OFDM", "1T", "05", "32",
419 	"FCC", "2.4G", "20M", "OFDM", "1T", "06", "32",
420 	"ETSI", "2.4G", "20M", "OFDM", "1T", "06", "32",
421 	"MKK", "2.4G", "20M", "OFDM", "1T", "06", "32",
422 	"FCC", "2.4G", "20M", "OFDM", "1T", "07", "32",
423 	"ETSI", "2.4G", "20M", "OFDM", "1T", "07", "32",
424 	"MKK", "2.4G", "20M", "OFDM", "1T", "07", "32",
425 	"FCC", "2.4G", "20M", "OFDM", "1T", "08", "32",
426 	"ETSI", "2.4G", "20M", "OFDM", "1T", "08", "32",
427 	"MKK", "2.4G", "20M", "OFDM", "1T", "08", "32",
428 	"FCC", "2.4G", "20M", "OFDM", "1T", "09", "32",
429 	"ETSI", "2.4G", "20M", "OFDM", "1T", "09", "32",
430 	"MKK", "2.4G", "20M", "OFDM", "1T", "09", "32",
431 	"FCC", "2.4G", "20M", "OFDM", "1T", "10", "28",
432 	"ETSI", "2.4G", "20M", "OFDM", "1T", "10", "32",
433 	"MKK", "2.4G", "20M", "OFDM", "1T", "10", "32",
434 	"FCC", "2.4G", "20M", "OFDM", "1T", "11", "28",
435 	"ETSI", "2.4G", "20M", "OFDM", "1T", "11", "32",
436 	"MKK", "2.4G", "20M", "OFDM", "1T", "11", "32",
437 	"FCC", "2.4G", "20M", "OFDM", "1T", "12", "63",
438 	"ETSI", "2.4G", "20M", "OFDM", "1T", "12", "32",
439 	"MKK", "2.4G", "20M", "OFDM", "1T", "12", "32",
440 	"FCC", "2.4G", "20M", "OFDM", "1T", "13", "63",
441 	"ETSI", "2.4G", "20M", "OFDM", "1T", "13", "28",
442 	"MKK", "2.4G", "20M", "OFDM", "1T", "13", "28",
443 	"FCC", "2.4G", "20M", "OFDM", "1T", "14", "63",
444 	"ETSI", "2.4G", "20M", "OFDM", "1T", "14", "63",
445 	"MKK", "2.4G", "20M", "OFDM", "1T", "14", "63",
446 	"FCC", "2.4G", "20M", "HT", "1T", "01", "26",
447 	"ETSI", "2.4G", "20M", "HT", "1T", "01", "26",
448 	"MKK", "2.4G", "20M", "HT", "1T", "01", "28",
449 	"FCC", "2.4G", "20M", "HT", "1T", "02", "26",
450 	"ETSI", "2.4G", "20M", "HT", "1T", "02", "32",
451 	"MKK", "2.4G", "20M", "HT", "1T", "02", "32",
452 	"FCC", "2.4G", "20M", "HT", "1T", "03", "32",
453 	"ETSI", "2.4G", "20M", "HT", "1T", "03", "32",
454 	"MKK", "2.4G", "20M", "HT", "1T", "03", "32",
455 	"FCC", "2.4G", "20M", "HT", "1T", "04", "32",
456 	"ETSI", "2.4G", "20M", "HT", "1T", "04", "32",
457 	"MKK", "2.4G", "20M", "HT", "1T", "04", "32",
458 	"FCC", "2.4G", "20M", "HT", "1T", "05", "32",
459 	"ETSI", "2.4G", "20M", "HT", "1T", "05", "32",
460 	"MKK", "2.4G", "20M", "HT", "1T", "05", "32",
461 	"FCC", "2.4G", "20M", "HT", "1T", "06", "32",
462 	"ETSI", "2.4G", "20M", "HT", "1T", "06", "32",
463 	"MKK", "2.4G", "20M", "HT", "1T", "06", "32",
464 	"FCC", "2.4G", "20M", "HT", "1T", "07", "32",
465 	"ETSI", "2.4G", "20M", "HT", "1T", "07", "32",
466 	"MKK", "2.4G", "20M", "HT", "1T", "07", "32",
467 	"FCC", "2.4G", "20M", "HT", "1T", "08", "32",
468 	"ETSI", "2.4G", "20M", "HT", "1T", "08", "32",
469 	"MKK", "2.4G", "20M", "HT", "1T", "08", "32",
470 	"FCC", "2.4G", "20M", "HT", "1T", "09", "32",
471 	"ETSI", "2.4G", "20M", "HT", "1T", "09", "32",
472 	"MKK", "2.4G", "20M", "HT", "1T", "09", "32",
473 	"FCC", "2.4G", "20M", "HT", "1T", "10", "26",
474 	"ETSI", "2.4G", "20M", "HT", "1T", "10", "32",
475 	"MKK", "2.4G", "20M", "HT", "1T", "10", "32",
476 	"FCC", "2.4G", "20M", "HT", "1T", "11", "26",
477 	"ETSI", "2.4G", "20M", "HT", "1T", "11", "32",
478 	"MKK", "2.4G", "20M", "HT", "1T", "11", "32",
479 	"FCC", "2.4G", "20M", "HT", "1T", "12", "63",
480 	"ETSI", "2.4G", "20M", "HT", "1T", "12", "32",
481 	"MKK", "2.4G", "20M", "HT", "1T", "12", "32",
482 	"FCC", "2.4G", "20M", "HT", "1T", "13", "63",
483 	"ETSI", "2.4G", "20M", "HT", "1T", "13", "26",
484 	"MKK", "2.4G", "20M", "HT", "1T", "13", "28",
485 	"FCC", "2.4G", "20M", "HT", "1T", "14", "63",
486 	"ETSI", "2.4G", "20M", "HT", "1T", "14", "63",
487 	"MKK", "2.4G", "20M", "HT", "1T", "14", "63",
488 	"FCC", "2.4G", "20M", "HT", "2T", "01", "28",
489 	"ETSI", "2.4G", "20M", "HT", "2T", "01", "30",
490 	"MKK", "2.4G", "20M", "HT", "2T", "01", "30",
491 	"FCC", "2.4G", "20M", "HT", "2T", "02", "28",
492 	"ETSI", "2.4G", "20M", "HT", "2T", "02", "30",
493 	"MKK", "2.4G", "20M", "HT", "2T", "02", "30",
494 	"FCC", "2.4G", "20M", "HT", "2T", "03", "30",
495 	"ETSI", "2.4G", "20M", "HT", "2T", "03", "30",
496 	"MKK", "2.4G", "20M", "HT", "2T", "03", "30",
497 	"FCC", "2.4G", "20M", "HT", "2T", "04", "30",
498 	"ETSI", "2.4G", "20M", "HT", "2T", "04", "30",
499 	"MKK", "2.4G", "20M", "HT", "2T", "04", "30",
500 	"FCC", "2.4G", "20M", "HT", "2T", "05", "30",
501 	"ETSI", "2.4G", "20M", "HT", "2T", "05", "30",
502 	"MKK", "2.4G", "20M", "HT", "2T", "05", "30",
503 	"FCC", "2.4G", "20M", "HT", "2T", "06", "30",
504 	"ETSI", "2.4G", "20M", "HT", "2T", "06", "30",
505 	"MKK", "2.4G", "20M", "HT", "2T", "06", "30",
506 	"FCC", "2.4G", "20M", "HT", "2T", "07", "30",
507 	"ETSI", "2.4G", "20M", "HT", "2T", "07", "30",
508 	"MKK", "2.4G", "20M", "HT", "2T", "07", "30",
509 	"FCC", "2.4G", "20M", "HT", "2T", "08", "30",
510 	"ETSI", "2.4G", "20M", "HT", "2T", "08", "30",
511 	"MKK", "2.4G", "20M", "HT", "2T", "08", "30",
512 	"FCC", "2.4G", "20M", "HT", "2T", "09", "28",
513 	"ETSI", "2.4G", "20M", "HT", "2T", "09", "30",
514 	"MKK", "2.4G", "20M", "HT", "2T", "09", "30",
515 	"FCC", "2.4G", "20M", "HT", "2T", "10", "28",
516 	"ETSI", "2.4G", "20M", "HT", "2T", "10", "30",
517 	"MKK", "2.4G", "20M", "HT", "2T", "10", "30",
518 	"FCC", "2.4G", "20M", "HT", "2T", "11", "28",
519 	"ETSI", "2.4G", "20M", "HT", "2T", "11", "30",
520 	"MKK", "2.4G", "20M", "HT", "2T", "11", "30",
521 	"FCC", "2.4G", "20M", "HT", "2T", "12", "63",
522 	"ETSI", "2.4G", "20M", "HT", "2T", "12", "30",
523 	"MKK", "2.4G", "20M", "HT", "2T", "12", "30",
524 	"FCC", "2.4G", "20M", "HT", "2T", "13", "63",
525 	"ETSI", "2.4G", "20M", "HT", "2T", "13", "30",
526 	"MKK", "2.4G", "20M", "HT", "2T", "13", "30",
527 	"FCC", "2.4G", "20M", "HT", "2T", "14", "63",
528 	"ETSI", "2.4G", "20M", "HT", "2T", "14", "63",
529 	"MKK", "2.4G", "20M", "HT", "2T", "14", "63",
530 	"FCC", "2.4G", "40M", "HT", "1T", "01", "63",
531 	"ETSI", "2.4G", "40M", "HT", "1T", "01", "63",
532 	"MKK", "2.4G", "40M", "HT", "1T", "01", "63",
533 	"FCC", "2.4G", "40M", "HT", "1T", "02", "63",
534 	"ETSI", "2.4G", "40M", "HT", "1T", "02", "63",
535 	"MKK", "2.4G", "40M", "HT", "1T", "02", "63",
536 	"FCC", "2.4G", "40M", "HT", "1T", "03", "26",
537 	"ETSI", "2.4G", "40M", "HT", "1T", "03", "26",
538 	"MKK", "2.4G", "40M", "HT", "1T", "03", "26",
539 	"FCC", "2.4G", "40M", "HT", "1T", "04", "26",
540 	"ETSI", "2.4G", "40M", "HT", "1T", "04", "28",
541 	"MKK", "2.4G", "40M", "HT", "1T", "04", "26",
542 	"FCC", "2.4G", "40M", "HT", "1T", "05", "28",
543 	"ETSI", "2.4G", "40M", "HT", "1T", "05", "28",
544 	"MKK", "2.4G", "40M", "HT", "1T", "05", "26",
545 	"FCC", "2.4G", "40M", "HT", "1T", "06", "28",
546 	"ETSI", "2.4G", "40M", "HT", "1T", "06", "28",
547 	"MKK", "2.4G", "40M", "HT", "1T", "06", "26",
548 	"FCC", "2.4G", "40M", "HT", "1T", "07", "28",
549 	"ETSI", "2.4G", "40M", "HT", "1T", "07", "28",
550 	"MKK", "2.4G", "40M", "HT", "1T", "07", "26",
551 	"FCC", "2.4G", "40M", "HT", "1T", "08", "26",
552 	"ETSI", "2.4G", "40M", "HT", "1T", "08", "28",
553 	"MKK", "2.4G", "40M", "HT", "1T", "08", "26",
554 	"FCC", "2.4G", "40M", "HT", "1T", "09", "26",
555 	"ETSI", "2.4G", "40M", "HT", "1T", "09", "28",
556 	"MKK", "2.4G", "40M", "HT", "1T", "09", "26",
557 	"FCC", "2.4G", "40M", "HT", "1T", "10", "26",
558 	"ETSI", "2.4G", "40M", "HT", "1T", "10", "28",
559 	"MKK", "2.4G", "40M", "HT", "1T", "10", "26",
560 	"FCC", "2.4G", "40M", "HT", "1T", "11", "26",
561 	"ETSI", "2.4G", "40M", "HT", "1T", "11", "26",
562 	"MKK", "2.4G", "40M", "HT", "1T", "11", "26",
563 	"FCC", "2.4G", "40M", "HT", "1T", "12", "63",
564 	"ETSI", "2.4G", "40M", "HT", "1T", "12", "26",
565 	"MKK", "2.4G", "40M", "HT", "1T", "12", "26",
566 	"FCC", "2.4G", "40M", "HT", "1T", "13", "63",
567 	"ETSI", "2.4G", "40M", "HT", "1T", "13", "26",
568 	"MKK", "2.4G", "40M", "HT", "1T", "13", "26",
569 	"FCC", "2.4G", "40M", "HT", "1T", "14", "63",
570 	"ETSI", "2.4G", "40M", "HT", "1T", "14", "63",
571 	"MKK", "2.4G", "40M", "HT", "1T", "14", "63",
572 	"FCC", "2.4G", "40M", "HT", "2T", "01", "63",
573 	"ETSI", "2.4G", "40M", "HT", "2T", "01", "63",
574 	"MKK", "2.4G", "40M", "HT", "2T", "01", "63",
575 	"FCC", "2.4G", "40M", "HT", "2T", "02", "63",
576 	"ETSI", "2.4G", "40M", "HT", "2T", "02", "63",
577 	"MKK", "2.4G", "40M", "HT", "2T", "02", "63",
578 	"FCC", "2.4G", "40M", "HT", "2T", "03", "26",
579 	"ETSI", "2.4G", "40M", "HT", "2T", "03", "26",
580 	"MKK", "2.4G", "40M", "HT", "2T", "03", "26",
581 	"FCC", "2.4G", "40M", "HT", "2T", "04", "26",
582 	"ETSI", "2.4G", "40M", "HT", "2T", "04", "26",
583 	"MKK", "2.4G", "40M", "HT", "2T", "04", "26",
584 	"FCC", "2.4G", "40M", "HT", "2T", "05", "26",
585 	"ETSI", "2.4G", "40M", "HT", "2T", "05", "26",
586 	"MKK", "2.4G", "40M", "HT", "2T", "05", "26",
587 	"FCC", "2.4G", "40M", "HT", "2T", "06", "26",
588 	"ETSI", "2.4G", "40M", "HT", "2T", "06", "26",
589 	"MKK", "2.4G", "40M", "HT", "2T", "06", "26",
590 	"FCC", "2.4G", "40M", "HT", "2T", "07", "26",
591 	"ETSI", "2.4G", "40M", "HT", "2T", "07", "26",
592 	"MKK", "2.4G", "40M", "HT", "2T", "07", "26",
593 	"FCC", "2.4G", "40M", "HT", "2T", "08", "26",
594 	"ETSI", "2.4G", "40M", "HT", "2T", "08", "26",
595 	"MKK", "2.4G", "40M", "HT", "2T", "08", "26",
596 	"FCC", "2.4G", "40M", "HT", "2T", "09", "26",
597 	"ETSI", "2.4G", "40M", "HT", "2T", "09", "26",
598 	"MKK", "2.4G", "40M", "HT", "2T", "09", "26",
599 	"FCC", "2.4G", "40M", "HT", "2T", "10", "26",
600 	"ETSI", "2.4G", "40M", "HT", "2T", "10", "26",
601 	"MKK", "2.4G", "40M", "HT", "2T", "10", "26",
602 	"FCC", "2.4G", "40M", "HT", "2T", "11", "26",
603 	"ETSI", "2.4G", "40M", "HT", "2T", "11", "26",
604 	"MKK", "2.4G", "40M", "HT", "2T", "11", "26",
605 	"FCC", "2.4G", "40M", "HT", "2T", "12", "63",
606 	"ETSI", "2.4G", "40M", "HT", "2T", "12", "26",
607 	"MKK", "2.4G", "40M", "HT", "2T", "12", "26",
608 	"FCC", "2.4G", "40M", "HT", "2T", "13", "63",
609 	"ETSI", "2.4G", "40M", "HT", "2T", "13", "26",
610 	"MKK", "2.4G", "40M", "HT", "2T", "13", "26",
611 	"FCC", "2.4G", "40M", "HT", "2T", "14", "63",
612 	"ETSI", "2.4G", "40M", "HT", "2T", "14", "63",
613 	"MKK", "2.4G", "40M", "HT", "2T", "14", "63",
614 	"FCC", "5G", "20M", "OFDM", "1T", "36", "30",
615 	"ETSI", "5G", "20M", "OFDM", "1T", "36", "32",
616 	"MKK", "5G", "20M", "OFDM", "1T", "36", "32",
617 	"FCC", "5G", "20M", "OFDM", "1T", "40", "30",
618 	"ETSI", "5G", "20M", "OFDM", "1T", "40", "32",
619 	"MKK", "5G", "20M", "OFDM", "1T", "40", "32",
620 	"FCC", "5G", "20M", "OFDM", "1T", "44", "30",
621 	"ETSI", "5G", "20M", "OFDM", "1T", "44", "32",
622 	"MKK", "5G", "20M", "OFDM", "1T", "44", "32",
623 	"FCC", "5G", "20M", "OFDM", "1T", "48", "30",
624 	"ETSI", "5G", "20M", "OFDM", "1T", "48", "32",
625 	"MKK", "5G", "20M", "OFDM", "1T", "48", "32",
626 	"FCC", "5G", "20M", "OFDM", "1T", "52", "34",
627 	"ETSI", "5G", "20M", "OFDM", "1T", "52", "32",
628 	"MKK", "5G", "20M", "OFDM", "1T", "52", "32",
629 	"FCC", "5G", "20M", "OFDM", "1T", "56", "34",
630 	"ETSI", "5G", "20M", "OFDM", "1T", "56", "32",
631 	"MKK", "5G", "20M", "OFDM", "1T", "56", "32",
632 	"FCC", "5G", "20M", "OFDM", "1T", "60", "32",
633 	"ETSI", "5G", "20M", "OFDM", "1T", "60", "32",
634 	"MKK", "5G", "20M", "OFDM", "1T", "60", "32",
635 	"FCC", "5G", "20M", "OFDM", "1T", "64", "28",
636 	"ETSI", "5G", "20M", "OFDM", "1T", "64", "32",
637 	"MKK", "5G", "20M", "OFDM", "1T", "64", "32",
638 	"FCC", "5G", "20M", "OFDM", "1T", "100", "30",
639 	"ETSI", "5G", "20M", "OFDM", "1T", "100", "32",
640 	"MKK", "5G", "20M", "OFDM", "1T", "100", "32",
641 	"FCC", "5G", "20M", "OFDM", "1T", "114", "30",
642 	"ETSI", "5G", "20M", "OFDM", "1T", "114", "32",
643 	"MKK", "5G", "20M", "OFDM", "1T", "114", "32",
644 	"FCC", "5G", "20M", "OFDM", "1T", "108", "32",
645 	"ETSI", "5G", "20M", "OFDM", "1T", "108", "32",
646 	"MKK", "5G", "20M", "OFDM", "1T", "108", "32",
647 	"FCC", "5G", "20M", "OFDM", "1T", "112", "34",
648 	"ETSI", "5G", "20M", "OFDM", "1T", "112", "32",
649 	"MKK", "5G", "20M", "OFDM", "1T", "112", "32",
650 	"FCC", "5G", "20M", "OFDM", "1T", "116", "34",
651 	"ETSI", "5G", "20M", "OFDM", "1T", "116", "32",
652 	"MKK", "5G", "20M", "OFDM", "1T", "116", "32",
653 	"FCC", "5G", "20M", "OFDM", "1T", "120", "34",
654 	"ETSI", "5G", "20M", "OFDM", "1T", "120", "32",
655 	"MKK", "5G", "20M", "OFDM", "1T", "120", "32",
656 	"FCC", "5G", "20M", "OFDM", "1T", "124", "34",
657 	"ETSI", "5G", "20M", "OFDM", "1T", "124", "32",
658 	"MKK", "5G", "20M", "OFDM", "1T", "124", "32",
659 	"FCC", "5G", "20M", "OFDM", "1T", "128", "32",
660 	"ETSI", "5G", "20M", "OFDM", "1T", "128", "32",
661 	"MKK", "5G", "20M", "OFDM", "1T", "128", "32",
662 	"FCC", "5G", "20M", "OFDM", "1T", "132", "30",
663 	"ETSI", "5G", "20M", "OFDM", "1T", "132", "32",
664 	"MKK", "5G", "20M", "OFDM", "1T", "132", "32",
665 	"FCC", "5G", "20M", "OFDM", "1T", "136", "30",
666 	"ETSI", "5G", "20M", "OFDM", "1T", "136", "32",
667 	"MKK", "5G", "20M", "OFDM", "1T", "136", "32",
668 	"FCC", "5G", "20M", "OFDM", "1T", "140", "28",
669 	"ETSI", "5G", "20M", "OFDM", "1T", "140", "32",
670 	"MKK", "5G", "20M", "OFDM", "1T", "140", "32",
671 	"FCC", "5G", "20M", "OFDM", "1T", "149", "34",
672 	"ETSI", "5G", "20M", "OFDM", "1T", "149", "32",
673 	"MKK", "5G", "20M", "OFDM", "1T", "149", "63",
674 	"FCC", "5G", "20M", "OFDM", "1T", "153", "34",
675 	"ETSI", "5G", "20M", "OFDM", "1T", "153", "32",
676 	"MKK", "5G", "20M", "OFDM", "1T", "153", "63",
677 	"FCC", "5G", "20M", "OFDM", "1T", "157", "34",
678 	"ETSI", "5G", "20M", "OFDM", "1T", "157", "32",
679 	"MKK", "5G", "20M", "OFDM", "1T", "157", "63",
680 	"FCC", "5G", "20M", "OFDM", "1T", "161", "34",
681 	"ETSI", "5G", "20M", "OFDM", "1T", "161", "32",
682 	"MKK", "5G", "20M", "OFDM", "1T", "161", "63",
683 	"FCC", "5G", "20M", "OFDM", "1T", "165", "34",
684 	"ETSI", "5G", "20M", "OFDM", "1T", "165", "32",
685 	"MKK", "5G", "20M", "OFDM", "1T", "165", "63",
686 	"FCC", "5G", "20M", "HT", "1T", "36", "30",
687 	"ETSI", "5G", "20M", "HT", "1T", "36", "32",
688 	"MKK", "5G", "20M", "HT", "1T", "36", "32",
689 	"FCC", "5G", "20M", "HT", "1T", "40", "30",
690 	"ETSI", "5G", "20M", "HT", "1T", "40", "32",
691 	"MKK", "5G", "20M", "HT", "1T", "40", "32",
692 	"FCC", "5G", "20M", "HT", "1T", "44", "30",
693 	"ETSI", "5G", "20M", "HT", "1T", "44", "32",
694 	"MKK", "5G", "20M", "HT", "1T", "44", "32",
695 	"FCC", "5G", "20M", "HT", "1T", "48", "30",
696 	"ETSI", "5G", "20M", "HT", "1T", "48", "32",
697 	"MKK", "5G", "20M", "HT", "1T", "48", "32",
698 	"FCC", "5G", "20M", "HT", "1T", "52", "34",
699 	"ETSI", "5G", "20M", "HT", "1T", "52", "32",
700 	"MKK", "5G", "20M", "HT", "1T", "52", "32",
701 	"FCC", "5G", "20M", "HT", "1T", "56", "34",
702 	"ETSI", "5G", "20M", "HT", "1T", "56", "32",
703 	"MKK", "5G", "20M", "HT", "1T", "56", "32",
704 	"FCC", "5G", "20M", "HT", "1T", "60", "32",
705 	"ETSI", "5G", "20M", "HT", "1T", "60", "32",
706 	"MKK", "5G", "20M", "HT", "1T", "60", "32",
707 	"FCC", "5G", "20M", "HT", "1T", "64", "28",
708 	"ETSI", "5G", "20M", "HT", "1T", "64", "32",
709 	"MKK", "5G", "20M", "HT", "1T", "64", "32",
710 	"FCC", "5G", "20M", "HT", "1T", "100", "30",
711 	"ETSI", "5G", "20M", "HT", "1T", "100", "32",
712 	"MKK", "5G", "20M", "HT", "1T", "100", "32",
713 	"FCC", "5G", "20M", "HT", "1T", "114", "30",
714 	"ETSI", "5G", "20M", "HT", "1T", "114", "32",
715 	"MKK", "5G", "20M", "HT", "1T", "114", "32",
716 	"FCC", "5G", "20M", "HT", "1T", "108", "32",
717 	"ETSI", "5G", "20M", "HT", "1T", "108", "32",
718 	"MKK", "5G", "20M", "HT", "1T", "108", "32",
719 	"FCC", "5G", "20M", "HT", "1T", "112", "34",
720 	"ETSI", "5G", "20M", "HT", "1T", "112", "32",
721 	"MKK", "5G", "20M", "HT", "1T", "112", "32",
722 	"FCC", "5G", "20M", "HT", "1T", "116", "34",
723 	"ETSI", "5G", "20M", "HT", "1T", "116", "32",
724 	"MKK", "5G", "20M", "HT", "1T", "116", "32",
725 	"FCC", "5G", "20M", "HT", "1T", "120", "34",
726 	"ETSI", "5G", "20M", "HT", "1T", "120", "32",
727 	"MKK", "5G", "20M", "HT", "1T", "120", "32",
728 	"FCC", "5G", "20M", "HT", "1T", "124", "34",
729 	"ETSI", "5G", "20M", "HT", "1T", "124", "32",
730 	"MKK", "5G", "20M", "HT", "1T", "124", "32",
731 	"FCC", "5G", "20M", "HT", "1T", "128", "32",
732 	"ETSI", "5G", "20M", "HT", "1T", "128", "32",
733 	"MKK", "5G", "20M", "HT", "1T", "128", "32",
734 	"FCC", "5G", "20M", "HT", "1T", "132", "30",
735 	"ETSI", "5G", "20M", "HT", "1T", "132", "32",
736 	"MKK", "5G", "20M", "HT", "1T", "132", "32",
737 	"FCC", "5G", "20M", "HT", "1T", "136", "30",
738 	"ETSI", "5G", "20M", "HT", "1T", "136", "32",
739 	"MKK", "5G", "20M", "HT", "1T", "136", "32",
740 	"FCC", "5G", "20M", "HT", "1T", "140", "28",
741 	"ETSI", "5G", "20M", "HT", "1T", "140", "32",
742 	"MKK", "5G", "20M", "HT", "1T", "140", "32",
743 	"FCC", "5G", "20M", "HT", "1T", "149", "34",
744 	"ETSI", "5G", "20M", "HT", "1T", "149", "32",
745 	"MKK", "5G", "20M", "HT", "1T", "149", "63",
746 	"FCC", "5G", "20M", "HT", "1T", "153", "34",
747 	"ETSI", "5G", "20M", "HT", "1T", "153", "32",
748 	"MKK", "5G", "20M", "HT", "1T", "153", "63",
749 	"FCC", "5G", "20M", "HT", "1T", "157", "34",
750 	"ETSI", "5G", "20M", "HT", "1T", "157", "32",
751 	"MKK", "5G", "20M", "HT", "1T", "157", "63",
752 	"FCC", "5G", "20M", "HT", "1T", "161", "34",
753 	"ETSI", "5G", "20M", "HT", "1T", "161", "32",
754 	"MKK", "5G", "20M", "HT", "1T", "161", "63",
755 	"FCC", "5G", "20M", "HT", "1T", "165", "34",
756 	"ETSI", "5G", "20M", "HT", "1T", "165", "32",
757 	"MKK", "5G", "20M", "HT", "1T", "165", "63",
758 	"FCC", "5G", "20M", "HT", "2T", "36", "28",
759 	"ETSI", "5G", "20M", "HT", "2T", "36", "30",
760 	"MKK", "5G", "20M", "HT", "2T", "36", "30",
761 	"FCC", "5G", "20M", "HT", "2T", "40", "28",
762 	"ETSI", "5G", "20M", "HT", "2T", "40", "30",
763 	"MKK", "5G", "20M", "HT", "2T", "40", "30",
764 	"FCC", "5G", "20M", "HT", "2T", "44", "28",
765 	"ETSI", "5G", "20M", "HT", "2T", "44", "30",
766 	"MKK", "5G", "20M", "HT", "2T", "44", "30",
767 	"FCC", "5G", "20M", "HT", "2T", "48", "28",
768 	"ETSI", "5G", "20M", "HT", "2T", "48", "30",
769 	"MKK", "5G", "20M", "HT", "2T", "48", "30",
770 	"FCC", "5G", "20M", "HT", "2T", "52", "34",
771 	"ETSI", "5G", "20M", "HT", "2T", "52", "30",
772 	"MKK", "5G", "20M", "HT", "2T", "52", "30",
773 	"FCC", "5G", "20M", "HT", "2T", "56", "32",
774 	"ETSI", "5G", "20M", "HT", "2T", "56", "30",
775 	"MKK", "5G", "20M", "HT", "2T", "56", "30",
776 	"FCC", "5G", "20M", "HT", "2T", "60", "30",
777 	"ETSI", "5G", "20M", "HT", "2T", "60", "30",
778 	"MKK", "5G", "20M", "HT", "2T", "60", "30",
779 	"FCC", "5G", "20M", "HT", "2T", "64", "26",
780 	"ETSI", "5G", "20M", "HT", "2T", "64", "30",
781 	"MKK", "5G", "20M", "HT", "2T", "64", "30",
782 	"FCC", "5G", "20M", "HT", "2T", "100", "28",
783 	"ETSI", "5G", "20M", "HT", "2T", "100", "30",
784 	"MKK", "5G", "20M", "HT", "2T", "100", "30",
785 	"FCC", "5G", "20M", "HT", "2T", "114", "28",
786 	"ETSI", "5G", "20M", "HT", "2T", "114", "30",
787 	"MKK", "5G", "20M", "HT", "2T", "114", "30",
788 	"FCC", "5G", "20M", "HT", "2T", "108", "30",
789 	"ETSI", "5G", "20M", "HT", "2T", "108", "30",
790 	"MKK", "5G", "20M", "HT", "2T", "108", "30",
791 	"FCC", "5G", "20M", "HT", "2T", "112", "32",
792 	"ETSI", "5G", "20M", "HT", "2T", "112", "30",
793 	"MKK", "5G", "20M", "HT", "2T", "112", "30",
794 	"FCC", "5G", "20M", "HT", "2T", "116", "32",
795 	"ETSI", "5G", "20M", "HT", "2T", "116", "30",
796 	"MKK", "5G", "20M", "HT", "2T", "116", "30",
797 	"FCC", "5G", "20M", "HT", "2T", "120", "34",
798 	"ETSI", "5G", "20M", "HT", "2T", "120", "30",
799 	"MKK", "5G", "20M", "HT", "2T", "120", "30",
800 	"FCC", "5G", "20M", "HT", "2T", "124", "32",
801 	"ETSI", "5G", "20M", "HT", "2T", "124", "30",
802 	"MKK", "5G", "20M", "HT", "2T", "124", "30",
803 	"FCC", "5G", "20M", "HT", "2T", "128", "30",
804 	"ETSI", "5G", "20M", "HT", "2T", "128", "30",
805 	"MKK", "5G", "20M", "HT", "2T", "128", "30",
806 	"FCC", "5G", "20M", "HT", "2T", "132", "28",
807 	"ETSI", "5G", "20M", "HT", "2T", "132", "30",
808 	"MKK", "5G", "20M", "HT", "2T", "132", "30",
809 	"FCC", "5G", "20M", "HT", "2T", "136", "28",
810 	"ETSI", "5G", "20M", "HT", "2T", "136", "30",
811 	"MKK", "5G", "20M", "HT", "2T", "136", "30",
812 	"FCC", "5G", "20M", "HT", "2T", "140", "26",
813 	"ETSI", "5G", "20M", "HT", "2T", "140", "30",
814 	"MKK", "5G", "20M", "HT", "2T", "140", "30",
815 	"FCC", "5G", "20M", "HT", "2T", "149", "34",
816 	"ETSI", "5G", "20M", "HT", "2T", "149", "30",
817 	"MKK", "5G", "20M", "HT", "2T", "149", "63",
818 	"FCC", "5G", "20M", "HT", "2T", "153", "34",
819 	"ETSI", "5G", "20M", "HT", "2T", "153", "30",
820 	"MKK", "5G", "20M", "HT", "2T", "153", "63",
821 	"FCC", "5G", "20M", "HT", "2T", "157", "34",
822 	"ETSI", "5G", "20M", "HT", "2T", "157", "30",
823 	"MKK", "5G", "20M", "HT", "2T", "157", "63",
824 	"FCC", "5G", "20M", "HT", "2T", "161", "34",
825 	"ETSI", "5G", "20M", "HT", "2T", "161", "30",
826 	"MKK", "5G", "20M", "HT", "2T", "161", "63",
827 	"FCC", "5G", "20M", "HT", "2T", "165", "34",
828 	"ETSI", "5G", "20M", "HT", "2T", "165", "30",
829 	"MKK", "5G", "20M", "HT", "2T", "165", "63",
830 	"FCC", "5G", "40M", "HT", "1T", "38", "30",
831 	"ETSI", "5G", "40M", "HT", "1T", "38", "32",
832 	"MKK", "5G", "40M", "HT", "1T", "38", "32",
833 	"FCC", "5G", "40M", "HT", "1T", "46", "30",
834 	"ETSI", "5G", "40M", "HT", "1T", "46", "32",
835 	"MKK", "5G", "40M", "HT", "1T", "46", "32",
836 	"FCC", "5G", "40M", "HT", "1T", "54", "32",
837 	"ETSI", "5G", "40M", "HT", "1T", "54", "32",
838 	"MKK", "5G", "40M", "HT", "1T", "54", "32",
839 	"FCC", "5G", "40M", "HT", "1T", "62", "32",
840 	"ETSI", "5G", "40M", "HT", "1T", "62", "32",
841 	"MKK", "5G", "40M", "HT", "1T", "62", "32",
842 	"FCC", "5G", "40M", "HT", "1T", "102", "28",
843 	"ETSI", "5G", "40M", "HT", "1T", "102", "32",
844 	"MKK", "5G", "40M", "HT", "1T", "102", "32",
845 	"FCC", "5G", "40M", "HT", "1T", "110", "32",
846 	"ETSI", "5G", "40M", "HT", "1T", "110", "32",
847 	"MKK", "5G", "40M", "HT", "1T", "110", "32",
848 	"FCC", "5G", "40M", "HT", "1T", "118", "34",
849 	"ETSI", "5G", "40M", "HT", "1T", "118", "32",
850 	"MKK", "5G", "40M", "HT", "1T", "118", "32",
851 	"FCC", "5G", "40M", "HT", "1T", "126", "34",
852 	"ETSI", "5G", "40M", "HT", "1T", "126", "32",
853 	"MKK", "5G", "40M", "HT", "1T", "126", "32",
854 	"FCC", "5G", "40M", "HT", "1T", "134", "32",
855 	"ETSI", "5G", "40M", "HT", "1T", "134", "32",
856 	"MKK", "5G", "40M", "HT", "1T", "134", "32",
857 	"FCC", "5G", "40M", "HT", "1T", "151", "34",
858 	"ETSI", "5G", "40M", "HT", "1T", "151", "32",
859 	"MKK", "5G", "40M", "HT", "1T", "151", "63",
860 	"FCC", "5G", "40M", "HT", "1T", "159", "34",
861 	"ETSI", "5G", "40M", "HT", "1T", "159", "32",
862 	"MKK", "5G", "40M", "HT", "1T", "159", "63",
863 	"FCC", "5G", "40M", "HT", "2T", "38", "28",
864 	"ETSI", "5G", "40M", "HT", "2T", "38", "30",
865 	"MKK", "5G", "40M", "HT", "2T", "38", "30",
866 	"FCC", "5G", "40M", "HT", "2T", "46", "28",
867 	"ETSI", "5G", "40M", "HT", "2T", "46", "30",
868 	"MKK", "5G", "40M", "HT", "2T", "46", "30",
869 	"FCC", "5G", "40M", "HT", "2T", "54", "30",
870 	"ETSI", "5G", "40M", "HT", "2T", "54", "30",
871 	"MKK", "5G", "40M", "HT", "2T", "54", "30",
872 	"FCC", "5G", "40M", "HT", "2T", "62", "30",
873 	"ETSI", "5G", "40M", "HT", "2T", "62", "30",
874 	"MKK", "5G", "40M", "HT", "2T", "62", "30",
875 	"FCC", "5G", "40M", "HT", "2T", "102", "26",
876 	"ETSI", "5G", "40M", "HT", "2T", "102", "30",
877 	"MKK", "5G", "40M", "HT", "2T", "102", "30",
878 	"FCC", "5G", "40M", "HT", "2T", "110", "30",
879 	"ETSI", "5G", "40M", "HT", "2T", "110", "30",
880 	"MKK", "5G", "40M", "HT", "2T", "110", "30",
881 	"FCC", "5G", "40M", "HT", "2T", "118", "34",
882 	"ETSI", "5G", "40M", "HT", "2T", "118", "30",
883 	"MKK", "5G", "40M", "HT", "2T", "118", "30",
884 	"FCC", "5G", "40M", "HT", "2T", "126", "32",
885 	"ETSI", "5G", "40M", "HT", "2T", "126", "30",
886 	"MKK", "5G", "40M", "HT", "2T", "126", "30",
887 	"FCC", "5G", "40M", "HT", "2T", "134", "30",
888 	"ETSI", "5G", "40M", "HT", "2T", "134", "30",
889 	"MKK", "5G", "40M", "HT", "2T", "134", "30",
890 	"FCC", "5G", "40M", "HT", "2T", "151", "34",
891 	"ETSI", "5G", "40M", "HT", "2T", "151", "30",
892 	"MKK", "5G", "40M", "HT", "2T", "151", "63",
893 	"FCC", "5G", "40M", "HT", "2T", "159", "34",
894 	"ETSI", "5G", "40M", "HT", "2T", "159", "30",
895 	"MKK", "5G", "40M", "HT", "2T", "159", "63",
896 	"FCC", "5G", "80M", "VHT", "1T", "42", "30",
897 	"ETSI", "5G", "80M", "VHT", "1T", "42", "32",
898 	"MKK", "5G", "80M", "VHT", "1T", "42", "32",
899 	"FCC", "5G", "80M", "VHT", "1T", "58", "28",
900 	"ETSI", "5G", "80M", "VHT", "1T", "58", "32",
901 	"MKK", "5G", "80M", "VHT", "1T", "58", "32",
902 	"FCC", "5G", "80M", "VHT", "1T", "106", "30",
903 	"ETSI", "5G", "80M", "VHT", "1T", "106", "32",
904 	"MKK", "5G", "80M", "VHT", "1T", "106", "32",
905 	"FCC", "5G", "80M", "VHT", "1T", "122", "34",
906 	"ETSI", "5G", "80M", "VHT", "1T", "122", "32",
907 	"MKK", "5G", "80M", "VHT", "1T", "122", "32",
908 	"FCC", "5G", "80M", "VHT", "1T", "155", "34",
909 	"ETSI", "5G", "80M", "VHT", "1T", "155", "32",
910 	"MKK", "5G", "80M", "VHT", "1T", "155", "63",
911 	"FCC", "5G", "80M", "VHT", "2T", "42", "28",
912 	"ETSI", "5G", "80M", "VHT", "2T", "42", "30",
913 	"MKK", "5G", "80M", "VHT", "2T", "42", "30",
914 	"FCC", "5G", "80M", "VHT", "2T", "58", "26",
915 	"ETSI", "5G", "80M", "VHT", "2T", "58", "30",
916 	"MKK", "5G", "80M", "VHT", "2T", "58", "30",
917 	"FCC", "5G", "80M", "VHT", "2T", "106", "28",
918 	"ETSI", "5G", "80M", "VHT", "2T", "106", "30",
919 	"MKK", "5G", "80M", "VHT", "2T", "106", "30",
920 	"FCC", "5G", "80M", "VHT", "2T", "122", "32",
921 	"ETSI", "5G", "80M", "VHT", "2T", "122", "30",
922 	"MKK", "5G", "80M", "VHT", "2T", "122", "30",
923 	"FCC", "5G", "80M", "VHT", "2T", "155", "34",
924 	"ETSI", "5G", "80M", "VHT", "2T", "155", "30",
925 	"MKK", "5G", "80M", "VHT", "2T", "155", "63"
926 };
927 
928 void
odm_read_and_config_mp_8703b_txpwr_lmt(struct dm_struct * dm)929 odm_read_and_config_mp_8703b_txpwr_lmt(struct dm_struct *dm)
930 {
931 	u32	i = 0;
932 #if (DM_ODM_SUPPORT_TYPE == ODM_IOT)
933 	u32	array_len = sizeof(array_mp_8703b_txpwr_lmt) / sizeof(u8);
934 	u8	*array = (u8 *)array_mp_8703b_txpwr_lmt;
935 #else
936 	u32	array_len = sizeof(array_mp_8703b_txpwr_lmt) / sizeof(u8 *);
937 	u8	**array = (u8 **)array_mp_8703b_txpwr_lmt;
938 #endif
939 
940 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
941 	void	*adapter = dm->adapter;
942 	HAL_DATA_TYPE	*hal_data = GET_HAL_DATA(((PADAPTER)adapter));
943 
944 	PlatformZeroMemory(hal_data->BufOfLinesPwrLmt, MAX_LINES_HWCONFIG_TXT * MAX_BYTES_LINE_HWCONFIG_TXT);
945 	hal_data->nLinesReadPwrLmt = array_len / 7;
946 #endif
947 
948 	PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__);
949 
950 	for (i = 0; i < array_len; i += 7) {
951 #if (DM_ODM_SUPPORT_TYPE == ODM_IOT)
952 		u8	regulation = array[i];
953 		u8	band = array[i + 1];
954 		u8	bandwidth = array[i + 2];
955 		u8	rate = array[i + 3];
956 		u8	rf_path = array[i + 4];
957 		u8	chnl = array[i + 5];
958 		u8	val = array[i + 6];
959 #else
960 		u8	*regulation = array[i];
961 		u8	*band = array[i + 1];
962 		u8	*bandwidth = array[i + 2];
963 		u8	*rate = array[i + 3];
964 		u8	*rf_path = array[i + 4];
965 		u8	*chnl = array[i + 5];
966 		u8	*val = array[i + 6];
967 #endif
968 
969 		odm_config_bb_txpwr_lmt_8703b(dm, regulation, band, bandwidth, rate, rf_path, chnl, val);
970 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
971 		rsprintf((char *)hal_data->BufOfLinesPwrLmt[i / 7], 100, "\"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\",",
972 		regulation, band, bandwidth, rate, rf_path, chnl, val);
973 #endif
974 	}
975 }
976 
977 /******************************************************************************
978 *                           txxtaltrack.TXT
979 ******************************************************************************/
980 
981 s8 g_delta_swing_table_xtal_mp_n_txxtaltrack_8703b[]    = {0, 0, 0, -1, -1, -1, -1, -2, -2, -2, -3, -3, -3, -3, -3, -4, -2, -2, -1, -1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1};
982 s8 g_delta_swing_table_xtal_mp_p_txxtaltrack_8703b[]    = {0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 1, 0, -1, -1, -1, -2, -3, -7, -9, -10, -11, -14, -16, -18, -20, -22, -24, -26, -28, -30};
983 
984 void
odm_read_and_config_mp_8703b_txxtaltrack(struct dm_struct * dm)985 odm_read_and_config_mp_8703b_txxtaltrack(struct dm_struct *dm)
986 {
987 	struct dm_rf_calibration_struct	*cali_info = &(dm->rf_calibrate_info);
988 
989 	PHYDM_DBG(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8703b\n");
990 
991 
992 	odm_move_memory(dm, cali_info->delta_swing_table_xtal_p, g_delta_swing_table_xtal_mp_p_txxtaltrack_8703b, DELTA_SWINGIDX_SIZE);
993 	odm_move_memory(dm, cali_info->delta_swing_table_xtal_n, g_delta_swing_table_xtal_mp_n_txxtaltrack_8703b, DELTA_SWINGIDX_SIZE);
994 }
995 
996 #endif /* end of HWIMG_SUPPORT*/
997 
998