1 /*
2  * Copyright (c) 2010 Broadcom Corporation
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11  * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
18 
19 #include <linux/kernel.h>
20 #include <linux/delay.h>
21 #include <linux/cordic.h>
22 
23 #include <brcm_hw_ids.h>
24 #include <aiutils.h>
25 #include <chipcommon.h>
26 #include <pmu.h>
27 #include <d11.h>
28 #include <phy_shim.h>
29 #include "phy_int.h"
30 #include "phy_hal.h"
31 #include "phy_radio.h"
32 #include "phyreg_n.h"
33 #include "phytbl_n.h"
34 #include "soc.h"
35 
36 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name)	\
37 	read_radio_reg(pi, radio_type##_##jspace##_##reg_name |	\
38 		       ((core == PHY_CORE_0) ? \
39 			radio_type##_##jspace##0 : \
40 			radio_type##_##jspace##1))
41 
42 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value)	\
43 	write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
44 			((core ==  PHY_CORE_0) ? \
45 			 radio_type##_##jspace##0 : \
46 			 radio_type##_##jspace##1), value)
47 
48 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
49 	write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
50 
51 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name)	\
52 	read_radio_reg(pi, ((core == PHY_CORE_0) ? \
53 			    radio_type##_##jspace##0##_##reg_name : \
54 			    radio_type##_##jspace##1##_##reg_name))
55 
56 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value)	\
57 	write_radio_reg(pi, ((core ==  PHY_CORE_0) ? \
58 			     radio_type##_##jspace##0##_##reg_name : \
59 			     radio_type##_##jspace##1##_##reg_name), \
60 			value)
61 
62 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name)	\
63 	read_radio_reg(pi, ((core == PHY_CORE_0) ? \
64 			     radio_type##_##reg_name##_##jspace##0 : \
65 			     radio_type##_##reg_name##_##jspace##1))
66 
67 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value)	\
68 	write_radio_reg(pi, ((core == PHY_CORE_0) ? \
69 			radio_type##_##reg_name##_##jspace##0 : \
70 			radio_type##_##reg_name##_##jspace##1), \
71 			value)
72 
73 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
74 #define NPHY_ACI_CHANNEL_DELTA 5
75 #define NPHY_ACI_CHANNEL_SKIP 4
76 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
77 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
78 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
79 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
80 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
81 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
82 
83 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
84 
85 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
86 
87 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
88 
89 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
90 
91 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
92 
93 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
94 
95 #define NPHY_NOISE_NOASSOC_ENTER_TH  400
96 
97 #define NPHY_NOISE_ASSOC_ENTER_TH  400
98 
99 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH  400
100 
101 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
102 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
103 
104 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
105 
106 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
107 
108 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
109 
110 #define NPHY_RSSICAL_MAXREAD 31
111 
112 #define NPHY_RSSICAL_NPOLL 8
113 #define NPHY_RSSICAL_MAXD  (1<<20)
114 #define NPHY_MIN_RXIQ_PWR 2
115 
116 #define NPHY_RSSICAL_W1_TARGET 25
117 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
118 #define NPHY_RSSICAL_NB_TARGET 0
119 
120 #define NPHY_RSSICAL_W1_TARGET_REV3 29
121 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
122 
123 #define NPHY_CALSANITY_RSSI_NB_MAX_POS  9
124 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
125 #define NPHY_CALSANITY_RSSI_W1_MAX_POS  12
126 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
127 					NPHY_RSSICAL_MAXREAD)
128 #define NPHY_CALSANITY_RSSI_W2_MAX_POS  NPHY_CALSANITY_RSSI_W1_MAX_POS
129 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
130 					NPHY_RSSICAL_MAXREAD)
131 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
132 #define NPHY_RSSI_NB_VIOL(x)  (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
133 			       ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
134 #define NPHY_RSSI_W1_VIOL(x)  (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
135 			       ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
136 #define NPHY_RSSI_W2_VIOL(x)  (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
137 			       ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
138 
139 #define NPHY_IQCAL_NUMGAINS 9
140 #define NPHY_N_GCTL 0x66
141 
142 #define NPHY_PAPD_EPS_TBL_SIZE 64
143 #define NPHY_PAPD_SCL_TBL_SIZE 64
144 #define NPHY_NUM_DIG_FILT_COEFFS 15
145 
146 #define NPHY_PAPD_COMP_OFF 0
147 #define NPHY_PAPD_COMP_ON  1
148 
149 #define NPHY_SROM_TEMPSHIFT             32
150 #define NPHY_SROM_MAXTEMPOFFSET         16
151 #define NPHY_SROM_MINTEMPOFFSET         -16
152 
153 #define NPHY_CAL_MAXTEMPDELTA           64
154 
155 #define NPHY_NOISEVAR_TBLLEN40 256
156 #define NPHY_NOISEVAR_TBLLEN20 128
157 
158 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
159 
160 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
161 
162 /* 5357 Chip specific ChipControl register bits */
163 #define CCTRL5357_EXTPA            (1<<14) /* extPA in ChipControl 1, bit 14 */
164 #define CCTRL5357_ANT_MUX_2o3      (1<<15) /* 2o3 in ChipControl 1, bit 15 */
165 
166 #define NPHY_CAL_TSSISAMPS      64
167 #define NPHY_TEST_TONE_FREQ_40MHz 4000
168 #define NPHY_TEST_TONE_FREQ_20MHz 2500
169 
170 #define MAX_205x_RCAL_WAITLOOPS 10000
171 
172 #define NPHY_RXCAL_TONEAMP 181
173 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
174 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
175 
176 #define TXFILT_SHAPING_OFDM20   0
177 #define TXFILT_SHAPING_OFDM40   1
178 #define TXFILT_SHAPING_CCK      2
179 #define TXFILT_DEFAULT_OFDM20   3
180 #define TXFILT_DEFAULT_OFDM40   4
181 
182 struct nphy_iqcal_params {
183 	u16 txlpf;
184 	u16 txgm;
185 	u16 pga;
186 	u16 pad;
187 	u16 ipa;
188 	u16 cal_gain;
189 	u16 ncorr[5];
190 };
191 
192 struct nphy_txiqcal_ladder {
193 	u8 percent;
194 	u8 g_env;
195 };
196 
197 struct nphy_ipa_txcalgains {
198 	struct nphy_txgains gains;
199 	bool useindex;
200 	u8 index;
201 };
202 
203 struct nphy_papd_restore_state {
204 	u16 fbmix[2];
205 	u16 vga_master[2];
206 	u16 intpa_master[2];
207 	u16 afectrl[2];
208 	u16 afeoverride[2];
209 	u16 pwrup[2];
210 	u16 atten[2];
211 	u16 mm;
212 };
213 
214 struct nphy_ipa_txrxgain {
215 	u16 hpvga;
216 	u16 lpf_biq1;
217 	u16 lpf_biq0;
218 	u16 lna2;
219 	u16 lna1;
220 	s8 txpwrindex;
221 };
222 
223 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
224 
225 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
226 	{0, 0, 0, 0, 0, 100},
227 	{0, 0, 0, 0, 0, 50},
228 	{0, 0, 0, 0, 0, -1},
229 	{0, 0, 0, 3, 0, -1},
230 	{0, 0, 3, 3, 0, -1},
231 	{0, 2, 3, 3, 0, -1}
232 };
233 
234 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
235 	{0, 0, 0, 0, 0, 128},
236 	{0, 0, 0, 0, 0, 70},
237 	{0, 0, 0, 0, 0, 20},
238 	{0, 0, 0, 3, 0, 20},
239 	{0, 0, 3, 3, 0, 20},
240 	{0, 2, 3, 3, 0, 20}
241 };
242 
243 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
244 	{0, 0, 0, 0, 0, 100},
245 	{0, 0, 0, 0, 0, 50},
246 	{0, 0, 0, 0, 0, -1},
247 	{0, 0, 0, 3, 0, -1},
248 	{0, 0, 3, 3, 0, -1},
249 	{0, 0, 5, 3, 0, -1}
250 };
251 
252 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
253 	{0, 0, 0, 0, 0, 10},
254 	{0, 0, 0, 1, 0, 10},
255 	{0, 0, 1, 2, 0, 10},
256 	{0, 0, 1, 3, 0, 10},
257 	{0, 0, 4, 3, 0, 10},
258 	{0, 0, 6, 3, 0, 10}
259 };
260 
261 enum {
262 	NPHY_RXCAL_GAIN_INIT = 0,
263 	NPHY_RXCAL_GAIN_UP,
264 	NPHY_RXCAL_GAIN_DOWN
265 };
266 
267 #define wlc_phy_get_papd_nphy(pi) \
268 	(read_phy_reg((pi), 0x1e7) & \
269 	 ((0x1 << 15) |	\
270 	  (0x1 << 14) |	\
271 	  (0x1 << 13)))
272 
273 static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
274 	{-377, 137, -407, 208, -1527, 956, 93, 186, 93,
275 	 230, -44, 230, 201, -191, 201},
276 	{-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
277 	 26, 34, -32, 34},
278 	{-360, 164, -376, 164, -1533, 576, 308, -314, 308,
279 	 121, -73, 121, 91, 124, 91},
280 	{-295, 200, -363, 142, -1391, 826, 151, 301, 151,
281 	 151, 301, 151, 602, -752, 602},
282 	{-92, 58, -96, 49, -104, 44, 17, 35, 17,
283 	 12, 25, 12, 13, 27, 13},
284 	{-375, 136, -399, 209, -1479, 949, 130, 260, 130,
285 	 230, -44, 230, 201, -191, 201},
286 	{0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
287 	 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
288 };
289 
290 struct chan_info_nphy_2055 {
291 	u16 chan;
292 	u16 freq;
293 	uint unknown;
294 	u8 RF_pll_ref;
295 	u8 RF_rf_pll_mod1;
296 	u8 RF_rf_pll_mod0;
297 	u8 RF_vco_cap_tail;
298 	u8 RF_vco_cal1;
299 	u8 RF_vco_cal2;
300 	u8 RF_pll_lf_c1;
301 	u8 RF_pll_lf_r1;
302 	u8 RF_pll_lf_c2;
303 	u8 RF_lgbuf_cen_buf;
304 	u8 RF_lgen_tune1;
305 	u8 RF_lgen_tune2;
306 	u8 RF_core1_lgbuf_a_tune;
307 	u8 RF_core1_lgbuf_g_tune;
308 	u8 RF_core1_rxrf_reg1;
309 	u8 RF_core1_tx_pga_pad_tn;
310 	u8 RF_core1_tx_mx_bgtrim;
311 	u8 RF_core2_lgbuf_a_tune;
312 	u8 RF_core2_lgbuf_g_tune;
313 	u8 RF_core2_rxrf_reg1;
314 	u8 RF_core2_tx_pga_pad_tn;
315 	u8 RF_core2_tx_mx_bgtrim;
316 	u16 PHY_BW1a;
317 	u16 PHY_BW2;
318 	u16 PHY_BW3;
319 	u16 PHY_BW4;
320 	u16 PHY_BW5;
321 	u16 PHY_BW6;
322 };
323 
324 struct chan_info_nphy_radio205x {
325 	u16 chan;
326 	u16 freq;
327 	u8 RF_SYN_pll_vcocal1;
328 	u8 RF_SYN_pll_vcocal2;
329 	u8 RF_SYN_pll_refdiv;
330 	u8 RF_SYN_pll_mmd2;
331 	u8 RF_SYN_pll_mmd1;
332 	u8 RF_SYN_pll_loopfilter1;
333 	u8 RF_SYN_pll_loopfilter2;
334 	u8 RF_SYN_pll_loopfilter3;
335 	u8 RF_SYN_pll_loopfilter4;
336 	u8 RF_SYN_pll_loopfilter5;
337 	u8 RF_SYN_reserved_addr27;
338 	u8 RF_SYN_reserved_addr28;
339 	u8 RF_SYN_reserved_addr29;
340 	u8 RF_SYN_logen_VCOBUF1;
341 	u8 RF_SYN_logen_MIXER2;
342 	u8 RF_SYN_logen_BUF3;
343 	u8 RF_SYN_logen_BUF4;
344 	u8 RF_RX0_lnaa_tune;
345 	u8 RF_RX0_lnag_tune;
346 	u8 RF_TX0_intpaa_boost_tune;
347 	u8 RF_TX0_intpag_boost_tune;
348 	u8 RF_TX0_pada_boost_tune;
349 	u8 RF_TX0_padg_boost_tune;
350 	u8 RF_TX0_pgaa_boost_tune;
351 	u8 RF_TX0_pgag_boost_tune;
352 	u8 RF_TX0_mixa_boost_tune;
353 	u8 RF_TX0_mixg_boost_tune;
354 	u8 RF_RX1_lnaa_tune;
355 	u8 RF_RX1_lnag_tune;
356 	u8 RF_TX1_intpaa_boost_tune;
357 	u8 RF_TX1_intpag_boost_tune;
358 	u8 RF_TX1_pada_boost_tune;
359 	u8 RF_TX1_padg_boost_tune;
360 	u8 RF_TX1_pgaa_boost_tune;
361 	u8 RF_TX1_pgag_boost_tune;
362 	u8 RF_TX1_mixa_boost_tune;
363 	u8 RF_TX1_mixg_boost_tune;
364 	u16 PHY_BW1a;
365 	u16 PHY_BW2;
366 	u16 PHY_BW3;
367 	u16 PHY_BW4;
368 	u16 PHY_BW5;
369 	u16 PHY_BW6;
370 };
371 
372 struct chan_info_nphy_radio2057 {
373 	u16 chan;
374 	u16 freq;
375 	u8 RF_vcocal_countval0;
376 	u8 RF_vcocal_countval1;
377 	u8 RF_rfpll_refmaster_sparextalsize;
378 	u8 RF_rfpll_loopfilter_r1;
379 	u8 RF_rfpll_loopfilter_c2;
380 	u8 RF_rfpll_loopfilter_c1;
381 	u8 RF_cp_kpd_idac;
382 	u8 RF_rfpll_mmd0;
383 	u8 RF_rfpll_mmd1;
384 	u8 RF_vcobuf_tune;
385 	u8 RF_logen_mx2g_tune;
386 	u8 RF_logen_mx5g_tune;
387 	u8 RF_logen_indbuf2g_tune;
388 	u8 RF_logen_indbuf5g_tune;
389 	u8 RF_txmix2g_tune_boost_pu_core0;
390 	u8 RF_pad2g_tune_pus_core0;
391 	u8 RF_pga_boost_tune_core0;
392 	u8 RF_txmix5g_boost_tune_core0;
393 	u8 RF_pad5g_tune_misc_pus_core0;
394 	u8 RF_lna2g_tune_core0;
395 	u8 RF_lna5g_tune_core0;
396 	u8 RF_txmix2g_tune_boost_pu_core1;
397 	u8 RF_pad2g_tune_pus_core1;
398 	u8 RF_pga_boost_tune_core1;
399 	u8 RF_txmix5g_boost_tune_core1;
400 	u8 RF_pad5g_tune_misc_pus_core1;
401 	u8 RF_lna2g_tune_core1;
402 	u8 RF_lna5g_tune_core1;
403 	u16 PHY_BW1a;
404 	u16 PHY_BW2;
405 	u16 PHY_BW3;
406 	u16 PHY_BW4;
407 	u16 PHY_BW5;
408 	u16 PHY_BW6;
409 };
410 
411 struct chan_info_nphy_radio2057_rev5 {
412 	u16 chan;
413 	u16 freq;
414 	u8 RF_vcocal_countval0;
415 	u8 RF_vcocal_countval1;
416 	u8 RF_rfpll_refmaster_sparextalsize;
417 	u8 RF_rfpll_loopfilter_r1;
418 	u8 RF_rfpll_loopfilter_c2;
419 	u8 RF_rfpll_loopfilter_c1;
420 	u8 RF_cp_kpd_idac;
421 	u8 RF_rfpll_mmd0;
422 	u8 RF_rfpll_mmd1;
423 	u8 RF_vcobuf_tune;
424 	u8 RF_logen_mx2g_tune;
425 	u8 RF_logen_indbuf2g_tune;
426 	u8 RF_txmix2g_tune_boost_pu_core0;
427 	u8 RF_pad2g_tune_pus_core0;
428 	u8 RF_lna2g_tune_core0;
429 	u8 RF_txmix2g_tune_boost_pu_core1;
430 	u8 RF_pad2g_tune_pus_core1;
431 	u8 RF_lna2g_tune_core1;
432 	u16 PHY_BW1a;
433 	u16 PHY_BW2;
434 	u16 PHY_BW3;
435 	u16 PHY_BW4;
436 	u16 PHY_BW5;
437 	u16 PHY_BW6;
438 };
439 
440 struct nphy_sfo_cfg {
441 	u16 PHY_BW1a;
442 	u16 PHY_BW2;
443 	u16 PHY_BW3;
444 	u16 PHY_BW4;
445 	u16 PHY_BW5;
446 	u16 PHY_BW6;
447 };
448 
449 static const struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
450 	{
451 	 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
452 	 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
453 	 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
454 	{
455 	 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
456 	 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
457 	 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
458 	{
459 	 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
460 	 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
461 	 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
462 	{
463 	 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
464 	 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
465 	 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
466 	{
467 	 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
468 	 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
469 	 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
470 	{
471 	 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
472 	 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
473 	 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
474 	{
475 	 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
476 	 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
477 	 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
478 	{
479 	 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
480 	 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
481 	 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
482 	{
483 	 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
484 	 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
485 	 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
486 	{
487 	 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
488 	 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
489 	 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
490 	{
491 	 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
492 	 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
493 	 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
494 	{
495 	 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
496 	 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
497 	 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
498 	{
499 	 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
500 	 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
501 	 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
502 	{
503 	 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
504 	 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
505 	 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
506 	{
507 	 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
508 	 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
509 	 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
510 	{
511 	 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
512 	 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
513 	 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
514 	{
515 	 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
516 	 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
517 	 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
518 	{
519 	 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
520 	 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
521 	 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
522 	{
523 	 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
524 	 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
525 	 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
526 	{
527 	 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
528 	 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
529 	 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
530 	{
531 	 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
532 	 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
533 	 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
534 	{
535 	 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
536 	 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
537 	 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
538 	{
539 	 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
540 	 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
541 	 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
542 	{
543 	 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
544 	 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
545 	 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
546 	{
547 	 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
548 	 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
549 	 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
550 	{
551 	 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
552 	 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
553 	 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
554 	{
555 	 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
556 	 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
557 	 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
558 	{
559 	 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
560 	 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
561 	 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
562 	{
563 	 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
564 	 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
565 	 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
566 	{
567 	 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
568 	 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
569 	 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
570 	{
571 	 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
572 	 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
573 	 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
574 	{
575 	 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
576 	 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
577 	 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
578 	{
579 	 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
580 	 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
581 	 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
582 	{
583 	 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
584 	 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
585 	 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
586 	{
587 	 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
588 	 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
589 	 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
590 	{
591 	 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
592 	 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
593 	 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
594 	{
595 	 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
596 	 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
597 	 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
598 	{
599 	 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
600 	 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
601 	 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
602 	{
603 	 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
604 	 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
605 	 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
606 	{
607 	 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
608 	 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
609 	 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
610 	{
611 	 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
612 	 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
613 	 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
614 	{
615 	 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
616 	 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
617 	 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
618 	{
619 	 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
620 	 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
621 	 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
622 	{
623 	 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
624 	 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
625 	 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
626 	{
627 	 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
628 	 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
629 	 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
630 	{
631 	 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
632 	 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
633 	 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
634 	{
635 	 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
636 	 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
637 	 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
638 	{
639 	 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
640 	 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
641 	 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
642 	{
643 	 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
644 	 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
645 	 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
646 	{
647 	 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
648 	 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
649 	 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
650 	{
651 	 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
652 	 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
653 	 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
654 	{
655 	 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
656 	 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
657 	 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
658 	{
659 	 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
660 	 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
661 	 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
662 	{
663 	 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
664 	 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
665 	 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
666 	{
667 	 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
668 	 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
669 	 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
670 	{
671 	 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
672 	 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
673 	 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
674 	{
675 	 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
676 	 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
677 	 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
678 	{
679 	 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
680 	 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
681 	 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
682 	{
683 	 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
684 	 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
685 	 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
686 	{
687 	 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
688 	 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
689 	 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
690 	{
691 	 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
692 	 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
693 	 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
694 	{
695 	 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
696 	 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
697 	 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
698 	{
699 	 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
700 	 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
701 	 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
702 	{
703 	 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
704 	 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
705 	 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
706 	{
707 	 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
708 	 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
709 	 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
710 	{
711 	 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
712 	 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
713 	 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
714 	{
715 	 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
716 	 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
717 	 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
718 	{
719 	 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
720 	 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
721 	 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
722 	{
723 	 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
724 	 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
725 	 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
726 	{
727 	 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
728 	 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
729 	 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
730 	{
731 	 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
732 	 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
733 	 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
734 	{
735 	 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
736 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
737 	 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
738 	{
739 	 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
740 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
741 	 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
742 	{
743 	 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
744 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
745 	 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
746 	{
747 	 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
748 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
749 	 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
750 	{
751 	 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
752 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
753 	 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
754 	{
755 	 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
756 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
757 	 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
758 	{
759 	 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
760 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
761 	 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
762 	{
763 	 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
764 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
765 	 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
766 	{
767 	 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
768 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
769 	 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
770 	{
771 	 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
772 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
773 	 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
774 	{
775 	 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
776 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
777 	 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
778 	{
779 	 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
780 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
781 	 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
782 	{
783 	 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
784 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
785 	 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
786 	{
787 	 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
788 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
789 	 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
790 	{
791 	 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
792 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
793 	 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
794 	{
795 	 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
796 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
797 	 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
798 	{
799 	 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
800 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
801 	 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
802 	{
803 	 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
804 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
805 	 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
806 	{
807 	 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
808 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
809 	 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
810 	{
811 	 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
812 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
813 	 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
814 	{
815 	 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
816 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
817 	 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
818 	{
819 	 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
820 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
821 	 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
822 	{
823 	 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
824 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
825 	 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
826 	{
827 	 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
828 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
829 	 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
830 	{
831 	 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
832 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
833 	 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
834 	{
835 	 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
836 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
837 	 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
838 	{
839 	 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
840 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
841 	 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
842 	{
843 	 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
844 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
845 	 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
846 	{
847 	 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
848 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
849 	 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
850 	{
851 	 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
852 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
853 	 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
854 	{
855 	 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
856 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
857 	 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
858 	{
859 	 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
860 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
861 	 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
862 	{
863 	 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
864 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
865 	 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
866 	{
867 	 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
868 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
869 	 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
870 	{
871 	 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
872 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
873 	 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
874 	{
875 	 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
876 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
877 	 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
878 	{
879 	 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
880 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
881 	 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
882 	{
883 	 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
884 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
885 	 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
886 	{
887 	 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
888 	 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
889 	 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
890 	{
891 	 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
892 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
893 	 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
894 	{
895 	 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
896 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
897 	 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
898 	{
899 	 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
900 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
901 	 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
902 	{
903 	 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
904 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
905 	 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
906 	{
907 	 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
908 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
909 	 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
910 	{
911 	 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
912 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
913 	 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
914 	{
915 	 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
916 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
917 	 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
918 	{
919 	 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
920 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
921 	 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
922 	{
923 	 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
924 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
925 	 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
926 	{
927 	 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
928 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
929 	 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
930 	{
931 	 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
932 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
933 	 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
934 	{
935 	 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
936 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
937 	 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
938 	{
939 	 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
940 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
941 	 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
942 	{
943 	 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
944 	 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
945 	 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
946 };
947 
948 static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
949 	{
950 	 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
951 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
952 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
953 	 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
954 	{
955 	 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
956 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
957 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
958 	 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
959 	{
960 	 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
961 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
962 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
963 	 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
964 	{
965 	 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
966 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
967 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
968 	 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
969 	{
970 	 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
971 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
972 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
973 	 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
974 	{
975 	 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
976 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
977 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
978 	 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
979 	{
980 	 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
981 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
982 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
983 	 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
984 	{
985 	 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
986 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
987 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
988 	 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
989 	{
990 	 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
991 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
992 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
993 	 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
994 	{
995 	 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
996 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
997 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
998 	 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
999 	{
1000 	 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1001 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1002 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1003 	 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1004 	{
1005 	 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1006 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1007 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1008 	 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1009 	{
1010 	 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1011 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1012 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1013 	 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1014 	{
1015 	 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1016 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1017 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1018 	 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1019 	{
1020 	 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1021 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1022 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1023 	 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1024 	{
1025 	 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1026 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1027 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1028 	 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1029 	{
1030 	 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1031 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1032 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1033 	 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1034 	{
1035 	 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1036 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1037 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1038 	 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1039 	{
1040 	 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1041 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1042 	 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1043 	 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1044 	{
1045 	 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1046 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1047 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1048 	 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1049 	{
1050 	 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1051 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1052 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1053 	 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1054 	{
1055 	 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1056 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1057 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1058 	 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1059 	{
1060 	 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1061 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1062 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1063 	 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1064 	{
1065 	 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1066 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1067 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1068 	 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1069 	{
1070 	 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1071 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1072 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1073 	 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1074 	{
1075 	 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1076 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1077 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1078 	 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1079 	{
1080 	 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1081 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1082 	 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1083 	 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1084 	{
1085 	 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1086 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1087 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1088 	 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1089 	{
1090 	 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1091 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1092 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1093 	 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1094 	{
1095 	 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1096 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1097 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1098 	 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1099 	{
1100 	 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1101 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1102 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1103 	 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1104 	{
1105 	 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1106 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1107 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1108 	 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1109 	{
1110 	 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1111 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1112 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1113 	 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1114 	{
1115 	 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1116 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1117 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1118 	 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1119 	{
1120 	 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1121 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1122 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1123 	 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1124 	{
1125 	 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1126 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1127 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1128 	 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1129 	{
1130 	 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1131 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1132 	 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1133 	 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1134 	{
1135 	 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1136 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1137 	 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1138 	 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1139 	{
1140 	 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1141 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1142 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1143 	 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1144 	{
1145 	 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1146 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1147 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1148 	 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1149 	{
1150 	 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1151 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1152 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1153 	 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1154 	{
1155 	 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1156 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1157 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1158 	 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1159 	{
1160 	 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1161 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1162 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1163 	 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1164 	{
1165 	 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1166 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1167 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1168 	 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1169 	{
1170 	 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1171 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1172 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1173 	 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1174 	{
1175 	 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1176 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1177 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1178 	 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1179 	{
1180 	 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1181 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1182 	 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1183 	 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1184 	{
1185 	 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1186 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1187 	 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1188 	 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1189 	{
1190 	 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1191 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1192 	 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1193 	 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1194 	{
1195 	 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1196 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1197 	 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1198 	 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1199 	{
1200 	 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1201 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1202 	 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1203 	 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1204 	{
1205 	 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1206 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1207 	 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1208 	 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1209 	{
1210 	 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1211 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1212 	 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1213 	 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1214 	{
1215 	 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1216 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1217 	 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1218 	 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1219 	{
1220 	 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1221 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1222 	 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1223 	 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1224 	{
1225 	 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1226 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1227 	 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1228 	 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1229 	{
1230 	 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1231 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1232 	 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1233 	 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1234 	{
1235 	 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1236 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1237 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1238 	 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1239 	{
1240 	 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1241 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1242 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1243 	 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1244 	{
1245 	 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1246 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1247 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1248 	 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1249 	{
1250 	 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1251 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1252 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1253 	 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1254 	{
1255 	 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1256 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1257 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1258 	 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1259 	{
1260 	 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1261 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1262 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1263 	 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1264 	{
1265 	 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1266 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1267 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1268 	 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1269 	{
1270 	 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1271 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1272 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1273 	 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1274 	{
1275 	 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1276 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1277 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1278 	 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1279 	{
1280 	 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1281 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1282 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1283 	 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1284 	{
1285 	 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1286 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1287 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1288 	 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1289 	{
1290 	 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1291 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1292 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1293 	 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1294 	{
1295 	 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1296 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1297 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1298 	 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1299 	{
1300 	 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1301 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1302 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1303 	 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1304 	{
1305 	 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1306 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1307 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1308 	 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1309 	{
1310 	 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1311 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1312 	 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1313 	 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1314 	{
1315 	 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1316 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1317 	 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1318 	 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1319 	{
1320 	 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1321 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1322 	 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1323 	 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1324 	{
1325 	 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1326 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1327 	 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1328 	 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1329 	{
1330 	 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1331 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1332 	 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1333 	 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1334 	{
1335 	 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1336 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1337 	 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1338 	 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1339 	{
1340 	 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1341 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1342 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1343 	 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1344 	{
1345 	 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1346 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1347 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1348 	 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1349 	{
1350 	 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1351 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1352 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1353 	 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1354 	{
1355 	 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1356 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1357 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1358 	 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1359 	{
1360 	 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1361 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1362 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1363 	 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1364 	{
1365 	 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1366 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1367 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1368 	 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1369 	{
1370 	 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1371 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1372 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1373 	 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1374 	{
1375 	 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1376 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1377 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1378 	 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1379 	{
1380 	 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1381 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1382 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1383 	 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1384 	{
1385 	 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1386 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1387 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1388 	 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1389 	{
1390 	 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1391 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1392 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1393 	 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1394 	{
1395 	 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1396 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1397 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1398 	 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1399 	{
1400 	 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1401 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1402 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1403 	 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1404 	{
1405 	 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1406 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1407 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1408 	 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1409 	{
1410 	 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1411 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1412 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1413 	 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1414 	{
1415 	 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1416 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1417 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1418 	 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1419 	{
1420 	 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1421 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1422 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1423 	 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1424 	{
1425 	 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1426 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1427 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1428 	 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1429 	{
1430 	 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1431 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1432 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1433 	 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1434 	{
1435 	 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1436 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1437 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1438 	 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1439 	{
1440 	 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1441 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1442 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1443 	 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1444 	{
1445 	 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1446 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1447 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1448 	 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1449 	{
1450 	 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1451 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1452 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1453 	 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1454 	{
1455 	 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1456 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1457 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1458 	 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1459 	{
1460 	 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1461 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1462 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1463 	 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1464 	{
1465 	 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1466 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1467 	 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1468 	 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1469 	{
1470 	 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1471 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1472 	 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1473 	 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1474 	{
1475 	 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1476 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1477 	 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1478 	 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1479 	{
1480 	 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1481 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1482 	 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1483 	 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1484 	{
1485 	 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1486 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1487 	 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1488 	 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1489 	{
1490 	 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1491 	 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1492 	 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1493 	 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1494 	{
1495 	 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1496 	 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1497 	 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1498 	 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1499 	{
1500 	 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1501 	 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1502 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1503 	 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1504 	{
1505 	 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1506 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1507 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1508 	 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1509 	{
1510 	 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1511 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1512 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1513 	 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1514 	{
1515 	 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1516 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1517 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1518 	 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1519 	{
1520 	 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1521 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1522 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1523 	 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1524 	{
1525 	 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1526 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1527 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1528 	 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1529 	{
1530 	 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1531 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1532 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1533 	 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1534 	{
1535 	 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1536 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1537 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1538 	 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1539 	{
1540 	 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1541 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1542 	 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1543 	 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1544 	{
1545 	 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1546 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1547 	 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1548 	 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1549 	{
1550 	 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1551 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1552 	 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1553 	 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1554 	{
1555 	 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1556 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1557 	 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1558 	 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1559 	{
1560 	 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1561 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1562 	 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1563 	 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1564 	{
1565 	 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1566 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1567 	 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1568 	 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1569 };
1570 
1571 static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1572 	{
1573 	 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1574 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1575 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1576 	 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1577 	{
1578 	 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1579 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1580 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1581 	 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1582 	{
1583 	 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1584 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1585 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1586 	 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1587 	{
1588 	 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1589 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1590 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1591 	 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1592 	{
1593 	 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1594 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1595 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1596 	 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1597 	{
1598 	 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1599 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1600 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1601 	 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1602 	{
1603 	 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1604 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1605 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1606 	 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1607 	{
1608 	 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1609 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1610 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1611 	 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1612 	{
1613 	 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1614 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1615 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1616 	 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1617 	{
1618 	 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1619 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1620 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1621 	 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1622 	{
1623 	 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1624 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1625 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1626 	 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1627 	{
1628 	 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1629 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1630 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1631 	 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1632 	{
1633 	 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1634 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1635 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1636 	 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1637 	{
1638 	 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1639 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1640 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1641 	 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1642 	{
1643 	 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1644 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1645 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1646 	 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1647 	{
1648 	 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1649 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1650 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1651 	 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1652 	{
1653 	 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1654 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1655 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1656 	 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1657 	{
1658 	 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1659 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1660 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1661 	 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1662 	{
1663 	 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1664 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1665 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1666 	 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1667 	{
1668 	 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1669 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1670 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1671 	 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1672 	{
1673 	 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1674 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1675 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1676 	 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1677 	{
1678 	 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1679 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1680 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1681 	 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1682 	{
1683 	 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1684 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1685 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1686 	 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1687 	{
1688 	 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1689 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1690 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1691 	 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1692 	{
1693 	 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1694 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1695 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1696 	 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1697 	{
1698 	 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1699 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1700 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1701 	 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1702 	{
1703 	 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1704 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1705 	 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1706 	 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1707 	{
1708 	 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1709 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1710 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1711 	 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1712 	{
1713 	 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1714 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1715 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1716 	 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1717 	{
1718 	 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1719 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1720 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1721 	 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1722 	{
1723 	 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1724 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1725 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1726 	 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1727 	{
1728 	 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1729 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1730 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1731 	 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1732 	{
1733 	 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1734 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1735 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1736 	 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1737 	{
1738 	 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1739 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1740 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1741 	 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1742 	{
1743 	 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1744 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1745 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1746 	 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1747 	{
1748 	 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1749 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1750 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1751 	 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1752 	{
1753 	 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1754 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1755 	 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1756 	 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1757 	{
1758 	 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1759 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1760 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1761 	 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1762 	{
1763 	 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1764 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1765 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1766 	 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1767 	{
1768 	 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1769 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1770 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1771 	 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1772 	{
1773 	 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1774 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1775 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1776 	 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1777 	{
1778 	 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1779 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1780 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1781 	 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1782 	{
1783 	 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1784 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1785 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1786 	 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1787 	{
1788 	 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1789 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1790 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1791 	 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1792 	{
1793 	 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1794 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1795 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1796 	 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1797 	{
1798 	 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1799 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1800 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1801 	 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1802 	{
1803 	 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1804 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1805 	 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1806 	 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1807 	{
1808 	 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1809 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1810 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1811 	 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1812 	{
1813 	 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1814 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1815 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1816 	 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1817 	{
1818 	 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1819 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1820 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1821 	 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1822 	{
1823 	 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1824 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1825 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1826 	 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1827 	{
1828 	 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1829 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1830 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1831 	 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1832 	{
1833 	 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1834 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1835 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1836 	 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1837 	{
1838 	 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1839 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1840 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1841 	 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1842 	{
1843 	 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1844 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1845 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1846 	 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1847 	{
1848 	 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1849 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1850 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1851 	 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1852 	{
1853 	 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1854 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1855 	 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1856 	 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1857 	{
1858 	 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1859 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1860 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1861 	 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1862 	{
1863 	 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1864 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1865 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1866 	 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1867 	{
1868 	 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1869 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1870 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1871 	 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1872 	{
1873 	 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1874 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1875 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1876 	 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1877 	{
1878 	 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1879 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1880 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1881 	 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1882 	{
1883 	 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1884 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1885 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1886 	 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1887 	{
1888 	 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1889 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1890 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1891 	 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1892 	{
1893 	 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1894 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1895 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1896 	 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1897 	{
1898 	 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1899 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1900 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1901 	 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1902 	{
1903 	 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1904 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1905 	 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1906 	 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1907 	{
1908 	 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1909 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1910 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1911 	 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1912 	{
1913 	 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1914 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1915 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1916 	 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1917 	{
1918 	 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1919 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1920 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1921 	 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1922 	{
1923 	 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1924 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1925 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1926 	 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1927 	{
1928 	 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1929 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1930 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1931 	 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1932 	{
1933 	 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1934 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1935 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1936 	 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1937 	{
1938 	 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1939 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1940 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1941 	 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1942 	{
1943 	 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1944 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1945 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1946 	 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1947 	{
1948 	 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1949 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1950 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1951 	 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1952 	{
1953 	 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1954 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1955 	 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1956 	 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1957 	{
1958 	 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1959 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1960 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1961 	 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1962 	{
1963 	 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1964 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1965 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1966 	 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1967 	{
1968 	 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1969 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1970 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1971 	 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1972 	{
1973 	 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1974 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1975 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1976 	 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1977 	{
1978 	 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1979 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1980 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1981 	 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1982 	{
1983 	 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1984 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1985 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1986 	 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1987 	{
1988 	 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1989 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1990 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1991 	 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1992 	{
1993 	 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1994 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1995 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1996 	 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1997 	{
1998 	 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1999 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
2000 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2001 	 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2002 	{
2003 	 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2004 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2005 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2006 	 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2007 	{
2008 	 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2009 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2010 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2011 	 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2012 	{
2013 	 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2014 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2015 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2016 	 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2017 	{
2018 	 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2019 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2020 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2021 	 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2022 	{
2023 	 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2024 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2025 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2026 	 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2027 	{
2028 	 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2029 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2030 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2031 	 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2032 	{
2033 	 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2034 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2035 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2036 	 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2037 	{
2038 	 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2039 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2040 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2041 	 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2042 	{
2043 	 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2044 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2045 	 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2046 	 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2047 	{
2048 	 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2049 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2050 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2051 	 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2052 	{
2053 	 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2054 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2055 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2056 	 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2057 	{
2058 	 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2059 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2060 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2061 	 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2062 	{
2063 	 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2064 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2065 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2066 	 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2067 	{
2068 	 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2069 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2070 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2071 	 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2072 	{
2073 	 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2074 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2075 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2076 	 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2077 	{
2078 	 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2079 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2080 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2081 	 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2082 	{
2083 	 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2084 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2085 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2086 	 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2087 	{
2088 	 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2089 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2090 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2091 	 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2092 	{
2093 	 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2094 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2095 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2096 	 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2097 	{
2098 	 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2099 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2100 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2101 	 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2102 	{
2103 	 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2104 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2105 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2106 	 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2107 	{
2108 	 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2109 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2110 	 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2111 	 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2112 	{
2113 	 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2114 	 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2115 	 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2116 	 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2117 	{
2118 	 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2119 	 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2120 	 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2121 	 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2122 	{
2123 	 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2124 	 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2125 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2126 	 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2127 	{
2128 	 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2129 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2130 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2131 	 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2132 	{
2133 	 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2134 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2135 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2136 	 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2137 	{
2138 	 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2139 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2140 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2141 	 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2142 	{
2143 	 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2144 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2145 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2146 	 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2147 	{
2148 	 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2149 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2150 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2151 	 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2152 	{
2153 	 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2154 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2155 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2156 	 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2157 	{
2158 	 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2159 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2160 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2161 	 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2162 	{
2163 	 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2164 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2165 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2166 	 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2167 	{
2168 	 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2169 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2170 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2171 	 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2172 	{
2173 	 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2174 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2175 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2176 	 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2177 	{
2178 	 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2179 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2180 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2181 	 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2182 	{
2183 	 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2184 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2185 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2186 	 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2187 	{
2188 	 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2189 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2190 	 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2191 	 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2192 };
2193 
2194 static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2195 	{
2196 	 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2197 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2198 	 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2199 	 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2200 	{
2201 	 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2202 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2203 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2204 	 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2205 	{
2206 	 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2207 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2208 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2209 	 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2210 	{
2211 	 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2212 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2213 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2214 	 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2215 	{
2216 	 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2217 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2218 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2219 	 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2220 	{
2221 	 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2222 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2223 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2224 	 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2225 	{
2226 	 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2227 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2228 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2229 	 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2230 	{
2231 	 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2232 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2233 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2234 	 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2235 	{
2236 	 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2237 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2238 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2239 	 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2240 	{
2241 	 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2242 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2243 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2244 	 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2245 	{
2246 	 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2247 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2248 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2249 	 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2250 	{
2251 	 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2252 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2253 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2254 	 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2255 	{
2256 	 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2257 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2258 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2259 	 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2260 	{
2261 	 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2262 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2263 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2264 	 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2265 	{
2266 	 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2267 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2268 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2269 	 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2270 	{
2271 	 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2272 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2273 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2274 	 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2275 	{
2276 	 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2277 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2278 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2279 	 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2280 	{
2281 	 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2282 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2283 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2284 	 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2285 	{
2286 	 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2287 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2288 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2289 	 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2290 	{
2291 	 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2292 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2293 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2294 	 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2295 	{
2296 	 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2297 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2298 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2299 	 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2300 	{
2301 	 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2302 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2303 	 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2304 	 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2305 	{
2306 	 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2307 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2308 	 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2309 	 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2310 	{
2311 	 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2312 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2313 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2314 	 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2315 	{
2316 	 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2317 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2318 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2319 	 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2320 	{
2321 	 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2322 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2323 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2324 	 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2325 	{
2326 	 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2327 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2328 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2329 	 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2330 	{
2331 	 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2332 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2333 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2334 	 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2335 	{
2336 	 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2337 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2338 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2339 	 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2340 	{
2341 	 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2342 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2343 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2344 	 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2345 	{
2346 	 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2347 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2348 	 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2349 	 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2350 	{
2351 	 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2352 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2353 	 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2354 	 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2355 	{
2356 	 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2357 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2358 	 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2359 	 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2360 	{
2361 	 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2362 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2363 	 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2364 	 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2365 	{
2366 	 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2367 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2368 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2369 	 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2370 	{
2371 	 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2372 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2373 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2374 	 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2375 	{
2376 	 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2377 	 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2378 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2379 	 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2380 	{
2381 	 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2382 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2383 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2384 	 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2385 	{
2386 	 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2387 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2388 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2389 	 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2390 	{
2391 	 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2392 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2393 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2394 	 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2395 	{
2396 	 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2397 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2398 	 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2399 	 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2400 	{
2401 	 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2402 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2403 	 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2404 	 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2405 	{
2406 	 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2407 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2408 	 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2409 	 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2410 	{
2411 	 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2412 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2413 	 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2414 	 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2415 	{
2416 	 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2417 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2418 	 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2419 	 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2420 	{
2421 	 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2422 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2423 	 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2424 	 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2425 	{
2426 	 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2427 	 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2428 	 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2429 	 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2430 	{
2431 	 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2432 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2433 	 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2434 	 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2435 	{
2436 	 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2437 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2438 	 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2439 	 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2440 	{
2441 	 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2442 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2443 	 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2444 	 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2445 	{
2446 	 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2447 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2448 	 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2449 	 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2450 	{
2451 	 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2452 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2453 	 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2454 	 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2455 	{
2456 	 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2457 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2458 	 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2459 	 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2460 	{
2461 	 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2462 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2463 	 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2464 	 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2465 	{
2466 	 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2467 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2468 	 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2469 	 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2470 	{
2471 	 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2472 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2473 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2474 	 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2475 	{
2476 	 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2477 	 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2478 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2479 	 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2480 	{
2481 	 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2482 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2483 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2484 	 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2485 	{
2486 	 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2487 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2488 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2489 	 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2490 	{
2491 	 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2492 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2493 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2494 	 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2495 	{
2496 	 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2497 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2498 	 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2499 	 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2500 	{
2501 	 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2502 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2503 	 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2504 	 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2505 	{
2506 	 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2507 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2508 	 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2509 	 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2510 	{
2511 	 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2512 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2513 	 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2514 	 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2515 	{
2516 	 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2517 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2518 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2519 	 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2520 	{
2521 	 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2522 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2523 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2524 	 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2525 	{
2526 	 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2527 	 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2528 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2529 	 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2530 	{
2531 	 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2532 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2533 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2534 	 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2535 	{
2536 	 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2537 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2538 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2539 	 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2540 	{
2541 	 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2542 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2543 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2544 	 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2545 	{
2546 	 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2547 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2548 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2549 	 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2550 	{
2551 	 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2552 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2553 	 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2554 	 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2555 	{
2556 	 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2557 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2558 	 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2559 	 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2560 	{
2561 	 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2562 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2563 	 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2564 	 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2565 	{
2566 	 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2567 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2568 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2569 	 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2570 	{
2571 	 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2572 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2573 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2574 	 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2575 	{
2576 	 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2577 	 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2578 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2579 	 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2580 	{
2581 	 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2582 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2583 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2584 	 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2585 	{
2586 	 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2587 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2588 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2589 	 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2590 	{
2591 	 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2592 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2593 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2594 	 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2595 	{
2596 	 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2597 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2598 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2599 	 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2600 	{
2601 	 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2602 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2603 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2604 	 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2605 	{
2606 	 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2607 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2608 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2609 	 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2610 	{
2611 	 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2612 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2613 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2614 	 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2615 	{
2616 	 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2617 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2618 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2619 	 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2620 	{
2621 	 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2622 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2623 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2624 	 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2625 	{
2626 	 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2627 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2628 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2629 	 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2630 	{
2631 	 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2632 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2633 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2634 	 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2635 	{
2636 	 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2637 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2638 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2639 	 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2640 	{
2641 	 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2642 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2643 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2644 	 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2645 	{
2646 	 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2647 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2648 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2649 	 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2650 	{
2651 	 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2652 	 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2653 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2654 	 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2655 	{
2656 	 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2657 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2658 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2659 	 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2660 	{
2661 	 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2662 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2663 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2664 	 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2665 	{
2666 	 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2667 	 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2668 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2669 	 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2670 	{
2671 	 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2672 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2673 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2674 	 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2675 	{
2676 	 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2677 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2678 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2679 	 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2680 	{
2681 	 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2682 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2683 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2684 	 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2685 	{
2686 	 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2687 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2688 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2689 	 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2690 	{
2691 	 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2692 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2693 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2694 	 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2695 	{
2696 	 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2697 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2698 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2699 	 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2700 	{
2701 	 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2702 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2703 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2704 	 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2705 	{
2706 	 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2707 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2708 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2709 	 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2710 	{
2711 	 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2712 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2713 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2714 	 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2715 	{
2716 	 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2717 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2718 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2719 	 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2720 	{
2721 	 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2722 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2723 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2724 	 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2725 	{
2726 	 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2727 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2728 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2729 	 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2730 	{
2731 	 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2732 	 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2733 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2734 	 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2735 	{
2736 	 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2737 	 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2738 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2739 	 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2740 	{
2741 	 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2742 	 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2743 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2744 	 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2745 	{
2746 	 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2747 	 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2748 	 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2749 	 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2750 	{
2751 	 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2752 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2753 	 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2754 	 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2755 	{
2756 	 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2757 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2758 	 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2759 	 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2760 	{
2761 	 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2762 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2763 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2764 	 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2765 	{
2766 	 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2767 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2768 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2769 	 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2770 	{
2771 	 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2772 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2773 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2774 	 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2775 	{
2776 	 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2777 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2778 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2779 	 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2780 	{
2781 	 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2782 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2783 	 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2784 	 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2785 	{
2786 	 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2787 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2788 	 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2789 	 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2790 	{
2791 	 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2792 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2793 	 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2794 	 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2795 	{
2796 	 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2797 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2798 	 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2799 	 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2800 	{
2801 	 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2802 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2803 	 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2804 	 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2805 	{
2806 	 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2807 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2808 	 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2809 	 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2810 	{
2811 	 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2812 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2813 	 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2814 	 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2815 };
2816 
2817 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2818 	{
2819 	 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2820 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2821 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2822 	 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2823 	{
2824 	 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2825 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2826 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2827 	 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2828 	{
2829 	 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2830 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2831 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2832 	 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2833 	{
2834 	 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2835 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2836 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2837 	 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2838 	{
2839 	 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2840 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2841 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2842 	 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2843 	{
2844 	 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2845 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2846 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2847 	 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2848 	{
2849 	 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2850 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2851 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2852 	 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2853 	{
2854 	 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2855 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2856 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2857 	 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2858 	{
2859 	 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2860 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2861 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2862 	 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2863 	{
2864 	 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2865 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2866 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2867 	 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2868 	{
2869 	 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2870 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2871 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2872 	 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2873 	{
2874 	 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2875 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2876 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2877 	 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2878 	{
2879 	 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2880 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2881 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2882 	 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2883 	{
2884 	 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2885 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2886 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2887 	 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2888 	{
2889 	 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2890 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2891 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2892 	 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2893 	{
2894 	 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2895 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2896 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2897 	 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2898 	{
2899 	 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2900 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2901 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2902 	 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2903 	{
2904 	 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2905 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2906 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2907 	 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2908 	{
2909 	 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2910 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2911 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2912 	 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2913 	{
2914 	 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2915 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2916 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2917 	 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2918 	{
2919 	 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2920 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2921 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2922 	 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2923 	{
2924 	 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2925 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2926 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2927 	 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2928 	{
2929 	 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2930 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2931 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2932 	 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2933 	{
2934 	 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2935 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2936 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2937 	 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2938 	{
2939 	 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2940 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2941 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2942 	 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2943 	{
2944 	 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2945 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2946 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2947 	 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2948 	{
2949 	 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2950 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2951 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2952 	 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2953 	{
2954 	 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2955 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2956 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2957 	 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2958 	{
2959 	 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2960 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2961 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2962 	 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2963 	{
2964 	 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2965 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2966 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2967 	 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2968 	{
2969 	 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2970 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2971 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2972 	 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2973 	{
2974 	 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2975 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2976 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2977 	 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2978 	{
2979 	 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2980 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2981 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2982 	 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2983 	{
2984 	 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2985 	 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2986 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2987 	 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2988 	{
2989 	 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2990 	 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2991 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2992 	 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2993 	{
2994 	 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2995 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2996 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2997 	 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2998 	{
2999 	 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3000 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3001 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3002 	 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3003 	{
3004 	 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3005 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3006 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3007 	 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3008 	{
3009 	 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3010 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3011 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3012 	 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3013 	{
3014 	 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3015 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3016 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3017 	 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3018 	{
3019 	 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3020 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3021 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3022 	 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3023 	{
3024 	 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3025 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3026 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3027 	 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3028 	{
3029 	 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3030 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3031 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3032 	 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3033 	{
3034 	 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3035 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3036 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3037 	 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3038 	{
3039 	 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3040 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3041 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3042 	 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3043 	{
3044 	 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3045 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3046 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3047 	 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3048 	{
3049 	 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3050 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3051 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3052 	 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3053 	{
3054 	 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3055 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3056 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3057 	 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3058 	{
3059 	 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3060 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3061 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3062 	 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3063 	{
3064 	 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3065 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3066 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3067 	 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3068 	{
3069 	 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3070 	 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3071 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3072 	 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3073 	{
3074 	 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3075 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3076 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3077 	 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3078 	{
3079 	 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3080 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3081 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3082 	 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3083 	{
3084 	 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3085 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3086 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3087 	 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3088 	{
3089 	 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3090 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3091 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3092 	 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3093 	{
3094 	 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3095 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3096 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3097 	 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3098 	{
3099 	 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3100 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3101 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3102 	 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3103 	{
3104 	 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3105 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3106 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3107 	 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3108 	{
3109 	 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3110 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3111 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3112 	 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3113 	{
3114 	 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3115 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3116 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3117 	 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3118 	{
3119 	 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3120 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3121 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3122 	 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3123 	{
3124 	 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3125 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3126 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3127 	 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3128 	{
3129 	 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3130 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3131 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3132 	 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3133 	{
3134 	 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3135 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3136 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3137 	 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3138 	{
3139 	 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3140 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3141 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3142 	 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3143 	{
3144 	 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3145 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3146 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3147 	 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3148 	{
3149 	 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3150 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3151 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3152 	 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3153 	{
3154 	 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3155 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3156 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3157 	 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3158 	{
3159 	 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3160 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3161 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3162 	 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3163 	{
3164 	 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3165 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3166 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3167 	 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3168 	{
3169 	 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3170 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3171 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3172 	 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3173 	{
3174 	 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3175 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3176 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3177 	 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3178 	{
3179 	 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3180 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3181 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3182 	 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3183 	{
3184 	 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3185 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3186 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3187 	 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3188 	{
3189 	 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3190 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3191 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3192 	 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3193 	{
3194 	 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3195 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3196 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3197 	 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3198 	{
3199 	 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3200 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3201 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3202 	 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3203 	{
3204 	 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3205 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3206 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3207 	 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3208 	{
3209 	 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3210 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3211 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3212 	 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3213 	{
3214 	 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3215 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3216 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3217 	 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3218 	{
3219 	 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3220 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3221 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3222 	 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3223 	{
3224 	 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3225 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3226 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3227 	 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3228 	{
3229 	 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3230 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3231 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3232 	 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3233 	{
3234 	 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3235 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3236 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3237 	 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3238 	{
3239 	 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3240 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3241 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3242 	 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3243 	{
3244 	 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3245 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3246 	 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3247 	 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3248 	{
3249 	 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3250 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3251 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3252 	 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3253 	{
3254 	 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3255 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3256 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3257 	 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3258 	{
3259 	 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3260 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3261 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3262 	 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3263 	{
3264 	 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3265 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3266 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3267 	 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3268 	{
3269 	 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3270 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3271 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3272 	 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3273 	{
3274 	 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3275 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3276 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3277 	 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3278 	{
3279 	 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3280 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3281 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3282 	 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3283 	{
3284 	 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3285 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3286 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3287 	 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3288 	{
3289 	 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3290 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3291 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3292 	 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3293 	{
3294 	 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3295 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3296 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3297 	 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3298 	{
3299 	 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3300 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3301 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3302 	 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3303 	{
3304 	 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3305 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3306 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3307 	 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3308 	{
3309 	 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3310 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3311 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3312 	 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3313 	{
3314 	 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3315 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3316 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3317 	 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3318 	{
3319 	 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3320 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3321 	 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3322 	 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3323 	{
3324 	 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3325 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3326 	 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3327 	 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3328 	{
3329 	 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3330 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3331 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3332 	 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3333 	{
3334 	 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3335 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3336 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3337 	 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3338 	{
3339 	 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3340 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3341 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3342 	 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3343 	{
3344 	 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3345 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3346 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3347 	 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3348 	{
3349 	 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3350 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3351 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3352 	 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3353 	{
3354 	 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3355 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3356 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3357 	 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3358 	{
3359 	 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3360 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3361 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3362 	 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3363 	{
3364 	 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3365 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3366 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3367 	 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3368 	{
3369 	 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3370 	 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3371 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3372 	 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3373 	{
3374 	 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3375 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3376 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3377 	 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3378 	{
3379 	 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3380 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3381 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3382 	 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3383 	{
3384 	 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3385 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3386 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3387 	 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3388 	{
3389 	 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3390 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3391 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3392 	 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3393 	{
3394 	 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3395 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3396 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3397 	 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3398 	{
3399 	 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3400 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3401 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3402 	 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3403 	{
3404 	 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3405 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3406 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3407 	 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3408 	{
3409 	 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3410 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3411 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3412 	 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3413 	{
3414 	 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3415 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3416 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3417 	 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3418 	{
3419 	 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3420 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3421 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3422 	 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3423 	{
3424 	 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3425 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3426 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3427 	 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3428 	{
3429 	 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3430 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3431 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3432 	 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3433 	{
3434 	 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3435 	 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3436 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3437 	 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3438 };
3439 
3440 static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3441 	{
3442 	 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3443 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3444 	 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3445 	 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3446 	{
3447 	 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3448 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3449 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3450 	 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3451 	{
3452 	 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3453 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3454 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3455 	 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3456 	{
3457 	 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3458 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3459 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3460 	 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3461 	{
3462 	 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3463 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3464 	 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3465 	 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3466 	{
3467 	 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3468 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3469 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3470 	 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3471 	{
3472 	 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3473 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3474 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3475 	 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3476 	{
3477 	 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3478 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3479 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3480 	 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3481 	{
3482 	 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3483 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3484 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3485 	 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3486 	{
3487 	 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3488 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3489 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3490 	 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3491 	{
3492 	 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3493 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3494 	 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3495 	 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3496 	{
3497 	 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3498 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3499 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3500 	 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3501 	{
3502 	 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3503 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3504 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3505 	 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3506 	{
3507 	 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3508 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3509 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3510 	 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3511 	{
3512 	 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3513 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3514 	 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3515 	 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3516 	{
3517 	 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3518 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3519 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3520 	 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3521 	{
3522 	 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3523 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3524 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3525 	 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3526 	{
3527 	 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3528 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3529 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3530 	 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3531 	{
3532 	 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3533 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3534 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3535 	 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3536 	{
3537 	 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3538 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3539 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3540 	 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3541 	{
3542 	 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3543 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3544 	 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3545 	 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3546 	{
3547 	 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3548 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3549 	 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3550 	 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3551 	{
3552 	 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3553 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3554 	 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3555 	 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3556 	{
3557 	 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3558 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3559 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3560 	 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3561 	{
3562 	 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3563 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3564 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3565 	 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3566 	{
3567 	 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3568 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3569 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3570 	 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3571 	{
3572 	 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3573 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3574 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3575 	 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3576 	{
3577 	 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3578 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3579 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3580 	 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3581 	{
3582 	 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3583 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3584 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3585 	 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3586 	{
3587 	 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3588 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3589 	 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3590 	 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3591 	{
3592 	 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3593 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3594 	 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3595 	 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3596 	{
3597 	 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3598 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3599 	 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3600 	 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3601 	{
3602 	 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3603 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3604 	 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3605 	 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3606 	{
3607 	 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3608 	 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3609 	 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3610 	 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3611 	{
3612 	 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3613 	 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3614 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3615 	 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3616 	{
3617 	 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3618 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3619 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3620 	 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3621 	{
3622 	 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3623 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3624 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3625 	 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3626 	{
3627 	 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3628 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3629 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3630 	 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3631 	{
3632 	 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3633 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3634 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3635 	 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3636 	{
3637 	 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3638 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3639 	 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3640 	 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3641 	{
3642 	 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3643 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3644 	 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3645 	 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3646 	{
3647 	 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3648 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3649 	 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3650 	 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3651 	{
3652 	 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3653 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3654 	 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3655 	 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3656 	{
3657 	 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3658 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3659 	 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3660 	 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3661 	{
3662 	 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3663 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3664 	 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3665 	 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3666 	{
3667 	 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3668 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3669 	 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3670 	 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3671 	{
3672 	 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3673 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3674 	 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3675 	 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3676 	{
3677 	 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3678 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3679 	 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3680 	 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3681 	{
3682 	 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3683 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3684 	 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3685 	 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3686 	{
3687 	 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3688 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3689 	 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3690 	 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3691 	{
3692 	 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3693 	 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3694 	 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3695 	 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3696 	{
3697 	 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3698 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3699 	 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3700 	 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3701 	{
3702 	 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3703 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3704 	 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3705 	 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3706 	{
3707 	 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3708 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3709 	 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3710 	 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3711 	{
3712 	 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3713 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3714 	 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3715 	 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3716 	{
3717 	 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3718 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3719 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3720 	 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3721 	{
3722 	 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3723 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3724 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3725 	 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3726 	{
3727 	 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3728 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3729 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3730 	 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3731 	{
3732 	 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3733 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3734 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3735 	 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3736 	{
3737 	 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3738 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3739 	 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3740 	 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3741 	{
3742 	 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3743 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3744 	 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3745 	 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3746 	{
3747 	 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3748 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3749 	 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3750 	 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3751 	{
3752 	 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3753 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3754 	 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3755 	 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3756 	{
3757 	 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3758 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3759 	 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3760 	 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3761 	{
3762 	 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3763 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3764 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3765 	 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3766 	{
3767 	 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3768 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3769 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3770 	 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3771 	{
3772 	 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3773 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3774 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3775 	 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3776 	{
3777 	 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3778 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3779 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3780 	 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3781 	{
3782 	 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3783 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3784 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3785 	 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3786 	{
3787 	 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3788 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3789 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3790 	 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3791 	{
3792 	 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3793 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3794 	 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3795 	 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3796 	{
3797 	 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3798 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3799 	 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3800 	 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3801 	{
3802 	 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3803 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3804 	 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3805 	 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3806 	{
3807 	 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3808 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3809 	 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3810 	 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3811 	{
3812 	 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3813 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3814 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3815 	 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3816 	{
3817 	 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3818 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3819 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3820 	 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3821 	{
3822 	 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3823 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3824 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3825 	 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3826 	{
3827 	 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3828 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3829 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3830 	 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3831 	{
3832 	 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3833 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3834 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3835 	 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3836 	{
3837 	 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3838 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3839 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3840 	 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3841 	{
3842 	 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3843 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3844 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3845 	 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3846 	{
3847 	 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3848 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3849 	 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3850 	 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3851 	{
3852 	 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3853 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3854 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3855 	 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3856 	{
3857 	 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3858 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3859 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3860 	 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3861 	{
3862 	 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3863 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3864 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3865 	 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3866 	{
3867 	 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3868 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3869 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3870 	 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3871 	{
3872 	 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3873 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3874 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3875 	 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3876 	{
3877 	 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3878 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3879 	 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3880 	 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3881 	{
3882 	 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3883 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3884 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3885 	 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3886 	{
3887 	 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3888 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3889 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3890 	 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3891 	{
3892 	 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3893 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3894 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3895 	 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3896 	{
3897 	 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3898 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3899 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3900 	 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3901 	{
3902 	 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3903 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3904 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3905 	 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3906 	{
3907 	 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3908 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3909 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3910 	 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3911 	{
3912 	 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3913 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3914 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3915 	 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3916 	{
3917 	 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3918 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3919 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3920 	 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3921 	{
3922 	 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3923 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3924 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3925 	 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3926 	{
3927 	 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3928 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3929 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3930 	 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3931 	{
3932 	 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3933 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3934 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3935 	 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3936 	{
3937 	 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3938 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3939 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3940 	 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3941 	{
3942 	 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3943 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3944 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3945 	 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3946 	{
3947 	 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3948 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3949 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3950 	 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3951 	{
3952 	 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3953 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3954 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3955 	 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3956 	{
3957 	 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3958 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3959 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3960 	 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3961 	{
3962 	 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3963 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3964 	 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3965 	 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3966 	{
3967 	 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3968 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3969 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3970 	 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3971 	{
3972 	 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3973 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3974 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3975 	 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3976 	{
3977 	 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3978 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3979 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3980 	 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3981 	{
3982 	 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3983 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3984 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3985 	 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3986 	{
3987 	 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3988 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3989 	 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3990 	 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3991 	{
3992 	 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3993 	 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3994 	 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3995 	 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3996 	{
3997 	 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3998 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3999 	 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4000 	 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4001 	{
4002 	 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4003 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
4004 	 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4005 	 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4006 	{
4007 	 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4008 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4009 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4010 	 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4011 	{
4012 	 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4013 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4014 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4015 	 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4016 	{
4017 	 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4018 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4019 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4020 	 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4021 	{
4022 	 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4023 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4024 	 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4025 	 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4026 	{
4027 	 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4028 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4029 	 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4030 	 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4031 	{
4032 	 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4033 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4034 	 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4035 	 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4036 	{
4037 	 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4038 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4039 	 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4040 	 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4041 	{
4042 	 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4043 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4044 	 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4045 	 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4046 	{
4047 	 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4048 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4049 	 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4050 	 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4051 	{
4052 	 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4053 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4054 	 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4055 	 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4056 	{
4057 	 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4058 	 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4059 	 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4060 	 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4061 };
4062 
4063 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4064 	{
4065 	 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4066 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4067 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4068 	 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4069 	{
4070 	 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4071 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4072 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4073 	 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4074 	{
4075 	 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4076 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4077 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4078 	 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4079 	{
4080 	 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4081 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4082 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4083 	 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4084 	{
4085 	 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4086 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4087 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4088 	 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4089 	{
4090 	 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4091 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4092 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4093 	 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4094 	{
4095 	 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4096 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4097 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4098 	 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4099 	{
4100 	 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4101 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4102 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4103 	 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4104 	{
4105 	 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4106 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4107 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4108 	 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4109 	{
4110 	 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4111 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4112 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4113 	 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4114 	{
4115 	 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4116 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4117 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4118 	 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4119 	{
4120 	 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4121 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4122 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4123 	 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4124 	{
4125 	 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4126 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4127 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4128 	 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4129 	{
4130 	 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4131 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4132 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4133 	 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4134 	{
4135 	 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4136 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4137 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4138 	 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4139 	{
4140 	 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4141 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4142 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4143 	 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4144 	{
4145 	 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4146 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4147 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4148 	 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4149 	{
4150 	 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4151 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4152 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4153 	 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4154 	{
4155 	 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4156 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4157 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4158 	 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4159 	{
4160 	 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4161 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4162 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4163 	 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4164 	{
4165 	 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4166 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4167 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4168 	 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4169 	{
4170 	 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4171 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4172 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4173 	 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4174 	{
4175 	 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4176 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4177 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4178 	 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4179 	{
4180 	 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4181 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4182 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4183 	 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4184 	{
4185 	 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4186 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4187 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4188 	 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4189 	{
4190 	 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4191 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4192 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4193 	 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4194 	{
4195 	 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4196 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4197 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4198 	 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4199 	{
4200 	 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4201 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4202 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4203 	 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4204 	{
4205 	 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4206 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4207 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4208 	 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4209 	{
4210 	 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4211 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4212 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4213 	 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4214 	{
4215 	 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4216 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4217 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4218 	 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4219 	{
4220 	 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4221 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4222 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4223 	 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4224 	{
4225 	 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4226 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4227 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4228 	 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4229 	{
4230 	 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4231 	 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4232 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4233 	 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4234 	{
4235 	 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4236 	 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4237 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4238 	 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4239 	{
4240 	 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4241 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4242 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4243 	 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4244 	{
4245 	 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4246 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4247 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4248 	 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4249 	{
4250 	 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4251 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4252 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4253 	 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4254 	{
4255 	 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4256 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4257 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4258 	 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4259 	{
4260 	 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4261 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4262 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4263 	 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4264 	{
4265 	 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4266 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4267 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4268 	 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4269 	{
4270 	 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4271 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4272 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4273 	 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4274 	{
4275 	 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4276 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4277 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4278 	 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4279 	{
4280 	 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4281 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4282 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4283 	 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4284 	{
4285 	 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4286 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4287 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4288 	 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4289 	{
4290 	 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4291 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4292 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4293 	 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4294 	{
4295 	 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4296 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4297 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4298 	 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4299 	{
4300 	 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4301 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4302 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4303 	 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4304 	{
4305 	 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4306 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4307 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4308 	 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4309 	{
4310 	 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4311 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4312 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4313 	 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4314 	{
4315 	 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4316 	 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4317 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4318 	 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4319 	{
4320 	 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4321 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4322 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4323 	 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4324 	{
4325 	 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4326 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4327 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4328 	 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4329 	{
4330 	 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4331 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4332 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4333 	 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4334 	{
4335 	 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4336 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4337 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4338 	 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4339 	{
4340 	 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4341 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4342 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4343 	 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4344 	{
4345 	 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4346 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4347 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4348 	 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4349 	{
4350 	 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4351 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4352 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4353 	 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4354 	{
4355 	 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4356 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4357 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4358 	 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4359 	{
4360 	 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4361 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4362 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4363 	 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4364 	{
4365 	 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4366 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4367 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4368 	 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4369 	{
4370 	 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4371 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4372 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4373 	 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4374 	{
4375 	 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4376 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4377 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4378 	 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4379 	{
4380 	 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4381 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4382 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4383 	 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4384 	{
4385 	 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4386 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4387 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4388 	 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4389 	{
4390 	 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4391 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4392 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4393 	 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4394 	{
4395 	 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4396 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4397 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4398 	 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4399 	{
4400 	 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4401 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4402 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4403 	 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4404 	{
4405 	 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4406 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4407 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4408 	 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4409 	{
4410 	 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4411 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4412 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4413 	 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4414 	{
4415 	 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4416 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4417 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4418 	 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4419 	{
4420 	 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4421 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4422 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4423 	 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4424 	{
4425 	 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4426 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4427 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4428 	 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4429 	{
4430 	 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4431 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4432 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4433 	 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4434 	{
4435 	 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4436 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4437 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4438 	 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4439 	{
4440 	 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4441 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4442 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4443 	 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4444 	{
4445 	 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4446 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4447 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4448 	 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4449 	{
4450 	 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4451 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4452 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4453 	 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4454 	{
4455 	 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4456 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4457 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4458 	 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4459 	{
4460 	 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4461 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4462 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4463 	 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4464 	{
4465 	 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4466 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4467 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4468 	 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4469 	{
4470 	 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4471 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4472 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4473 	 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4474 	{
4475 	 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4476 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4477 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4478 	 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4479 	{
4480 	 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4481 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4482 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4483 	 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4484 	{
4485 	 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4486 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4487 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4488 	 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4489 	{
4490 	 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4491 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4492 	 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4493 	 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4494 	{
4495 	 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4496 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4497 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4498 	 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4499 	{
4500 	 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4501 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4502 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4503 	 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4504 	{
4505 	 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4506 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4507 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4508 	 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4509 	{
4510 	 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4511 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4512 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4513 	 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4514 	{
4515 	 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4516 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4517 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4518 	 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4519 	{
4520 	 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4521 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4522 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4523 	 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4524 	{
4525 	 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4526 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4527 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4528 	 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4529 	{
4530 	 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4531 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4532 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4533 	 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4534 	{
4535 	 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4536 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4537 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4538 	 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4539 	{
4540 	 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4541 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4542 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4543 	 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4544 	{
4545 	 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4546 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4547 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4548 	 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4549 	{
4550 	 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4551 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4552 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4553 	 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4554 	{
4555 	 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4556 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4557 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4558 	 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4559 	{
4560 	 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4561 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4562 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4563 	 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4564 	{
4565 	 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4566 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4567 	 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4568 	 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4569 	{
4570 	 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4571 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4572 	 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4573 	 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4574 	{
4575 	 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4576 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4577 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4578 	 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4579 	{
4580 	 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4581 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4582 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4583 	 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4584 	{
4585 	 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4586 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4587 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4588 	 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4589 	{
4590 	 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4591 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4592 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4593 	 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4594 	{
4595 	 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4596 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4597 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4598 	 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4599 	{
4600 	 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4601 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4602 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4603 	 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4604 	{
4605 	 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4606 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4607 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4608 	 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4609 	{
4610 	 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4611 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4612 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4613 	 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4614 	{
4615 	 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4616 	 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4617 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4618 	 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4619 	{
4620 	 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4621 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4622 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4623 	 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4624 	{
4625 	 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4626 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4627 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4628 	 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4629 	{
4630 	 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4631 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4632 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4633 	 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4634 	{
4635 	 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4636 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4637 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4638 	 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4639 	{
4640 	 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4641 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4642 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4643 	 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4644 	{
4645 	 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4646 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4647 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4648 	 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4649 	{
4650 	 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4651 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4652 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4653 	 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4654 	{
4655 	 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4656 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4657 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4658 	 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4659 	{
4660 	 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4661 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4662 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4663 	 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4664 	{
4665 	 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4666 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4667 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4668 	 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4669 	{
4670 	 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4671 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4672 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4673 	 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4674 	{
4675 	 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4676 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4677 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4678 	 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4679 	{
4680 	 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4681 	 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4682 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4683 	 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4684 };
4685 
4686 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4687 	{
4688 	 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4689 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4690 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4691 	 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4692 	{
4693 	 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4694 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4695 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4696 	 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4697 	{
4698 	 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4699 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4700 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4701 	 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4702 	{
4703 	 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4704 	 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4705 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4706 	 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4707 	{
4708 	 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4709 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4710 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4711 	 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4712 	{
4713 	 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4714 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4715 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4716 	 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4717 	{
4718 	 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4719 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4720 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4721 	 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4722 	{
4723 	 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4724 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4725 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4726 	 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4727 	{
4728 	 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4729 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4730 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4731 	 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4732 	{
4733 	 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4734 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4735 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4736 	 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4737 	{
4738 	 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4739 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4740 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4741 	 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4742 	{
4743 	 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4744 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4745 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4746 	 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4747 	{
4748 	 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4749 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4750 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4751 	 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4752 	{
4753 	 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4754 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4755 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4756 	 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4757 	{
4758 	 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4759 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4760 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4761 	 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4762 	{
4763 	 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4764 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4765 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4766 	 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4767 	{
4768 	 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4769 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4770 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4771 	 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4772 	{
4773 	 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4774 	 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4775 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4776 	 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4777 	{
4778 	 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4779 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4780 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4781 	 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4782 	{
4783 	 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4784 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4785 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4786 	 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4787 	{
4788 	 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4789 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4790 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4791 	 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4792 	{
4793 	 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4794 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4795 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4796 	 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4797 	{
4798 	 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4799 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4800 	 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4801 	 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4802 	{
4803 	 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4804 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4805 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4806 	 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4807 	{
4808 	 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4809 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4810 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4811 	 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4812 	{
4813 	 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4814 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4815 	 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4816 	 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4817 	{
4818 	 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4819 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4820 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4821 	 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4822 	{
4823 	 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4824 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4825 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4826 	 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4827 	{
4828 	 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4829 	 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4830 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4831 	 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4832 	{
4833 	 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4834 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4835 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4836 	 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4837 	{
4838 	 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4839 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4840 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4841 	 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4842 	{
4843 	 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4844 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4845 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4846 	 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4847 	{
4848 	 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4849 	 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4850 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4851 	 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4852 	{
4853 	 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4854 	 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4855 	 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4856 	 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4857 	{
4858 	 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4859 	 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4860 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4861 	 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4862 	{
4863 	 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4864 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4865 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4866 	 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4867 	{
4868 	 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4869 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4870 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4871 	 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4872 	{
4873 	 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4874 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4875 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4876 	 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4877 	{
4878 	 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4879 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4880 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4881 	 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4882 	{
4883 	 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4884 	 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4885 	 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4886 	 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4887 	{
4888 	 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4889 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4890 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4891 	 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4892 	{
4893 	 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4894 	 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4895 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4896 	 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4897 	{
4898 	 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4899 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4900 	 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4901 	 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4902 	{
4903 	 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4904 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4905 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4906 	 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4907 	{
4908 	 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4909 	 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4910 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4911 	 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4912 	{
4913 	 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4914 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4915 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4916 	 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4917 	{
4918 	 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4919 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4920 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4921 	 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4922 	{
4923 	 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4924 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4925 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4926 	 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4927 	{
4928 	 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4929 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4930 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4931 	 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4932 	{
4933 	 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4934 	 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4935 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4936 	 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4937 	{
4938 	 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4939 	 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4940 	 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4941 	 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4942 	{
4943 	 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4944 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4945 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4946 	 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4947 	{
4948 	 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4949 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4950 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4951 	 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4952 	{
4953 	 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4954 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4955 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4956 	 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4957 	{
4958 	 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4959 	 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4960 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4961 	 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4962 	{
4963 	 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4964 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4965 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4966 	 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4967 	{
4968 	 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4969 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4970 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4971 	 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4972 	{
4973 	 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4974 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4975 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4976 	 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4977 	{
4978 	 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4979 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4980 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4981 	 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4982 	{
4983 	 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4984 	 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4985 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4986 	 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4987 	{
4988 	 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4989 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4990 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4991 	 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4992 	{
4993 	 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4994 	 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4995 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4996 	 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4997 	{
4998 	 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4999 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5000 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5001 	 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
5002 	{
5003 	 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5004 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5005 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5006 	 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
5007 	{
5008 	 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5009 	 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5010 	 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5011 	 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5012 	{
5013 	 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5014 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5015 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5016 	 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5017 	{
5018 	 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5019 	 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5020 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5021 	 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5022 	{
5023 	 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5024 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5025 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5026 	 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5027 	{
5028 	 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5029 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5030 	 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5031 	 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5032 	{
5033 	 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5034 	 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5035 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5036 	 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5037 	{
5038 	 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5039 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5040 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5041 	 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5042 	{
5043 	 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5044 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5045 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5046 	 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5047 	{
5048 	 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5049 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5050 	 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5051 	 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5052 	{
5053 	 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5054 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5055 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5056 	 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5057 	{
5058 	 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5059 	 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5060 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5061 	 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5062 	{
5063 	 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5064 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5065 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5066 	 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5067 	{
5068 	 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5069 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5070 	 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5071 	 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5072 	{
5073 	 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5074 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5075 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5076 	 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5077 	{
5078 	 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5079 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5080 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5081 	 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5082 	{
5083 	 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5084 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5085 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5086 	 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5087 	{
5088 	 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5089 	 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5090 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5091 	 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5092 	{
5093 	 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5094 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5095 	 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5096 	 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5097 	{
5098 	 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5099 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5100 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5101 	 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5102 	{
5103 	 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5104 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5105 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5106 	 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5107 	{
5108 	 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5109 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5110 	 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5111 	 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5112 	{
5113 	 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5114 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5115 	 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5116 	 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5117 	{
5118 	 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5119 	 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5120 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5121 	 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5122 	{
5123 	 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5124 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5125 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5126 	 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5127 	{
5128 	 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5129 	 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5130 	 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5131 	 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5132 	{
5133 	 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5134 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5135 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5136 	 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5137 	{
5138 	 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5139 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5140 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5141 	 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5142 	{
5143 	 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5144 	 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5145 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5146 	 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5147 	{
5148 	 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5149 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5150 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5151 	 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5152 	{
5153 	 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5154 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5155 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5156 	 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5157 	{
5158 	 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5159 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5160 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5161 	 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5162 	{
5163 	 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5164 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5165 	 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5166 	 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5167 	{
5168 	 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5169 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5170 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5171 	 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5172 	{
5173 	 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5174 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5175 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5176 	 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5177 	{
5178 	 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5179 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5180 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5181 	 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5182 	{
5183 	 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5184 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5185 	 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5186 	 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5187 	{
5188 	 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5189 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5190 	 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5191 	 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5192 	{
5193 	 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5194 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5195 	 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5196 	 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5197 	{
5198 	 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5199 	 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5200 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5201 	 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5202 	{
5203 	 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5204 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5205 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5206 	 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5207 	{
5208 	 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5209 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5210 	 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5211 	 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5212 	{
5213 	 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5214 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5215 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5216 	 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5217 	{
5218 	 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5219 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5220 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5221 	 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5222 	{
5223 	 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5224 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5225 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5226 	 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5227 	{
5228 	 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5229 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5230 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5231 	 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5232 	{
5233 	 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5234 	 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5235 	 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5236 	 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5237 	{
5238 	 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5239 	 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5240 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5241 	 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5242 	{
5243 	 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5244 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5245 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5246 	 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5247 	{
5248 	 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5249 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5250 	 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5251 	 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5252 	{
5253 	 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5254 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5255 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5256 	 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5257 	{
5258 	 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5259 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5260 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5261 	 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5262 	{
5263 	 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5264 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5265 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5266 	 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5267 	{
5268 	 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5269 	 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5270 	 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5271 	 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5272 	{
5273 	 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5274 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5275 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5276 	 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5277 	{
5278 	 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5279 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5280 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5281 	 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5282 	{
5283 	 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5284 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5285 	 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5286 	 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5287 	{
5288 	 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5289 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5290 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5291 	 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5292 	{
5293 	 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5294 	 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5295 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5296 	 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5297 	{
5298 	 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5299 	 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5300 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5301 	 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5302 	{
5303 	 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5304 	 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5305 	 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5306 	 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5307 };
5308 
5309 static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5310 	{
5311 	 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5312 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5313 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5314 	 0x0215,
5315 	 0x0216,
5316 	 },
5317 	{
5318 	 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5319 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5320 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5321 	 0x0214,
5322 	 0x0215,
5323 	 },
5324 	{
5325 	 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5326 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5327 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5328 	 0x0213,
5329 	 0x0214,
5330 	 },
5331 	{
5332 	 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5333 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5334 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5335 	 0x0212,
5336 	 0x0213,
5337 	 },
5338 	{
5339 	 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5340 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5341 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5342 	 0x0211,
5343 	 0x0212,
5344 	 },
5345 	{
5346 	 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5347 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5348 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5349 	 0x020f,
5350 	 0x0211,
5351 	 },
5352 	{
5353 	 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5354 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5355 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5356 	 0x020e,
5357 	 0x020f,
5358 	 },
5359 	{
5360 	 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5361 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5362 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5363 	 0x020d,
5364 	 0x020e,
5365 	 },
5366 	{
5367 	 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5368 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5369 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5370 	 0x020c,
5371 	 0x020d,
5372 	 },
5373 	{
5374 	 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5375 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5376 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5377 	 0x020b,
5378 	 0x020c,
5379 	 },
5380 	{
5381 	 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5382 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5383 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5384 	 0x020a,
5385 	 0x020b,
5386 	 },
5387 	{
5388 	 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5389 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5390 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5391 	 0x0209,
5392 	 0x020a,
5393 	 },
5394 	{
5395 	 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5396 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5397 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5398 	 0x0208,
5399 	 0x0209,
5400 	 },
5401 	{
5402 	 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5403 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5404 	 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5405 	 0x0207,
5406 	 0x0208,
5407 	 },
5408 	{
5409 	 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5410 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5411 	 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5412 	 0x0206,
5413 	 0x0207,
5414 	 },
5415 	{
5416 	 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5417 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5418 	 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5419 	 0x0205,
5420 	 0x0206,
5421 	 },
5422 	{
5423 	 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5424 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5425 	 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5426 	 0x0204,
5427 	 0x0205,
5428 	 },
5429 	{
5430 	 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5431 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5432 	 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5433 	 0x0203,
5434 	 0x0204,
5435 	 },
5436 	{
5437 	 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5438 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5439 	 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5440 	 0x0202,
5441 	 0x0203,
5442 	 },
5443 	{
5444 	 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5445 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5446 	 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5447 	 0x0201,
5448 	 0x0202,
5449 	 },
5450 	{
5451 	 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5452 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5453 	 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5454 	 0x0200,
5455 	 0x0201,
5456 	 },
5457 	{
5458 	 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5459 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5460 	 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5461 	 0x01ff,
5462 	 0x0200,
5463 	 },
5464 	{
5465 	 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5466 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5467 	 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5468 	 0x01fe,
5469 	 0x01ff,
5470 	 },
5471 	{
5472 	 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5473 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5474 	 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5475 	 0x01fc,
5476 	 0x01fd,
5477 	 },
5478 	{
5479 	 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5480 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5481 	 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5482 	 0x01fb,
5483 	 0x01fc,
5484 	 },
5485 	{
5486 	 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5487 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5488 	 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5489 	 0x01fa,
5490 	 0x01fb,
5491 	 },
5492 	{
5493 	 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5494 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5495 	 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5496 	 0x01f9,
5497 	 0x01fa,
5498 	 },
5499 	{
5500 	 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5501 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5502 	 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5503 	 0x01f8,
5504 	 0x01f9,
5505 	 },
5506 	{
5507 	 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5508 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5509 	 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5510 	 0x01f7,
5511 	 0x01f8,
5512 	 },
5513 	{
5514 	 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5515 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5516 	 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5517 	 0x01f6,
5518 	 0x01f7,
5519 	 },
5520 	{
5521 	 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5522 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5523 	 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5524 	 0x01f5,
5525 	 0x01f6,
5526 	 },
5527 	{
5528 	 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5529 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5530 	 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5531 	 0x01f4,
5532 	 0x01f5,
5533 	 },
5534 	{
5535 	 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5536 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5537 	 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5538 	 0x01f3,
5539 	 0x01f4,
5540 	 },
5541 	{
5542 	 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5543 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5544 	 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5545 	 0x01f2,
5546 	 0x01f3,
5547 	 },
5548 	{
5549 	 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5550 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5551 	 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5552 	 0x01f1,
5553 	 0x01f2,
5554 	 },
5555 	{
5556 	 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5557 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5558 	 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5559 	 0x01f0,
5560 	 0x01f1,
5561 	 },
5562 	{
5563 	 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5564 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5565 	 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5566 	 0x01f0,
5567 	 0x01f0,
5568 	 },
5569 	{
5570 	 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5571 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5572 	 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5573 	 0x01ef,
5574 	 0x01f0,
5575 	 },
5576 	{
5577 	 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5578 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5579 	 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5580 	 0x01ee,
5581 	 0x01ef,
5582 	 },
5583 	{
5584 	 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5585 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5586 	 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5587 	 0x01ed,
5588 	 0x01ee,
5589 	 },
5590 	{
5591 	 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5592 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5593 	 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5594 	 0x01ec,
5595 	 0x01ed,
5596 	 },
5597 	{
5598 	 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5599 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5600 	 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5601 	 0x01eb,
5602 	 0x01ec,
5603 	 },
5604 	{
5605 	 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5606 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5607 	 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5608 	 0x01ea,
5609 	 0x01eb,
5610 	 },
5611 	{
5612 	 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5613 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5614 	 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5615 	 0x01e9,
5616 	 0x01ea,
5617 	 },
5618 	{
5619 	 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5620 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5621 	 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5622 	 0x01e8,
5623 	 0x01e9,
5624 	 },
5625 	{
5626 	 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5627 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5628 	 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5629 	 0x01e7,
5630 	 0x01e8,
5631 	 },
5632 	{
5633 	 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5634 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5635 	 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5636 	 0x01e6,
5637 	 0x01e7,
5638 	 },
5639 	{
5640 	 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5641 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5642 	 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5643 	 0x01e5,
5644 	 0x01e6,
5645 	 },
5646 	{
5647 	 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5648 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5649 	 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5650 	 0x01e5,
5651 	 0x01e5,
5652 	 },
5653 	{
5654 	 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5655 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5656 	 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5657 	 0x01e4,
5658 	 0x01e5,
5659 	 },
5660 	{
5661 	 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5662 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5663 	 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5664 	 0x01e3,
5665 	 0x01e4,
5666 	 },
5667 	{
5668 	 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5669 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5670 	 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5671 	 0x01e2,
5672 	 0x01e3,
5673 	 },
5674 	{
5675 	 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5676 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5677 	 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5678 	 0x01e1,
5679 	 0x01e2,
5680 	 },
5681 	{
5682 	 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5683 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5684 	 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5685 	 0x01e0,
5686 	 0x01e1,
5687 	 },
5688 	{
5689 	 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5690 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5691 	 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5692 	 0x01df,
5693 	 0x01e0,
5694 	 },
5695 	{
5696 	 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5697 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5698 	 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5699 	 0x01de,
5700 	 0x01df,
5701 	 },
5702 	{
5703 	 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5704 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5705 	 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5706 	 0x01dd,
5707 	 0x01de,
5708 	 },
5709 	{
5710 	 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5711 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5712 	 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5713 	 0x01dd,
5714 	 0x01dd,
5715 	 },
5716 	{
5717 	 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5718 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5719 	 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5720 	 0x01dc,
5721 	 0x01dd,
5722 	 },
5723 	{
5724 	 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5725 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5726 	 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5727 	 0x01db,
5728 	 0x01dc,
5729 	 },
5730 	{
5731 	 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5732 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5733 	 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5734 	 0x01da,
5735 	 0x01db,
5736 	 },
5737 	{
5738 	 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5739 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5740 	 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5741 	 0x01d9,
5742 	 0x01da,
5743 	 },
5744 	{
5745 	 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5746 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5747 	 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5748 	 0x01d8,
5749 	 0x01d9,
5750 	 },
5751 	{
5752 	 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5753 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5754 	 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5755 	 0x01d7,
5756 	 0x01d8,
5757 	 },
5758 	{
5759 	 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5760 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5761 	 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5762 	 0x01d7,
5763 	 0x01d7,
5764 	 },
5765 	{
5766 	 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5767 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5768 	 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5769 	 0x01d6,
5770 	 0x01d7,
5771 	 },
5772 	{
5773 	 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5774 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5775 	 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5776 	 0x01d5,
5777 	 0x01d6,
5778 	 },
5779 	{
5780 	 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5781 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5782 	 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5783 	 0x01d4,
5784 	 0x01d5,
5785 	 },
5786 	{
5787 	 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5788 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5789 	 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5790 	 0x01d3,
5791 	 0x01d4,
5792 	 },
5793 	{
5794 	 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5795 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5796 	 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5797 	 0x01d2,
5798 	 0x01d3,
5799 	 },
5800 	{
5801 	 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5802 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5803 	 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5804 	 0x01d2,
5805 	 0x01d2,
5806 	 },
5807 	{
5808 	 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5809 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5810 	 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5811 	 0x01d1,
5812 	 0x01d2,
5813 	 },
5814 	{
5815 	 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5816 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5817 	 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5818 	 0x01d0,
5819 	 0x01d1,
5820 	 },
5821 	{
5822 	 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5823 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5824 	 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5825 	 0x01cf,
5826 	 0x01d0,
5827 	 },
5828 	{
5829 	 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5830 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5831 	 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5832 	 0x01ce,
5833 	 0x01cf,
5834 	 },
5835 	{
5836 	 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5837 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5838 	 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5839 	 0x01ce,
5840 	 0x01ce,
5841 	 },
5842 	{
5843 	 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5844 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5845 	 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5846 	 0x01cd,
5847 	 0x01ce,
5848 	 },
5849 	{
5850 	 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5851 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5852 	 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5853 	 0x01cc,
5854 	 0x01cd,
5855 	 },
5856 	{
5857 	 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5858 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5859 	 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5860 	 0x01cb,
5861 	 0x01cc,
5862 	 },
5863 	{
5864 	 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5865 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5866 	 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5867 	 0x01ca,
5868 	 0x01cb,
5869 	 },
5870 	{
5871 	 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5872 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5873 	 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5874 	 0x01ca,
5875 	 0x01cb,
5876 	 },
5877 	{
5878 	 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5879 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5880 	 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5881 	 0x01c9,
5882 	 0x01ca,
5883 	 },
5884 	{
5885 	 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5886 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5887 	 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5888 	 0x01c9,
5889 	 0x01ca,
5890 	 },
5891 	{
5892 	 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5893 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5894 	 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5895 	 0x01c9,
5896 	 0x01c9,
5897 	 },
5898 	{
5899 	 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5900 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5901 	 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5902 	 0x01c8,
5903 	 0x01c9,
5904 	 },
5905 	{
5906 	 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5907 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5908 	 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5909 	 0x01c8,
5910 	 0x01c9,
5911 	 },
5912 	{
5913 	 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5914 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5915 	 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5916 	 0x01c8,
5917 	 0x01c8,
5918 	 },
5919 	{
5920 	 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5921 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5922 	 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5923 	 0x01c7,
5924 	 0x01c8,
5925 	 },
5926 	{
5927 	 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5928 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5929 	 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5930 	 0x01c7,
5931 	 0x01c8,
5932 	 },
5933 	{
5934 	 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5935 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5936 	 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5937 	 0x01c6,
5938 	 0x01c7,
5939 	 },
5940 	{
5941 	 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5942 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5943 	 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5944 	 0x01c6,
5945 	 0x01c7,
5946 	 },
5947 	{
5948 	 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5949 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5950 	 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5951 	 0x01c6,
5952 	 0x01c6,
5953 	 },
5954 	{
5955 	 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5956 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5957 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5958 	 0x01c5,
5959 	 0x01c6,
5960 	 },
5961 	{
5962 	 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5963 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5964 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5965 	 0x01c5,
5966 	 0x01c6,
5967 	 },
5968 	{
5969 	 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5970 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5971 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5972 	 0x01c4,
5973 	 0x01c5,
5974 	 },
5975 	{
5976 	 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5977 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5978 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5979 	 0x01c4,
5980 	 0x01c5,
5981 	 },
5982 	{
5983 	 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5984 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5985 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5986 	 0x01c4,
5987 	 0x01c4,
5988 	 },
5989 	{
5990 	 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5991 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5992 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5993 	 0x01c3,
5994 	 0x01c4,
5995 	 },
5996 	{
5997 	 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5998 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5999 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6000 	 0x01c3,
6001 	 0x01c4,
6002 	 },
6003 	{
6004 	 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6005 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6006 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6007 	 0x01c2,
6008 	 0x01c3,
6009 	 },
6010 	{
6011 	 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6012 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6013 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6014 	 0x01c2,
6015 	 0x01c3,
6016 	 },
6017 	{
6018 	 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6019 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6020 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6021 	 0x01c2,
6022 	 0x01c2,
6023 	 },
6024 	{
6025 	 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6026 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6027 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6028 	 0x01c1,
6029 	 0x01c2,
6030 	 },
6031 	{
6032 	 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6033 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6034 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6035 	 0x01c0,
6036 	 0x01c1,
6037 	 },
6038 	{
6039 	 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6040 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6041 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6042 	 0x01bf,
6043 	 0x01c0,
6044 	 },
6045 	{
6046 	 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6047 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6048 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6049 	 0x01bf,
6050 	 0x01bf,
6051 	 },
6052 	{
6053 	 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6054 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6055 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6056 	 0x01be,
6057 	 0x01bf,
6058 	 },
6059 	{
6060 	 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6061 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6062 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6063 	 0x01bd,
6064 	 0x01be,
6065 	 },
6066 	{
6067 	 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6068 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6069 	 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6070 	 0x01bc,
6071 	 0x01bd,
6072 	 },
6073 	{
6074 	 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6075 	 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6076 	 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6077 	 0x043f,
6078 	 0x0443,
6079 	 },
6080 	{
6081 	 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6082 	 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6083 	 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6084 	 0x043d,
6085 	 0x0441,
6086 	 },
6087 	{
6088 	 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6089 	 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6090 	 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6091 	 0x043a,
6092 	 0x043f,
6093 	 },
6094 	{
6095 	 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6096 	 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6097 	 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6098 	 0x0438,
6099 	 0x043d,
6100 	 },
6101 	{
6102 	 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6103 	 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6104 	 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6105 	 0x0436,
6106 	 0x043a,
6107 	 },
6108 	{
6109 	 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6110 	 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6111 	 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6112 	 0x0434,
6113 	 0x0438,
6114 	 },
6115 	{
6116 	 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6117 	 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6118 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6119 	 0x0431,
6120 	 0x0436,
6121 	 },
6122 	{
6123 	 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6124 	 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6125 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6126 	 0x042f,
6127 	 0x0434,
6128 	 },
6129 	{
6130 	 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6131 	 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6132 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6133 	 0x042d,
6134 	 0x0431,
6135 	 },
6136 	{
6137 	 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6138 	 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6139 	 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6140 	 0x042b,
6141 	 0x042f,
6142 	 },
6143 	{
6144 	 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6145 	 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6146 	 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6147 	 0x0429,
6148 	 0x042d,
6149 	 },
6150 	{
6151 	 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6152 	 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6153 	 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6154 	 0x0427,
6155 	 0x042b,
6156 	 },
6157 	{
6158 	 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6159 	 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6160 	 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6161 	 0x0424,
6162 	 0x0429,
6163 	 },
6164 	{
6165 	 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6166 	 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6167 	 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6168 	 0x041f,
6169 	 0x0424}
6170 };
6171 
6172 static const struct chan_info_nphy_radio2057_rev5
6173 chan_info_nphyrev8_2057_rev5[] = {
6174 	{
6175 	 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6176 	 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6177 	 0x043a, 0x043f, 0x0443},
6178 	{
6179 	 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6180 	 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6181 	 0x0438, 0x043d, 0x0441},
6182 	{
6183 	 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6184 	 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6185 	 0x0436, 0x043a, 0x043f},
6186 	{
6187 	 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6188 	 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6189 	 0x0434, 0x0438, 0x043d},
6190 	{
6191 	 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6192 	 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6193 	 0x0431, 0x0436, 0x043a},
6194 	{
6195 	 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6196 	 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6197 	 0x042f, 0x0434, 0x0438},
6198 	{
6199 	 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6200 	 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6201 	 0x042d, 0x0431, 0x0436},
6202 	{
6203 	 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6204 	 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6205 	 0x042b, 0x042f, 0x0434},
6206 	{
6207 	 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6208 	 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6209 	 0x0429, 0x042d, 0x0431},
6210 	{
6211 	 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6212 	 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6213 	 0x0427, 0x042b, 0x042f},
6214 	{
6215 	 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6216 	 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6217 	 0x0424, 0x0429, 0x042d},
6218 	{
6219 	 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6220 	 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6221 	 0x0422, 0x0427, 0x042b},
6222 	{
6223 	 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6224 	 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6225 	 0x0420, 0x0424, 0x0429},
6226 	{
6227 	 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6228 	 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6229 	 0x041b, 0x041f, 0x0424}
6230 };
6231 
6232 static const struct chan_info_nphy_radio2057_rev5
6233 chan_info_nphyrev9_2057_rev5v1[] = {
6234 	{
6235 	 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6236 	 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6237 	 0x043a, 0x043f, 0x0443},
6238 	{
6239 	 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6240 	 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6241 	 0x0438, 0x043d, 0x0441},
6242 	{
6243 	 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6244 	 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6245 	 0x0436, 0x043a, 0x043f},
6246 	{
6247 	 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6248 	 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6249 	 0x0434, 0x0438, 0x043d},
6250 	{
6251 	 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6252 	 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6253 	 0x0431, 0x0436, 0x043a},
6254 	{
6255 	 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6256 	 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6257 	 0x042f, 0x0434, 0x0438},
6258 	{
6259 	 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6260 	 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6261 	 0x042d, 0x0431, 0x0436},
6262 	{
6263 	 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6264 	 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6265 	 0x042b, 0x042f, 0x0434},
6266 	{
6267 	 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6268 	 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6269 	 0x0429, 0x042d, 0x0431},
6270 	{
6271 	 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6272 	 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6273 	 0x0427, 0x042b, 0x042f},
6274 	{
6275 	 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6276 	 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6277 	 0x0424, 0x0429, 0x042d},
6278 	{
6279 	 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6280 	 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6281 	 0x0422, 0x0427, 0x042b},
6282 	{
6283 	 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6284 	 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6285 	 0x0420, 0x0424, 0x0429},
6286 	{
6287 	 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6288 	 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6289 	 0x041b, 0x041f, 0x0424}
6290 };
6291 
6292 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6293 	{
6294 	 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6295 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6296 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6297 	 0x0215,
6298 	 0x0216},
6299 	{
6300 	 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6301 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6302 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6303 	 0x0214,
6304 	 0x0215},
6305 	{
6306 	 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6307 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6308 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6309 	 0x0213,
6310 	 0x0214},
6311 	{
6312 	 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6313 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6314 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6315 	 0x0212,
6316 	 0x0213},
6317 	{
6318 	 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6319 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6320 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6321 	 0x0211,
6322 	 0x0212},
6323 	{
6324 	 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6325 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6326 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6327 	 0x020f,
6328 	 0x0211},
6329 	{
6330 	 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6331 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6332 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6333 	 0x020e,
6334 	 0x020f},
6335 	{
6336 	 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6337 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6338 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6339 	 0x020d,
6340 	 0x020e},
6341 	{
6342 	 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6343 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6344 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6345 	 0x020c,
6346 	 0x020d},
6347 	{
6348 	 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6349 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6350 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6351 	 0x020b,
6352 	 0x020c},
6353 	{
6354 	 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6355 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6356 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6357 	 0x020a,
6358 	 0x020b},
6359 	{
6360 	 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6361 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6362 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6363 	 0x0209,
6364 	 0x020a},
6365 	{
6366 	 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6367 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6368 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6369 	 0x0208,
6370 	 0x0209},
6371 	{
6372 	 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6373 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6374 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6375 	 0x0207,
6376 	 0x0208},
6377 	{
6378 	 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6379 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6380 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6381 	 0x0206,
6382 	 0x0207},
6383 	{
6384 	 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6385 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6386 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6387 	 0x0205,
6388 	 0x0206},
6389 	{
6390 	 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6391 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6392 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6393 	 0x0204,
6394 	 0x0205},
6395 	{
6396 	 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6397 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6398 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6399 	 0x0203,
6400 	 0x0204},
6401 	{
6402 	 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6403 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6404 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6405 	 0x0202,
6406 	 0x0203},
6407 	{
6408 	 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6409 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6410 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6411 	 0x0201,
6412 	 0x0202},
6413 	{
6414 	 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6415 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6416 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6417 	 0x0200,
6418 	 0x0201},
6419 	{
6420 	 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6421 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6422 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6423 	 0x01ff,
6424 	 0x0200},
6425 	{
6426 	 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6427 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6428 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6429 	 0x01fe,
6430 	 0x01ff},
6431 	{
6432 	 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6433 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6434 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6435 	 0x01fc,
6436 	 0x01fd},
6437 	{
6438 	 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6439 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6440 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6441 	 0x01fb,
6442 	 0x01fc},
6443 	{
6444 	 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6445 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6446 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6447 	 0x01fa,
6448 	 0x01fb},
6449 	{
6450 	 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6451 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6452 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6453 	 0x01f9,
6454 	 0x01fa},
6455 	{
6456 	 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6457 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6458 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6459 	 0x01f8,
6460 	 0x01f9},
6461 	{
6462 	 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6463 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6464 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6465 	 0x01f7,
6466 	 0x01f8},
6467 	{
6468 	 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6469 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6470 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6471 	 0x01f6,
6472 	 0x01f7},
6473 	{
6474 	 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6475 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6476 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6477 	 0x01f5,
6478 	 0x01f6},
6479 	{
6480 	 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6481 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6482 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6483 	 0x01f4,
6484 	 0x01f5},
6485 	{
6486 	 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6487 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6488 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6489 	 0x01f3,
6490 	 0x01f4},
6491 	{
6492 	 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6493 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6494 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6495 	 0x01f2,
6496 	 0x01f3},
6497 	{
6498 	 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6499 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6500 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6501 	 0x01f1,
6502 	 0x01f2},
6503 	{
6504 	 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6505 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6506 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6507 	 0x01f0,
6508 	 0x01f1},
6509 	{
6510 	 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6511 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6512 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6513 	 0x01f0,
6514 	 0x01f0},
6515 	{
6516 	 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6517 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6518 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6519 	 0x01ef,
6520 	 0x01f0},
6521 	{
6522 	 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6523 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6524 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6525 	 0x01ee,
6526 	 0x01ef},
6527 	{
6528 	 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6529 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6530 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6531 	 0x01ed,
6532 	 0x01ee},
6533 	{
6534 	 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6535 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6536 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6537 	 0x01ec,
6538 	 0x01ed},
6539 	{
6540 	 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6541 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6542 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6543 	 0x01eb,
6544 	 0x01ec},
6545 	{
6546 	 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6547 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6548 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6549 	 0x01ea,
6550 	 0x01eb},
6551 	{
6552 	 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6553 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6554 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6555 	 0x01e9,
6556 	 0x01ea},
6557 	{
6558 	 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6559 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6560 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6561 	 0x01e8,
6562 	 0x01e9},
6563 	{
6564 	 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6565 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6566 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6567 	 0x01e7,
6568 	 0x01e8},
6569 	{
6570 	 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6571 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6572 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6573 	 0x01e6,
6574 	 0x01e7},
6575 	{
6576 	 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6577 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6578 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6579 	 0x01e5,
6580 	 0x01e6},
6581 	{
6582 	 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6583 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6584 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6585 	 0x01e5,
6586 	 0x01e5},
6587 	{
6588 	 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6589 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6590 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6591 	 0x01e4,
6592 	 0x01e5},
6593 	{
6594 	 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6595 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6596 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6597 	 0x01e3,
6598 	 0x01e4},
6599 	{
6600 	 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6601 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6602 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6603 	 0x01e2,
6604 	 0x01e3},
6605 	{
6606 	 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6607 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6608 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6609 	 0x01e1,
6610 	 0x01e2},
6611 	{
6612 	 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6613 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6614 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6615 	 0x01e0,
6616 	 0x01e1},
6617 	{
6618 	 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6619 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6620 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6621 	 0x01df,
6622 	 0x01e0},
6623 	{
6624 	 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6625 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6626 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6627 	 0x01de,
6628 	 0x01df},
6629 	{
6630 	 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6631 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6632 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6633 	 0x01dd,
6634 	 0x01de},
6635 	{
6636 	 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6637 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6638 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6639 	 0x01dd,
6640 	 0x01dd},
6641 	{
6642 	 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6643 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6644 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6645 	 0x01dc,
6646 	 0x01dd},
6647 	{
6648 	 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6649 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6650 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6651 	 0x01db,
6652 	 0x01dc},
6653 	{
6654 	 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6655 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6656 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6657 	 0x01da,
6658 	 0x01db},
6659 	{
6660 	 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6661 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6662 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6663 	 0x01d9,
6664 	 0x01da},
6665 	{
6666 	 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6667 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6668 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6669 	 0x01d8,
6670 	 0x01d9},
6671 	{
6672 	 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6673 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6674 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6675 	 0x01d7,
6676 	 0x01d8},
6677 	{
6678 	 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6679 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6680 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6681 	 0x01d7,
6682 	 0x01d7},
6683 	{
6684 	 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6685 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6686 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6687 	 0x01d6,
6688 	 0x01d7},
6689 	{
6690 	 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6691 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6692 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6693 	 0x01d5,
6694 	 0x01d6},
6695 	{
6696 	 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6697 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6698 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6699 	 0x01d4,
6700 	 0x01d5},
6701 	{
6702 	 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6703 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6704 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6705 	 0x01d3,
6706 	 0x01d4},
6707 	{
6708 	 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6709 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6710 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6711 	 0x01d2,
6712 	 0x01d3},
6713 	{
6714 	 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6715 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6716 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6717 	 0x01d2,
6718 	 0x01d2},
6719 	{
6720 	 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6721 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6722 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6723 	 0x01d1,
6724 	 0x01d2},
6725 	{
6726 	 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6727 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6728 	 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6729 	 0x01d0,
6730 	 0x01d1},
6731 	{
6732 	 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6733 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6734 	 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6735 	 0x01cf,
6736 	 0x01d0},
6737 	{
6738 	 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6739 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6740 	 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6741 	 0x01ce,
6742 	 0x01cf},
6743 	{
6744 	 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6745 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6746 	 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6747 	 0x01ce,
6748 	 0x01ce},
6749 	{
6750 	 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6751 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6752 	 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6753 	 0x01cd,
6754 	 0x01ce},
6755 	{
6756 	 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6757 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6758 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6759 	 0x01cc,
6760 	 0x01cd},
6761 	{
6762 	 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6763 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6764 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6765 	 0x01cb,
6766 	 0x01cc},
6767 	{
6768 	 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6769 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6770 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6771 	 0x01ca,
6772 	 0x01cb},
6773 	{
6774 	 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6775 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6776 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6777 	 0x01ca,
6778 	 0x01cb},
6779 	{
6780 	 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6781 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6782 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6783 	 0x01c9,
6784 	 0x01ca},
6785 	{
6786 	 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6787 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6788 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6789 	 0x01c9,
6790 	 0x01ca},
6791 	{
6792 	 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6793 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6794 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6795 	 0x01c9,
6796 	 0x01c9},
6797 	{
6798 	 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6799 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6800 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6801 	 0x01c8,
6802 	 0x01c9},
6803 	{
6804 	 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6805 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6806 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6807 	 0x01c8,
6808 	 0x01c9},
6809 	{
6810 	 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6811 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6812 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6813 	 0x01c8,
6814 	 0x01c8},
6815 	{
6816 	 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6817 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6818 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6819 	 0x01c7,
6820 	 0x01c8},
6821 	{
6822 	 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6823 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6824 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6825 	 0x01c7,
6826 	 0x01c8},
6827 	{
6828 	 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6829 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6830 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6831 	 0x01c6,
6832 	 0x01c7},
6833 	{
6834 	 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6835 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6836 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6837 	 0x01c6,
6838 	 0x01c7},
6839 	{
6840 	 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6841 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6842 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6843 	 0x01c6,
6844 	 0x01c6},
6845 	{
6846 	 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6847 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6848 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6849 	 0x01c5,
6850 	 0x01c6},
6851 	{
6852 	 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6853 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6854 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6855 	 0x01c5,
6856 	 0x01c6},
6857 	{
6858 	 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6859 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6860 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6861 	 0x01c4,
6862 	 0x01c5},
6863 	{
6864 	 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6865 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6866 	 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6867 	 0x01c4,
6868 	 0x01c5},
6869 	{
6870 	 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6871 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6872 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6873 	 0x01c4,
6874 	 0x01c4},
6875 	{
6876 	 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6877 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6878 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6879 	 0x01c3,
6880 	 0x01c4},
6881 	{
6882 	 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6883 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6884 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6885 	 0x01c3,
6886 	 0x01c4},
6887 	{
6888 	 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6889 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6890 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6891 	 0x01c2,
6892 	 0x01c3},
6893 	{
6894 	 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6895 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6896 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6897 	 0x01c2,
6898 	 0x01c3},
6899 	{
6900 	 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6901 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6902 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6903 	 0x01c2,
6904 	 0x01c2},
6905 	{
6906 	 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6907 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6908 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6909 	 0x01c1,
6910 	 0x01c2},
6911 	{
6912 	 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6913 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6914 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6915 	 0x01c0,
6916 	 0x01c1},
6917 	{
6918 	 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6919 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6920 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6921 	 0x01bf,
6922 	 0x01c0},
6923 	{
6924 	 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6925 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6926 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6927 	 0x01bf,
6928 	 0x01bf},
6929 	{
6930 	 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6931 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6932 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6933 	 0x01be,
6934 	 0x01bf},
6935 	{
6936 	 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6937 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6938 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6939 	 0x01bd,
6940 	 0x01be},
6941 	{
6942 	 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6943 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6944 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6945 	 0x01bc,
6946 	 0x01bd},
6947 	{
6948 	 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6949 	 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6950 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6951 	 0x043f,
6952 	 0x0443},
6953 	{
6954 	 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6955 	 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6956 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6957 	 0x043d,
6958 	 0x0441},
6959 	{
6960 	 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6961 	 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6962 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6963 	 0x043a,
6964 	 0x043f},
6965 	{
6966 	 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6967 	 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6968 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6969 	 0x0438,
6970 	 0x043d},
6971 	{
6972 	 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6973 	 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6974 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6975 	 0x0436,
6976 	 0x043a},
6977 	{
6978 	 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6979 	 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6980 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6981 	 0x0434,
6982 	 0x0438},
6983 	{
6984 	 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6985 	 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6986 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6987 	 0x0431,
6988 	 0x0436},
6989 	{
6990 	 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6991 	 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6992 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6993 	 0x042f,
6994 	 0x0434},
6995 	{
6996 	 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6997 	 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6998 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6999 	 0x042d,
7000 	 0x0431},
7001 	{
7002 	 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7003 	 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7004 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7005 	 0x042b,
7006 	 0x042f},
7007 	{
7008 	 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7009 	 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7010 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7011 	 0x0429,
7012 	 0x042d},
7013 	{
7014 	 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7015 	 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7016 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7017 	 0x0427,
7018 	 0x042b},
7019 	{
7020 	 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7021 	 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7022 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7023 	 0x0424,
7024 	 0x0429},
7025 	{
7026 	 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7027 	 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7028 	 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7029 	 0x041f,
7030 	 0x0424}
7031 };
7032 
7033 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7034 	{
7035 	 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7036 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7037 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7038 	 0x0214,
7039 	 0x0215},
7040 	{
7041 	 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7042 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7043 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7044 	 0x0213,
7045 	 0x0214},
7046 	{
7047 	 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7048 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7049 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7050 	 0x0212,
7051 	 0x0213},
7052 	{
7053 	 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7054 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7055 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7056 	 0x0211,
7057 	 0x0212},
7058 	{
7059 	 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7060 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7061 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7062 	 0x020f,
7063 	 0x0211},
7064 	{
7065 	 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7066 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7067 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7068 	 0x020e,
7069 	 0x020f},
7070 	{
7071 	 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7072 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7073 	 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7074 	 0x020d,
7075 	 0x020e},
7076 	{
7077 	 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7078 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7079 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7080 	 0x020c,
7081 	 0x020d},
7082 	{
7083 	 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7084 	 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7085 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7086 	 0x020b,
7087 	 0x020c},
7088 	{
7089 	 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7090 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7091 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7092 	 0x020a,
7093 	 0x020b},
7094 	{
7095 	 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7096 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7097 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7098 	 0x0209,
7099 	 0x020a},
7100 	{
7101 	 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7102 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7103 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7104 	 0x0208,
7105 	 0x0209},
7106 	{
7107 	 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7108 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7109 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7110 	 0x0207,
7111 	 0x0208},
7112 	{
7113 	 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7114 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7115 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7116 	 0x0206,
7117 	 0x0207},
7118 	{
7119 	 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7120 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7121 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7122 	 0x0205,
7123 	 0x0206},
7124 	{
7125 	 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7126 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7127 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7128 	 0x0204,
7129 	 0x0205},
7130 	{
7131 	 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7132 	 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7133 	 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7134 	 0x0203,
7135 	 0x0204},
7136 	{
7137 	 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7138 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7139 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7140 	 0x0202,
7141 	 0x0203},
7142 	{
7143 	 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7144 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7145 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7146 	 0x0201,
7147 	 0x0202},
7148 	{
7149 	 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7150 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7151 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7152 	 0x0200,
7153 	 0x0201},
7154 	{
7155 	 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7156 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7157 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7158 	 0x01ff,
7159 	 0x0200},
7160 	{
7161 	 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7162 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7163 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7164 	 0x01fe,
7165 	 0x01ff},
7166 	{
7167 	 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7168 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7169 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7170 	 0x01fc,
7171 	 0x01fd},
7172 	{
7173 	 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7174 	 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7175 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7176 	 0x01fb,
7177 	 0x01fc},
7178 	{
7179 	 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7180 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7181 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7182 	 0x01fa,
7183 	 0x01fb},
7184 	{
7185 	 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7186 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7187 	 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7188 	 0x01f9,
7189 	 0x01fa},
7190 	{
7191 	 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7192 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7193 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7194 	 0x01f8,
7195 	 0x01f9},
7196 	{
7197 	 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7198 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7199 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7200 	 0x01f7,
7201 	 0x01f8},
7202 	{
7203 	 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7204 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7205 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7206 	 0x01f6,
7207 	 0x01f7},
7208 	{
7209 	 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7210 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7211 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7212 	 0x01f5,
7213 	 0x01f6},
7214 	{
7215 	 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7216 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7217 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7218 	 0x01f4,
7219 	 0x01f5},
7220 	{
7221 	 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7222 	 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7223 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7224 	 0x01f3,
7225 	 0x01f4},
7226 	{
7227 	 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7228 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7229 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7230 	 0x01f2,
7231 	 0x01f3},
7232 	{
7233 	 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7234 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7235 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7236 	 0x01f1,
7237 	 0x01f2},
7238 	{
7239 	 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7240 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7241 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7242 	 0x01f0,
7243 	 0x01f1},
7244 	{
7245 	 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7246 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7247 	 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7248 	 0x01f0,
7249 	 0x01f0},
7250 	{
7251 	 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7252 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7253 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7254 	 0x01ef,
7255 	 0x01f0},
7256 	{
7257 	 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7258 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7259 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7260 	 0x01ee,
7261 	 0x01ef},
7262 	{
7263 	 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7264 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7265 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7266 	 0x01ed,
7267 	 0x01ee},
7268 	{
7269 	 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7270 	 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7271 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7272 	 0x01ec,
7273 	 0x01ed},
7274 	{
7275 	 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7276 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7277 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7278 	 0x01eb,
7279 	 0x01ec},
7280 	{
7281 	 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7282 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7283 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7284 	 0x01ea,
7285 	 0x01eb},
7286 	{
7287 	 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7288 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7289 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7290 	 0x01e9,
7291 	 0x01ea},
7292 	{
7293 	 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7294 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7295 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7296 	 0x01e8,
7297 	 0x01e9},
7298 	{
7299 	 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7300 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7301 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7302 	 0x01e7,
7303 	 0x01e8},
7304 	{
7305 	 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7306 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7307 	 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7308 	 0x01e6,
7309 	 0x01e7},
7310 	{
7311 	 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7312 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7313 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7314 	 0x01e5,
7315 	 0x01e6},
7316 	{
7317 	 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7318 	 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7319 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7320 	 0x01e5,
7321 	 0x01e5},
7322 	{
7323 	 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7324 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7325 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7326 	 0x01e4,
7327 	 0x01e5},
7328 	{
7329 	 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7330 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7331 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7332 	 0x01e3,
7333 	 0x01e4},
7334 	{
7335 	 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7336 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7337 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7338 	 0x01e2,
7339 	 0x01e3},
7340 	{
7341 	 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7342 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7343 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7344 	 0x01e1,
7345 	 0x01e2},
7346 	{
7347 	 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7348 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7349 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7350 	 0x01e0,
7351 	 0x01e1},
7352 	{
7353 	 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7354 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7355 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7356 	 0x01df,
7357 	 0x01e0},
7358 	{
7359 	 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7360 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7361 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7362 	 0x01de,
7363 	 0x01df},
7364 	{
7365 	 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7366 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7367 	 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7368 	 0x01dd,
7369 	 0x01de},
7370 	{
7371 	 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7372 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7373 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7374 	 0x01dd,
7375 	 0x01dd},
7376 	{
7377 	 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7378 	 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7379 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7380 	 0x01dc,
7381 	 0x01dd},
7382 	{
7383 	 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7384 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7385 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7386 	 0x01db,
7387 	 0x01dc},
7388 	{
7389 	 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7390 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7391 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7392 	 0x01da,
7393 	 0x01db},
7394 	{
7395 	 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7396 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7397 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7398 	 0x01d9,
7399 	 0x01da},
7400 	{
7401 	 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7402 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7403 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7404 	 0x01d8,
7405 	 0x01d9},
7406 	{
7407 	 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7408 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7409 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7410 	 0x01d7,
7411 	 0x01d8},
7412 	{
7413 	 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7414 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7415 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7416 	 0x01d7,
7417 	 0x01d7},
7418 	{
7419 	 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7420 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7421 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7422 	 0x01d6,
7423 	 0x01d7},
7424 	{
7425 	 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7426 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7427 	 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7428 	 0x01d5,
7429 	 0x01d6},
7430 	{
7431 	 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7432 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7433 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7434 	 0x01d4,
7435 	 0x01d5},
7436 	{
7437 	 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7438 	 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7439 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7440 	 0x01d3,
7441 	 0x01d4},
7442 	{
7443 	 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7444 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7445 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7446 	 0x01d2,
7447 	 0x01d3},
7448 	{
7449 	 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7450 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7451 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7452 	 0x01d2,
7453 	 0x01d2},
7454 	{
7455 	 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7456 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7457 	 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7458 	 0x01d1,
7459 	 0x01d2},
7460 	{
7461 	 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7462 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7463 	 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7464 	 0x01d0,
7465 	 0x01d1},
7466 	{
7467 	 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7468 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7469 	 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7470 	 0x01cf,
7471 	 0x01d0},
7472 	{
7473 	 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7474 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7475 	 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7476 	 0x01ce,
7477 	 0x01cf},
7478 	{
7479 	 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7480 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7481 	 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7482 	 0x01ce,
7483 	 0x01ce},
7484 	{
7485 	 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7486 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7487 	 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7488 	 0x01cd,
7489 	 0x01ce},
7490 	{
7491 	 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7492 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7493 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7494 	 0x01cc,
7495 	 0x01cd},
7496 	{
7497 	 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7498 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7499 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7500 	 0x01cb,
7501 	 0x01cc},
7502 	{
7503 	 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7504 	 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7505 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7506 	 0x01ca,
7507 	 0x01cb},
7508 	{
7509 	 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7510 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7511 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7512 	 0x01ca,
7513 	 0x01cb},
7514 	{
7515 	 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7516 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7517 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7518 	 0x01c9,
7519 	 0x01ca},
7520 	{
7521 	 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7522 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7523 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7524 	 0x01c9,
7525 	 0x01ca},
7526 	{
7527 	 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7528 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7529 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7530 	 0x01c9,
7531 	 0x01c9},
7532 	{
7533 	 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7534 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7535 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7536 	 0x01c8,
7537 	 0x01c9},
7538 	{
7539 	 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7540 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7541 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7542 	 0x01c8,
7543 	 0x01c9},
7544 	{
7545 	 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7546 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7547 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7548 	 0x01c8,
7549 	 0x01c8},
7550 	{
7551 	 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7552 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7553 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7554 	 0x01c7,
7555 	 0x01c8},
7556 	{
7557 	 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7558 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7559 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7560 	 0x01c7,
7561 	 0x01c8},
7562 	{
7563 	 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7564 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7565 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7566 	 0x01c6,
7567 	 0x01c7},
7568 	{
7569 	 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7570 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7571 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7572 	 0x01c6,
7573 	 0x01c7},
7574 	{
7575 	 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7576 	 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7577 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7578 	 0x01c6,
7579 	 0x01c6},
7580 	{
7581 	 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7582 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7583 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7584 	 0x01c5,
7585 	 0x01c6},
7586 	{
7587 	 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7588 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7589 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7590 	 0x01c5,
7591 	 0x01c6},
7592 	{
7593 	 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7594 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7595 	 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7596 	 0x01c4,
7597 	 0x01c5},
7598 	{
7599 	 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7600 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7601 	 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7602 	 0x01c4,
7603 	 0x01c5},
7604 	{
7605 	 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7606 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7607 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7608 	 0x01c4,
7609 	 0x01c4},
7610 	{
7611 	 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7612 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7613 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7614 	 0x01c3,
7615 	 0x01c4},
7616 	{
7617 	 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7618 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7619 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7620 	 0x01c3,
7621 	 0x01c4},
7622 	{
7623 	 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7624 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7625 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7626 	 0x01c2,
7627 	 0x01c3},
7628 	{
7629 	 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7630 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7631 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7632 	 0x01c2,
7633 	 0x01c3},
7634 	{
7635 	 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7636 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7637 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7638 	 0x01c2,
7639 	 0x01c2},
7640 	{
7641 	 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7642 	 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7643 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7644 	 0x01c1,
7645 	 0x01c2},
7646 	{
7647 	 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7648 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7649 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7650 	 0x01c0,
7651 	 0x01c1},
7652 	{
7653 	 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7654 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7655 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7656 	 0x01bf,
7657 	 0x01c0},
7658 	{
7659 	 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7660 	 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7661 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7662 	 0x01bf,
7663 	 0x01bf},
7664 	{
7665 	 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7666 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7667 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7668 	 0x01be,
7669 	 0x01bf},
7670 	{
7671 	 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7672 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7673 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7674 	 0x01bd,
7675 	 0x01be},
7676 	{
7677 	 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7678 	 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7679 	 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7680 	 0x01bc,
7681 	 0x01bd},
7682 	{
7683 	 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7684 	 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7685 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7686 	 0x043f,
7687 	 0x0443},
7688 	{
7689 	 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7690 	 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7691 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7692 	 0x043d,
7693 	 0x0441},
7694 	{
7695 	 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7696 	 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7697 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7698 	 0x043a,
7699 	 0x043f},
7700 	{
7701 	 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7702 	 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7703 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7704 	 0x0438,
7705 	 0x043d},
7706 	{
7707 	 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7708 	 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7709 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7710 	 0x0436,
7711 	 0x043a},
7712 	{
7713 	 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7714 	 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7715 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7716 	 0x0434,
7717 	 0x0438},
7718 	{
7719 	 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7720 	 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7721 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7722 	 0x0431,
7723 	 0x0436},
7724 	{
7725 	 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7726 	 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7727 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7728 	 0x042f,
7729 	 0x0434},
7730 	{
7731 	 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7732 	 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7733 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7734 	 0x042d,
7735 	 0x0431},
7736 	{
7737 	 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7738 	 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7739 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7740 	 0x042b,
7741 	 0x042f},
7742 	{
7743 	 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7744 	 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7745 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7746 	 0x0429,
7747 	 0x042d},
7748 	{
7749 	 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7750 	 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7751 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7752 	 0x0427,
7753 	 0x042b},
7754 	{
7755 	 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7756 	 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7757 	 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7758 	 0x0424,
7759 	 0x0429},
7760 	{
7761 	 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7762 	 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7763 	 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7764 	 0x041f,
7765 	 0x0424}
7766 };
7767 
7768 static struct radio_regs regs_2055[] = {
7769 	{0x02, 0x80, 0x80, 0, 0},
7770 	{0x03, 0, 0, 0, 0},
7771 	{0x04, 0x27, 0x27, 0, 0},
7772 	{0x05, 0, 0, 0, 0},
7773 	{0x06, 0x27, 0x27, 0, 0},
7774 	{0x07, 0x7f, 0x7f, 1, 1},
7775 	{0x08, 0x7, 0x7, 1, 1},
7776 	{0x09, 0x7f, 0x7f, 1, 1},
7777 	{0x0A, 0x7, 0x7, 1, 1},
7778 	{0x0B, 0x15, 0x15, 0, 0},
7779 	{0x0C, 0x15, 0x15, 0, 0},
7780 	{0x0D, 0x4f, 0x4f, 1, 1},
7781 	{0x0E, 0x5, 0x5, 1, 1},
7782 	{0x0F, 0x4f, 0x4f, 1, 1},
7783 	{0x10, 0x5, 0x5, 1, 1},
7784 	{0x11, 0xd0, 0xd0, 0, 0},
7785 	{0x12, 0x2, 0x2, 0, 0},
7786 	{0x13, 0, 0, 0, 0},
7787 	{0x14, 0x40, 0x40, 0, 0},
7788 	{0x15, 0, 0, 0, 0},
7789 	{0x16, 0, 0, 0, 0},
7790 	{0x17, 0, 0, 0, 0},
7791 	{0x18, 0, 0, 0, 0},
7792 	{0x19, 0, 0, 0, 0},
7793 	{0x1A, 0, 0, 0, 0},
7794 	{0x1B, 0, 0, 0, 0},
7795 	{0x1C, 0, 0, 0, 0},
7796 	{0x1D, 0xc0, 0xc0, 0, 0},
7797 	{0x1E, 0xff, 0xff, 0, 0},
7798 	{0x1F, 0xc0, 0xc0, 0, 0},
7799 	{0x20, 0xff, 0xff, 0, 0},
7800 	{0x21, 0xc0, 0xc0, 0, 0},
7801 	{0x22, 0, 0, 0, 0},
7802 	{0x23, 0x2c, 0x2c, 0, 0},
7803 	{0x24, 0, 0, 0, 0},
7804 	{0x25, 0, 0, 0, 0},
7805 	{0x26, 0, 0, 0, 0},
7806 	{0x27, 0, 0, 0, 0},
7807 	{0x28, 0, 0, 0, 0},
7808 	{0x29, 0, 0, 0, 0},
7809 	{0x2A, 0, 0, 0, 0},
7810 	{0x2B, 0, 0, 0, 0},
7811 	{0x2C, 0, 0, 0, 0},
7812 	{0x2D, 0xa4, 0xa4, 0, 0},
7813 	{0x2E, 0x38, 0x38, 0, 0},
7814 	{0x2F, 0, 0, 0, 0},
7815 	{0x30, 0x4, 0x4, 1, 1},
7816 	{0x31, 0, 0, 0, 0},
7817 	{0x32, 0xa, 0xa, 0, 0},
7818 	{0x33, 0x87, 0x87, 0, 0},
7819 	{0x34, 0x9, 0x9, 0, 0},
7820 	{0x35, 0x70, 0x70, 0, 0},
7821 	{0x36, 0x11, 0x11, 0, 0},
7822 	{0x37, 0x18, 0x18, 1, 1},
7823 	{0x38, 0x6, 0x6, 0, 0},
7824 	{0x39, 0x4, 0x4, 1, 1},
7825 	{0x3A, 0x6, 0x6, 0, 0},
7826 	{0x3B, 0x9e, 0x9e, 0, 0},
7827 	{0x3C, 0x9, 0x9, 0, 0},
7828 	{0x3D, 0xc8, 0xc8, 1, 1},
7829 	{0x3E, 0x88, 0x88, 0, 0},
7830 	{0x3F, 0, 0, 0, 0},
7831 	{0x40, 0, 0, 0, 0},
7832 	{0x41, 0, 0, 0, 0},
7833 	{0x42, 0x1, 0x1, 0, 0},
7834 	{0x43, 0x2, 0x2, 0, 0},
7835 	{0x44, 0x96, 0x96, 0, 0},
7836 	{0x45, 0x3e, 0x3e, 0, 0},
7837 	{0x46, 0x3e, 0x3e, 0, 0},
7838 	{0x47, 0x13, 0x13, 0, 0},
7839 	{0x48, 0x2, 0x2, 0, 0},
7840 	{0x49, 0x15, 0x15, 0, 0},
7841 	{0x4A, 0x7, 0x7, 0, 0},
7842 	{0x4B, 0, 0, 0, 0},
7843 	{0x4C, 0, 0, 0, 0},
7844 	{0x4D, 0, 0, 0, 0},
7845 	{0x4E, 0, 0, 0, 0},
7846 	{0x4F, 0, 0, 0, 0},
7847 	{0x50, 0x8, 0x8, 0, 0},
7848 	{0x51, 0x8, 0x8, 0, 0},
7849 	{0x52, 0x6, 0x6, 0, 0},
7850 	{0x53, 0x84, 0x84, 1, 1},
7851 	{0x54, 0xc3, 0xc3, 0, 0},
7852 	{0x55, 0x8f, 0x8f, 0, 0},
7853 	{0x56, 0xff, 0xff, 0, 0},
7854 	{0x57, 0xff, 0xff, 0, 0},
7855 	{0x58, 0x88, 0x88, 0, 0},
7856 	{0x59, 0x88, 0x88, 0, 0},
7857 	{0x5A, 0, 0, 0, 0},
7858 	{0x5B, 0xcc, 0xcc, 0, 0},
7859 	{0x5C, 0x6, 0x6, 0, 0},
7860 	{0x5D, 0x80, 0x80, 0, 0},
7861 	{0x5E, 0x80, 0x80, 0, 0},
7862 	{0x5F, 0xf8, 0xf8, 0, 0},
7863 	{0x60, 0x88, 0x88, 0, 0},
7864 	{0x61, 0x88, 0x88, 0, 0},
7865 	{0x62, 0x88, 0x8, 1, 1},
7866 	{0x63, 0x88, 0x88, 0, 0},
7867 	{0x64, 0, 0, 0, 0},
7868 	{0x65, 0x1, 0x1, 1, 1},
7869 	{0x66, 0x8a, 0x8a, 0, 0},
7870 	{0x67, 0x8, 0x8, 0, 0},
7871 	{0x68, 0x83, 0x83, 0, 0},
7872 	{0x69, 0x6, 0x6, 0, 0},
7873 	{0x6A, 0xa0, 0xa0, 0, 0},
7874 	{0x6B, 0xa, 0xa, 0, 0},
7875 	{0x6C, 0x87, 0x87, 1, 1},
7876 	{0x6D, 0x2a, 0x2a, 0, 0},
7877 	{0x6E, 0x2a, 0x2a, 0, 0},
7878 	{0x6F, 0x2a, 0x2a, 0, 0},
7879 	{0x70, 0x2a, 0x2a, 0, 0},
7880 	{0x71, 0x18, 0x18, 0, 0},
7881 	{0x72, 0x6a, 0x6a, 1, 1},
7882 	{0x73, 0xab, 0xab, 1, 1},
7883 	{0x74, 0x13, 0x13, 1, 1},
7884 	{0x75, 0xc1, 0xc1, 1, 1},
7885 	{0x76, 0xaa, 0xaa, 1, 1},
7886 	{0x77, 0x87, 0x87, 1, 1},
7887 	{0x78, 0, 0, 0, 0},
7888 	{0x79, 0x6, 0x6, 0, 0},
7889 	{0x7A, 0x7, 0x7, 0, 0},
7890 	{0x7B, 0x7, 0x7, 0, 0},
7891 	{0x7C, 0x15, 0x15, 0, 0},
7892 	{0x7D, 0x55, 0x55, 0, 0},
7893 	{0x7E, 0x97, 0x97, 1, 1},
7894 	{0x7F, 0x8, 0x8, 0, 0},
7895 	{0x80, 0x14, 0x14, 1, 1},
7896 	{0x81, 0x33, 0x33, 0, 0},
7897 	{0x82, 0x88, 0x88, 0, 0},
7898 	{0x83, 0x6, 0x6, 0, 0},
7899 	{0x84, 0x3, 0x3, 1, 1},
7900 	{0x85, 0xa, 0xa, 0, 0},
7901 	{0x86, 0x3, 0x3, 1, 1},
7902 	{0x87, 0x2a, 0x2a, 0, 0},
7903 	{0x88, 0xa4, 0xa4, 0, 0},
7904 	{0x89, 0x18, 0x18, 0, 0},
7905 	{0x8A, 0x28, 0x28, 0, 0},
7906 	{0x8B, 0, 0, 0, 0},
7907 	{0x8C, 0x4a, 0x4a, 0, 0},
7908 	{0x8D, 0, 0, 0, 0},
7909 	{0x8E, 0xf8, 0xf8, 0, 0},
7910 	{0x8F, 0x88, 0x88, 0, 0},
7911 	{0x90, 0x88, 0x88, 0, 0},
7912 	{0x91, 0x88, 0x8, 1, 1},
7913 	{0x92, 0x88, 0x88, 0, 0},
7914 	{0x93, 0, 0, 0, 0},
7915 	{0x94, 0x1, 0x1, 1, 1},
7916 	{0x95, 0x8a, 0x8a, 0, 0},
7917 	{0x96, 0x8, 0x8, 0, 0},
7918 	{0x97, 0x83, 0x83, 0, 0},
7919 	{0x98, 0x6, 0x6, 0, 0},
7920 	{0x99, 0xa0, 0xa0, 0, 0},
7921 	{0x9A, 0xa, 0xa, 0, 0},
7922 	{0x9B, 0x87, 0x87, 1, 1},
7923 	{0x9C, 0x2a, 0x2a, 0, 0},
7924 	{0x9D, 0x2a, 0x2a, 0, 0},
7925 	{0x9E, 0x2a, 0x2a, 0, 0},
7926 	{0x9F, 0x2a, 0x2a, 0, 0},
7927 	{0xA0, 0x18, 0x18, 0, 0},
7928 	{0xA1, 0x6a, 0x6a, 1, 1},
7929 	{0xA2, 0xab, 0xab, 1, 1},
7930 	{0xA3, 0x13, 0x13, 1, 1},
7931 	{0xA4, 0xc1, 0xc1, 1, 1},
7932 	{0xA5, 0xaa, 0xaa, 1, 1},
7933 	{0xA6, 0x87, 0x87, 1, 1},
7934 	{0xA7, 0, 0, 0, 0},
7935 	{0xA8, 0x6, 0x6, 0, 0},
7936 	{0xA9, 0x7, 0x7, 0, 0},
7937 	{0xAA, 0x7, 0x7, 0, 0},
7938 	{0xAB, 0x15, 0x15, 0, 0},
7939 	{0xAC, 0x55, 0x55, 0, 0},
7940 	{0xAD, 0x97, 0x97, 1, 1},
7941 	{0xAE, 0x8, 0x8, 0, 0},
7942 	{0xAF, 0x14, 0x14, 1, 1},
7943 	{0xB0, 0x33, 0x33, 0, 0},
7944 	{0xB1, 0x88, 0x88, 0, 0},
7945 	{0xB2, 0x6, 0x6, 0, 0},
7946 	{0xB3, 0x3, 0x3, 1, 1},
7947 	{0xB4, 0xa, 0xa, 0, 0},
7948 	{0xB5, 0x3, 0x3, 1, 1},
7949 	{0xB6, 0x2a, 0x2a, 0, 0},
7950 	{0xB7, 0xa4, 0xa4, 0, 0},
7951 	{0xB8, 0x18, 0x18, 0, 0},
7952 	{0xB9, 0x28, 0x28, 0, 0},
7953 	{0xBA, 0, 0, 0, 0},
7954 	{0xBB, 0x4a, 0x4a, 0, 0},
7955 	{0xBC, 0, 0, 0, 0},
7956 	{0xBD, 0x71, 0x71, 0, 0},
7957 	{0xBE, 0x72, 0x72, 0, 0},
7958 	{0xBF, 0x73, 0x73, 0, 0},
7959 	{0xC0, 0x74, 0x74, 0, 0},
7960 	{0xC1, 0x75, 0x75, 0, 0},
7961 	{0xC2, 0x76, 0x76, 0, 0},
7962 	{0xC3, 0x77, 0x77, 0, 0},
7963 	{0xC4, 0x78, 0x78, 0, 0},
7964 	{0xC5, 0x79, 0x79, 0, 0},
7965 	{0xC6, 0x7a, 0x7a, 0, 0},
7966 	{0xC7, 0, 0, 0, 0},
7967 	{0xC8, 0, 0, 0, 0},
7968 	{0xC9, 0, 0, 0, 0},
7969 	{0xCA, 0, 0, 0, 0},
7970 	{0xCB, 0, 0, 0, 0},
7971 	{0xCC, 0, 0, 0, 0},
7972 	{0xCD, 0, 0, 0, 0},
7973 	{0xCE, 0x6, 0x6, 0, 0},
7974 	{0xCF, 0, 0, 0, 0},
7975 	{0xD0, 0, 0, 0, 0},
7976 	{0xD1, 0x18, 0x18, 0, 0},
7977 	{0xD2, 0x88, 0x88, 0, 0},
7978 	{0xD3, 0, 0, 0, 0},
7979 	{0xD4, 0, 0, 0, 0},
7980 	{0xD5, 0, 0, 0, 0},
7981 	{0xD6, 0, 0, 0, 0},
7982 	{0xD7, 0, 0, 0, 0},
7983 	{0xD8, 0, 0, 0, 0},
7984 	{0xD9, 0, 0, 0, 0},
7985 	{0xDA, 0x6, 0x6, 0, 0},
7986 	{0xDB, 0, 0, 0, 0},
7987 	{0xDC, 0, 0, 0, 0},
7988 	{0xDD, 0x18, 0x18, 0, 0},
7989 	{0xDE, 0x88, 0x88, 0, 0},
7990 	{0xDF, 0, 0, 0, 0},
7991 	{0xE0, 0, 0, 0, 0},
7992 	{0xE1, 0, 0, 0, 0},
7993 	{0xE2, 0, 0, 0, 0},
7994 	{0xFFFF, 0, 0, 0, 0},
7995 };
7996 
7997 static struct radio_regs regs_SYN_2056[] = {
7998 	{0x02, 0, 0, 0, 0},
7999 	{0x03, 0, 0, 0, 0},
8000 	{0x04, 0, 0, 0, 0},
8001 	{0x05, 0, 0, 0, 0},
8002 	{0x06, 0, 0, 0, 0},
8003 	{0x07, 0, 0, 0, 0},
8004 	{0x08, 0, 0, 0, 0},
8005 	{0x09, 0x1, 0x1, 0, 0},
8006 	{0x0A, 0, 0, 0, 0},
8007 	{0x0B, 0, 0, 0, 0},
8008 	{0x0C, 0, 0, 0, 0},
8009 	{0x0D, 0, 0, 0, 0},
8010 	{0x0E, 0, 0, 0, 0},
8011 	{0x0F, 0, 0, 0, 0},
8012 	{0x10, 0, 0, 0, 0},
8013 	{0x11, 0, 0, 0, 0},
8014 	{0x12, 0, 0, 0, 0},
8015 	{0x13, 0, 0, 0, 0},
8016 	{0x14, 0, 0, 0, 0},
8017 	{0x15, 0, 0, 0, 0},
8018 	{0x16, 0, 0, 0, 0},
8019 	{0x17, 0, 0, 0, 0},
8020 	{0x18, 0, 0, 0, 0},
8021 	{0x19, 0, 0, 0, 0},
8022 	{0x1A, 0, 0, 0, 0},
8023 	{0x1B, 0, 0, 0, 0},
8024 	{0x1C, 0, 0, 0, 0},
8025 	{0x1D, 0, 0, 0, 0},
8026 	{0x1E, 0, 0, 0, 0},
8027 	{0x1F, 0, 0, 0, 0},
8028 	{0x20, 0, 0, 0, 0},
8029 	{0x21, 0, 0, 0, 0},
8030 	{0x22, 0x60, 0x60, 0, 0},
8031 	{0x23, 0x6, 0x6, 0, 0},
8032 	{0x24, 0xc, 0xc, 0, 0},
8033 	{0x25, 0, 0, 0, 0},
8034 	{0x26, 0, 0, 0, 0},
8035 	{0x27, 0, 0, 0, 0},
8036 	{0x28, 0x1, 0x1, 0, 0},
8037 	{0x29, 0, 0, 0, 0},
8038 	{0x2A, 0, 0, 0, 0},
8039 	{0x2B, 0, 0, 0, 0},
8040 	{0x2C, 0, 0, 0, 0},
8041 	{0x2D, 0, 0, 0, 0},
8042 	{0x2E, 0xd, 0xd, 0, 0},
8043 	{0x2F, 0x1f, 0x1f, 0, 0},
8044 	{0x30, 0x15, 0x15, 0, 0},
8045 	{0x31, 0xf, 0xf, 0, 0},
8046 	{0x32, 0, 0, 0, 0},
8047 	{0x33, 0, 0, 0, 0},
8048 	{0x34, 0, 0, 0, 0},
8049 	{0x35, 0, 0, 0, 0},
8050 	{0x36, 0, 0, 0, 0},
8051 	{0x37, 0, 0, 0, 0},
8052 	{0x38, 0, 0, 0, 0},
8053 	{0x39, 0, 0, 0, 0},
8054 	{0x3A, 0, 0, 0, 0},
8055 	{0x3B, 0, 0, 0, 0},
8056 	{0x3C, 0x13, 0x13, 0, 0},
8057 	{0x3D, 0xf, 0xf, 0, 0},
8058 	{0x3E, 0x18, 0x18, 0, 0},
8059 	{0x3F, 0, 0, 0, 0},
8060 	{0x40, 0, 0, 0, 0},
8061 	{0x41, 0x20, 0x20, 0, 0},
8062 	{0x42, 0x20, 0x20, 0, 0},
8063 	{0x43, 0, 0, 0, 0},
8064 	{0x44, 0x77, 0x77, 0, 0},
8065 	{0x45, 0x7, 0x7, 0, 0},
8066 	{0x46, 0x1, 0x1, 0, 0},
8067 	{0x47, 0x4, 0x4, 0, 0},
8068 	{0x48, 0xf, 0xf, 0, 0},
8069 	{0x49, 0x30, 0x30, 0, 0},
8070 	{0x4A, 0x32, 0x32, 0, 0},
8071 	{0x4B, 0xd, 0xd, 0, 0},
8072 	{0x4C, 0xd, 0xd, 0, 0},
8073 	{0x4D, 0x4, 0x4, 0, 0},
8074 	{0x4E, 0x6, 0x6, 0, 0},
8075 	{0x4F, 0x1, 0x1, 0, 0},
8076 	{0x50, 0x1c, 0x1c, 0, 0},
8077 	{0x51, 0x2, 0x2, 0, 0},
8078 	{0x52, 0x2, 0x2, 0, 0},
8079 	{0x53, 0xf7, 0xf7, 1, 1},
8080 	{0x54, 0xb4, 0xb4, 0, 0},
8081 	{0x55, 0xd2, 0xd2, 0, 0},
8082 	{0x56, 0, 0, 0, 0},
8083 	{0x57, 0, 0, 0, 0},
8084 	{0x58, 0x4, 0x4, 0, 0},
8085 	{0x59, 0x96, 0x96, 0, 0},
8086 	{0x5A, 0x3e, 0x3e, 0, 0},
8087 	{0x5B, 0x3e, 0x3e, 0, 0},
8088 	{0x5C, 0x13, 0x13, 0, 0},
8089 	{0x5D, 0x2, 0x2, 0, 0},
8090 	{0x5E, 0, 0, 0, 0},
8091 	{0x5F, 0x7, 0x7, 0, 0},
8092 	{0x60, 0x7, 0x7, 1, 1},
8093 	{0x61, 0x8, 0x8, 0, 0},
8094 	{0x62, 0x3, 0x3, 0, 0},
8095 	{0x63, 0, 0, 0, 0},
8096 	{0x64, 0, 0, 0, 0},
8097 	{0x65, 0, 0, 0, 0},
8098 	{0x66, 0, 0, 0, 0},
8099 	{0x67, 0, 0, 0, 0},
8100 	{0x68, 0x40, 0x40, 0, 0},
8101 	{0x69, 0, 0, 0, 0},
8102 	{0x6A, 0, 0, 0, 0},
8103 	{0x6B, 0, 0, 0, 0},
8104 	{0x6C, 0, 0, 0, 0},
8105 	{0x6D, 0x1, 0x1, 0, 0},
8106 	{0x6E, 0, 0, 0, 0},
8107 	{0x6F, 0, 0, 0, 0},
8108 	{0x70, 0x60, 0x60, 0, 0},
8109 	{0x71, 0x66, 0x66, 0, 0},
8110 	{0x72, 0xc, 0xc, 0, 0},
8111 	{0x73, 0x66, 0x66, 0, 0},
8112 	{0x74, 0x8f, 0x8f, 1, 1},
8113 	{0x75, 0, 0, 0, 0},
8114 	{0x76, 0xcc, 0xcc, 0, 0},
8115 	{0x77, 0x1, 0x1, 0, 0},
8116 	{0x78, 0x66, 0x66, 0, 0},
8117 	{0x79, 0x66, 0x66, 0, 0},
8118 	{0x7A, 0, 0, 0, 0},
8119 	{0x7B, 0, 0, 0, 0},
8120 	{0x7C, 0, 0, 0, 0},
8121 	{0x7D, 0, 0, 0, 0},
8122 	{0x7E, 0, 0, 0, 0},
8123 	{0x7F, 0, 0, 0, 0},
8124 	{0x80, 0, 0, 0, 0},
8125 	{0x81, 0, 0, 0, 0},
8126 	{0x82, 0, 0, 0, 0},
8127 	{0x83, 0, 0, 0, 0},
8128 	{0x84, 0, 0, 0, 0},
8129 	{0x85, 0xff, 0xff, 0, 0},
8130 	{0x86, 0, 0, 0, 0},
8131 	{0x87, 0, 0, 0, 0},
8132 	{0x88, 0, 0, 0, 0},
8133 	{0x89, 0, 0, 0, 0},
8134 	{0x8A, 0, 0, 0, 0},
8135 	{0x8B, 0, 0, 0, 0},
8136 	{0x8C, 0, 0, 0, 0},
8137 	{0x8D, 0, 0, 0, 0},
8138 	{0x8E, 0, 0, 0, 0},
8139 	{0x8F, 0, 0, 0, 0},
8140 	{0x90, 0, 0, 0, 0},
8141 	{0x91, 0, 0, 0, 0},
8142 	{0x92, 0, 0, 0, 0},
8143 	{0x93, 0, 0, 0, 0},
8144 	{0x94, 0, 0, 0, 0},
8145 	{0x95, 0, 0, 0, 0},
8146 	{0x96, 0, 0, 0, 0},
8147 	{0x97, 0, 0, 0, 0},
8148 	{0x98, 0, 0, 0, 0},
8149 	{0x99, 0, 0, 0, 0},
8150 	{0x9A, 0, 0, 0, 0},
8151 	{0x9B, 0, 0, 0, 0},
8152 	{0x9C, 0, 0, 0, 0},
8153 	{0x9D, 0, 0, 0, 0},
8154 	{0x9E, 0, 0, 0, 0},
8155 	{0x9F, 0x6, 0x6, 0, 0},
8156 	{0xA0, 0x66, 0x66, 0, 0},
8157 	{0xA1, 0x66, 0x66, 0, 0},
8158 	{0xA2, 0x66, 0x66, 0, 0},
8159 	{0xA3, 0x66, 0x66, 0, 0},
8160 	{0xA4, 0x66, 0x66, 0, 0},
8161 	{0xA5, 0x66, 0x66, 0, 0},
8162 	{0xA6, 0x66, 0x66, 0, 0},
8163 	{0xA7, 0x66, 0x66, 0, 0},
8164 	{0xA8, 0x66, 0x66, 0, 0},
8165 	{0xA9, 0x66, 0x66, 0, 0},
8166 	{0xAA, 0x66, 0x66, 0, 0},
8167 	{0xAB, 0x66, 0x66, 0, 0},
8168 	{0xAC, 0x66, 0x66, 0, 0},
8169 	{0xAD, 0x66, 0x66, 0, 0},
8170 	{0xAE, 0x66, 0x66, 0, 0},
8171 	{0xAF, 0x66, 0x66, 0, 0},
8172 	{0xB0, 0x66, 0x66, 0, 0},
8173 	{0xB1, 0x66, 0x66, 0, 0},
8174 	{0xB2, 0x66, 0x66, 0, 0},
8175 	{0xB3, 0xa, 0xa, 0, 0},
8176 	{0xB4, 0, 0, 0, 0},
8177 	{0xB5, 0, 0, 0, 0},
8178 	{0xB6, 0, 0, 0, 0},
8179 	{0xFFFF, 0, 0, 0, 0}
8180 };
8181 
8182 static struct radio_regs regs_TX_2056[] = {
8183 	{0x02, 0, 0, 0, 0},
8184 	{0x03, 0, 0, 0, 0},
8185 	{0x04, 0, 0, 0, 0},
8186 	{0x05, 0, 0, 0, 0},
8187 	{0x06, 0, 0, 0, 0},
8188 	{0x07, 0, 0, 0, 0},
8189 	{0x08, 0, 0, 0, 0},
8190 	{0x09, 0, 0, 0, 0},
8191 	{0x0A, 0, 0, 0, 0},
8192 	{0x0B, 0, 0, 0, 0},
8193 	{0x0C, 0, 0, 0, 0},
8194 	{0x0D, 0, 0, 0, 0},
8195 	{0x0E, 0, 0, 0, 0},
8196 	{0x0F, 0, 0, 0, 0},
8197 	{0x10, 0, 0, 0, 0},
8198 	{0x11, 0, 0, 0, 0},
8199 	{0x12, 0, 0, 0, 0},
8200 	{0x13, 0, 0, 0, 0},
8201 	{0x14, 0, 0, 0, 0},
8202 	{0x15, 0, 0, 0, 0},
8203 	{0x16, 0, 0, 0, 0},
8204 	{0x17, 0, 0, 0, 0},
8205 	{0x18, 0, 0, 0, 0},
8206 	{0x19, 0, 0, 0, 0},
8207 	{0x1A, 0, 0, 0, 0},
8208 	{0x1B, 0, 0, 0, 0},
8209 	{0x1C, 0, 0, 0, 0},
8210 	{0x1D, 0, 0, 0, 0},
8211 	{0x1E, 0, 0, 0, 0},
8212 	{0x1F, 0, 0, 0, 0},
8213 	{0x20, 0, 0, 0, 0},
8214 	{0x21, 0x88, 0x88, 0, 0},
8215 	{0x22, 0x88, 0x88, 0, 0},
8216 	{0x23, 0x88, 0x88, 0, 0},
8217 	{0x24, 0x88, 0x88, 0, 0},
8218 	{0x25, 0xc, 0xc, 0, 0},
8219 	{0x26, 0, 0, 0, 0},
8220 	{0x27, 0x3, 0x3, 0, 0},
8221 	{0x28, 0, 0, 0, 0},
8222 	{0x29, 0x3, 0x3, 0, 0},
8223 	{0x2A, 0x37, 0x37, 0, 0},
8224 	{0x2B, 0x3, 0x3, 0, 0},
8225 	{0x2C, 0, 0, 0, 0},
8226 	{0x2D, 0, 0, 0, 0},
8227 	{0x2E, 0x1, 0x1, 0, 0},
8228 	{0x2F, 0x1, 0x1, 0, 0},
8229 	{0x30, 0, 0, 0, 0},
8230 	{0x31, 0, 0, 0, 0},
8231 	{0x32, 0, 0, 0, 0},
8232 	{0x33, 0x11, 0x11, 0, 0},
8233 	{0x34, 0x11, 0x11, 0, 0},
8234 	{0x35, 0, 0, 0, 0},
8235 	{0x36, 0, 0, 0, 0},
8236 	{0x37, 0x3, 0x3, 0, 0},
8237 	{0x38, 0xf, 0xf, 0, 0},
8238 	{0x39, 0, 0, 0, 0},
8239 	{0x3A, 0x2d, 0x2d, 0, 0},
8240 	{0x3B, 0, 0, 0, 0},
8241 	{0x3C, 0x6e, 0x6e, 0, 0},
8242 	{0x3D, 0xf0, 0xf0, 1, 1},
8243 	{0x3E, 0, 0, 0, 0},
8244 	{0x3F, 0, 0, 0, 0},
8245 	{0x40, 0, 0, 0, 0},
8246 	{0x41, 0x3, 0x3, 0, 0},
8247 	{0x42, 0x3, 0x3, 0, 0},
8248 	{0x43, 0, 0, 0, 0},
8249 	{0x44, 0x1e, 0x1e, 0, 0},
8250 	{0x45, 0, 0, 0, 0},
8251 	{0x46, 0x6e, 0x6e, 0, 0},
8252 	{0x47, 0xf0, 0xf0, 1, 1},
8253 	{0x48, 0, 0, 0, 0},
8254 	{0x49, 0x2, 0x2, 0, 0},
8255 	{0x4A, 0xff, 0xff, 1, 1},
8256 	{0x4B, 0xc, 0xc, 0, 0},
8257 	{0x4C, 0, 0, 0, 0},
8258 	{0x4D, 0x38, 0x38, 0, 0},
8259 	{0x4E, 0x70, 0x70, 1, 1},
8260 	{0x4F, 0x2, 0x2, 0, 0},
8261 	{0x50, 0x88, 0x88, 0, 0},
8262 	{0x51, 0xc, 0xc, 0, 0},
8263 	{0x52, 0, 0, 0, 0},
8264 	{0x53, 0x8, 0x8, 0, 0},
8265 	{0x54, 0x70, 0x70, 1, 1},
8266 	{0x55, 0x2, 0x2, 0, 0},
8267 	{0x56, 0xff, 0xff, 1, 1},
8268 	{0x57, 0, 0, 0, 0},
8269 	{0x58, 0x83, 0x83, 0, 0},
8270 	{0x59, 0x77, 0x77, 1, 1},
8271 	{0x5A, 0, 0, 0, 0},
8272 	{0x5B, 0x2, 0x2, 0, 0},
8273 	{0x5C, 0x88, 0x88, 0, 0},
8274 	{0x5D, 0, 0, 0, 0},
8275 	{0x5E, 0x8, 0x8, 0, 0},
8276 	{0x5F, 0x77, 0x77, 1, 1},
8277 	{0x60, 0x1, 0x1, 0, 0},
8278 	{0x61, 0, 0, 0, 0},
8279 	{0x62, 0x7, 0x7, 0, 0},
8280 	{0x63, 0, 0, 0, 0},
8281 	{0x64, 0x7, 0x7, 0, 0},
8282 	{0x65, 0, 0, 0, 0},
8283 	{0x66, 0, 0, 0, 0},
8284 	{0x67, 0x74, 0x74, 1, 1},
8285 	{0x68, 0, 0, 0, 0},
8286 	{0x69, 0xa, 0xa, 0, 0},
8287 	{0x6A, 0, 0, 0, 0},
8288 	{0x6B, 0, 0, 0, 0},
8289 	{0x6C, 0, 0, 0, 0},
8290 	{0x6D, 0, 0, 0, 0},
8291 	{0x6E, 0, 0, 0, 0},
8292 	{0x6F, 0, 0, 0, 0},
8293 	{0x70, 0, 0, 0, 0},
8294 	{0x71, 0x2, 0x2, 0, 0},
8295 	{0x72, 0, 0, 0, 0},
8296 	{0x73, 0, 0, 0, 0},
8297 	{0x74, 0xe, 0xe, 0, 0},
8298 	{0x75, 0xe, 0xe, 0, 0},
8299 	{0x76, 0xe, 0xe, 0, 0},
8300 	{0x77, 0x13, 0x13, 0, 0},
8301 	{0x78, 0x13, 0x13, 0, 0},
8302 	{0x79, 0x1b, 0x1b, 0, 0},
8303 	{0x7A, 0x1b, 0x1b, 0, 0},
8304 	{0x7B, 0x55, 0x55, 0, 0},
8305 	{0x7C, 0x5b, 0x5b, 0, 0},
8306 	{0x7D, 0, 0, 0, 0},
8307 	{0x7E, 0, 0, 0, 0},
8308 	{0x7F, 0, 0, 0, 0},
8309 	{0x80, 0, 0, 0, 0},
8310 	{0x81, 0, 0, 0, 0},
8311 	{0x82, 0, 0, 0, 0},
8312 	{0x83, 0, 0, 0, 0},
8313 	{0x84, 0, 0, 0, 0},
8314 	{0x85, 0, 0, 0, 0},
8315 	{0x86, 0, 0, 0, 0},
8316 	{0x87, 0, 0, 0, 0},
8317 	{0x88, 0, 0, 0, 0},
8318 	{0x89, 0, 0, 0, 0},
8319 	{0x8A, 0, 0, 0, 0},
8320 	{0x8B, 0, 0, 0, 0},
8321 	{0x8C, 0, 0, 0, 0},
8322 	{0x8D, 0, 0, 0, 0},
8323 	{0x8E, 0, 0, 0, 0},
8324 	{0x8F, 0, 0, 0, 0},
8325 	{0x90, 0, 0, 0, 0},
8326 	{0x91, 0, 0, 0, 0},
8327 	{0x92, 0, 0, 0, 0},
8328 	{0xFFFF, 0, 0, 0, 0}
8329 };
8330 
8331 static struct radio_regs regs_RX_2056[] = {
8332 	{0x02, 0, 0, 0, 0},
8333 	{0x03, 0, 0, 0, 0},
8334 	{0x04, 0, 0, 0, 0},
8335 	{0x05, 0, 0, 0, 0},
8336 	{0x06, 0, 0, 0, 0},
8337 	{0x07, 0, 0, 0, 0},
8338 	{0x08, 0, 0, 0, 0},
8339 	{0x09, 0, 0, 0, 0},
8340 	{0x0A, 0, 0, 0, 0},
8341 	{0x0B, 0, 0, 0, 0},
8342 	{0x0C, 0, 0, 0, 0},
8343 	{0x0D, 0, 0, 0, 0},
8344 	{0x0E, 0, 0, 0, 0},
8345 	{0x0F, 0, 0, 0, 0},
8346 	{0x10, 0, 0, 0, 0},
8347 	{0x11, 0, 0, 0, 0},
8348 	{0x12, 0, 0, 0, 0},
8349 	{0x13, 0, 0, 0, 0},
8350 	{0x14, 0, 0, 0, 0},
8351 	{0x15, 0, 0, 0, 0},
8352 	{0x16, 0, 0, 0, 0},
8353 	{0x17, 0, 0, 0, 0},
8354 	{0x18, 0, 0, 0, 0},
8355 	{0x19, 0, 0, 0, 0},
8356 	{0x1A, 0, 0, 0, 0},
8357 	{0x1B, 0, 0, 0, 0},
8358 	{0x1C, 0, 0, 0, 0},
8359 	{0x1D, 0, 0, 0, 0},
8360 	{0x1E, 0, 0, 0, 0},
8361 	{0x1F, 0, 0, 0, 0},
8362 	{0x20, 0x3, 0x3, 0, 0},
8363 	{0x21, 0, 0, 0, 0},
8364 	{0x22, 0, 0, 0, 0},
8365 	{0x23, 0x90, 0x90, 0, 0},
8366 	{0x24, 0x55, 0x55, 0, 0},
8367 	{0x25, 0x15, 0x15, 0, 0},
8368 	{0x26, 0x5, 0x5, 0, 0},
8369 	{0x27, 0x15, 0x15, 0, 0},
8370 	{0x28, 0x5, 0x5, 0, 0},
8371 	{0x29, 0x20, 0x20, 0, 0},
8372 	{0x2A, 0x11, 0x11, 0, 0},
8373 	{0x2B, 0x90, 0x90, 0, 0},
8374 	{0x2C, 0, 0, 0, 0},
8375 	{0x2D, 0x88, 0x88, 0, 0},
8376 	{0x2E, 0x32, 0x32, 0, 0},
8377 	{0x2F, 0x77, 0x77, 0, 0},
8378 	{0x30, 0x17, 0x17, 1, 1},
8379 	{0x31, 0xff, 0xff, 1, 1},
8380 	{0x32, 0x20, 0x20, 0, 0},
8381 	{0x33, 0, 0, 0, 0},
8382 	{0x34, 0x88, 0x88, 0, 0},
8383 	{0x35, 0x32, 0x32, 0, 0},
8384 	{0x36, 0x77, 0x77, 0, 0},
8385 	{0x37, 0x17, 0x17, 1, 1},
8386 	{0x38, 0xf0, 0xf0, 1, 1},
8387 	{0x39, 0x20, 0x20, 0, 0},
8388 	{0x3A, 0x8, 0x8, 0, 0},
8389 	{0x3B, 0x99, 0x99, 0, 0},
8390 	{0x3C, 0, 0, 0, 0},
8391 	{0x3D, 0x44, 0x44, 1, 1},
8392 	{0x3E, 0, 0, 0, 0},
8393 	{0x3F, 0x44, 0x44, 0, 0},
8394 	{0x40, 0xf, 0xf, 1, 1},
8395 	{0x41, 0x6, 0x6, 0, 0},
8396 	{0x42, 0x4, 0x4, 0, 0},
8397 	{0x43, 0x50, 0x50, 1, 1},
8398 	{0x44, 0x8, 0x8, 0, 0},
8399 	{0x45, 0x99, 0x99, 0, 0},
8400 	{0x46, 0, 0, 0, 0},
8401 	{0x47, 0x11, 0x11, 0, 0},
8402 	{0x48, 0, 0, 0, 0},
8403 	{0x49, 0x44, 0x44, 0, 0},
8404 	{0x4A, 0x7, 0x7, 0, 0},
8405 	{0x4B, 0x6, 0x6, 0, 0},
8406 	{0x4C, 0x4, 0x4, 0, 0},
8407 	{0x4D, 0, 0, 0, 0},
8408 	{0x4E, 0, 0, 0, 0},
8409 	{0x4F, 0x66, 0x66, 0, 0},
8410 	{0x50, 0x66, 0x66, 0, 0},
8411 	{0x51, 0x57, 0x57, 0, 0},
8412 	{0x52, 0x57, 0x57, 0, 0},
8413 	{0x53, 0x44, 0x44, 0, 0},
8414 	{0x54, 0, 0, 0, 0},
8415 	{0x55, 0, 0, 0, 0},
8416 	{0x56, 0x8, 0x8, 0, 0},
8417 	{0x57, 0x8, 0x8, 0, 0},
8418 	{0x58, 0x7, 0x7, 0, 0},
8419 	{0x59, 0x22, 0x22, 0, 0},
8420 	{0x5A, 0x22, 0x22, 0, 0},
8421 	{0x5B, 0x2, 0x2, 0, 0},
8422 	{0x5C, 0x23, 0x23, 0, 0},
8423 	{0x5D, 0x7, 0x7, 0, 0},
8424 	{0x5E, 0x55, 0x55, 0, 0},
8425 	{0x5F, 0x23, 0x23, 0, 0},
8426 	{0x60, 0x41, 0x41, 0, 0},
8427 	{0x61, 0x1, 0x1, 0, 0},
8428 	{0x62, 0xa, 0xa, 0, 0},
8429 	{0x63, 0, 0, 0, 0},
8430 	{0x64, 0, 0, 0, 0},
8431 	{0x65, 0, 0, 0, 0},
8432 	{0x66, 0, 0, 0, 0},
8433 	{0x67, 0, 0, 0, 0},
8434 	{0x68, 0, 0, 0, 0},
8435 	{0x69, 0, 0, 0, 0},
8436 	{0x6A, 0, 0, 0, 0},
8437 	{0x6B, 0xc, 0xc, 0, 0},
8438 	{0x6C, 0, 0, 0, 0},
8439 	{0x6D, 0, 0, 0, 0},
8440 	{0x6E, 0, 0, 0, 0},
8441 	{0x6F, 0, 0, 0, 0},
8442 	{0x70, 0, 0, 0, 0},
8443 	{0x71, 0, 0, 0, 0},
8444 	{0x72, 0x22, 0x22, 0, 0},
8445 	{0x73, 0x22, 0x22, 0, 0},
8446 	{0x74, 0x2, 0x2, 0, 0},
8447 	{0x75, 0xa, 0xa, 0, 0},
8448 	{0x76, 0x1, 0x1, 0, 0},
8449 	{0x77, 0x22, 0x22, 0, 0},
8450 	{0x78, 0x30, 0x30, 0, 0},
8451 	{0x79, 0, 0, 0, 0},
8452 	{0x7A, 0, 0, 0, 0},
8453 	{0x7B, 0, 0, 0, 0},
8454 	{0x7C, 0, 0, 0, 0},
8455 	{0x7D, 0, 0, 0, 0},
8456 	{0x7E, 0, 0, 0, 0},
8457 	{0x7F, 0, 0, 0, 0},
8458 	{0x80, 0, 0, 0, 0},
8459 	{0x81, 0, 0, 0, 0},
8460 	{0x82, 0, 0, 0, 0},
8461 	{0x83, 0, 0, 0, 0},
8462 	{0x84, 0, 0, 0, 0},
8463 	{0x85, 0, 0, 0, 0},
8464 	{0x86, 0, 0, 0, 0},
8465 	{0x87, 0, 0, 0, 0},
8466 	{0x88, 0, 0, 0, 0},
8467 	{0x89, 0, 0, 0, 0},
8468 	{0x8A, 0, 0, 0, 0},
8469 	{0x8B, 0, 0, 0, 0},
8470 	{0x8C, 0, 0, 0, 0},
8471 	{0x8D, 0, 0, 0, 0},
8472 	{0x8E, 0, 0, 0, 0},
8473 	{0x8F, 0, 0, 0, 0},
8474 	{0x90, 0, 0, 0, 0},
8475 	{0x91, 0, 0, 0, 0},
8476 	{0x92, 0, 0, 0, 0},
8477 	{0x93, 0, 0, 0, 0},
8478 	{0x94, 0, 0, 0, 0},
8479 	{0xFFFF, 0, 0, 0, 0}
8480 };
8481 
8482 static struct radio_regs regs_SYN_2056_A1[] = {
8483 	{0x02, 0, 0, 0, 0},
8484 	{0x03, 0, 0, 0, 0},
8485 	{0x04, 0, 0, 0, 0},
8486 	{0x05, 0, 0, 0, 0},
8487 	{0x06, 0, 0, 0, 0},
8488 	{0x07, 0, 0, 0, 0},
8489 	{0x08, 0, 0, 0, 0},
8490 	{0x09, 0x1, 0x1, 0, 0},
8491 	{0x0A, 0, 0, 0, 0},
8492 	{0x0B, 0, 0, 0, 0},
8493 	{0x0C, 0, 0, 0, 0},
8494 	{0x0D, 0, 0, 0, 0},
8495 	{0x0E, 0, 0, 0, 0},
8496 	{0x0F, 0, 0, 0, 0},
8497 	{0x10, 0, 0, 0, 0},
8498 	{0x11, 0, 0, 0, 0},
8499 	{0x12, 0, 0, 0, 0},
8500 	{0x13, 0, 0, 0, 0},
8501 	{0x14, 0, 0, 0, 0},
8502 	{0x15, 0, 0, 0, 0},
8503 	{0x16, 0, 0, 0, 0},
8504 	{0x17, 0, 0, 0, 0},
8505 	{0x18, 0, 0, 0, 0},
8506 	{0x19, 0, 0, 0, 0},
8507 	{0x1A, 0, 0, 0, 0},
8508 	{0x1B, 0, 0, 0, 0},
8509 	{0x1C, 0, 0, 0, 0},
8510 	{0x1D, 0, 0, 0, 0},
8511 	{0x1E, 0, 0, 0, 0},
8512 	{0x1F, 0, 0, 0, 0},
8513 	{0x20, 0, 0, 0, 0},
8514 	{0x21, 0, 0, 0, 0},
8515 	{0x22, 0x60, 0x60, 0, 0},
8516 	{0x23, 0x6, 0x6, 0, 0},
8517 	{0x24, 0xc, 0xc, 0, 0},
8518 	{0x25, 0, 0, 0, 0},
8519 	{0x26, 0, 0, 0, 0},
8520 	{0x27, 0, 0, 0, 0},
8521 	{0x28, 0x1, 0x1, 0, 0},
8522 	{0x29, 0, 0, 0, 0},
8523 	{0x2A, 0, 0, 0, 0},
8524 	{0x2B, 0, 0, 0, 0},
8525 	{0x2C, 0, 0, 0, 0},
8526 	{0x2D, 0, 0, 0, 0},
8527 	{0x2E, 0xd, 0xd, 0, 0},
8528 	{0x2F, 0x1f, 0x1f, 0, 0},
8529 	{0x30, 0x15, 0x15, 0, 0},
8530 	{0x31, 0xf, 0xf, 0, 0},
8531 	{0x32, 0, 0, 0, 0},
8532 	{0x33, 0, 0, 0, 0},
8533 	{0x34, 0, 0, 0, 0},
8534 	{0x35, 0, 0, 0, 0},
8535 	{0x36, 0, 0, 0, 0},
8536 	{0x37, 0, 0, 0, 0},
8537 	{0x38, 0, 0, 0, 0},
8538 	{0x39, 0, 0, 0, 0},
8539 	{0x3A, 0, 0, 0, 0},
8540 	{0x3B, 0, 0, 0, 0},
8541 	{0x3C, 0x13, 0x13, 0, 0},
8542 	{0x3D, 0xf, 0xf, 0, 0},
8543 	{0x3E, 0x18, 0x18, 0, 0},
8544 	{0x3F, 0, 0, 0, 0},
8545 	{0x40, 0, 0, 0, 0},
8546 	{0x41, 0x20, 0x20, 0, 0},
8547 	{0x42, 0x20, 0x20, 0, 0},
8548 	{0x43, 0, 0, 0, 0},
8549 	{0x44, 0x77, 0x77, 0, 0},
8550 	{0x45, 0x7, 0x7, 0, 0},
8551 	{0x46, 0x1, 0x1, 0, 0},
8552 	{0x47, 0x4, 0x4, 0, 0},
8553 	{0x48, 0xf, 0xf, 0, 0},
8554 	{0x49, 0x30, 0x30, 0, 0},
8555 	{0x4A, 0x32, 0x32, 0, 0},
8556 	{0x4B, 0xd, 0xd, 0, 0},
8557 	{0x4C, 0xd, 0xd, 0, 0},
8558 	{0x4D, 0x4, 0x4, 0, 0},
8559 	{0x4E, 0x6, 0x6, 0, 0},
8560 	{0x4F, 0x1, 0x1, 0, 0},
8561 	{0x50, 0x1c, 0x1c, 0, 0},
8562 	{0x51, 0x2, 0x2, 0, 0},
8563 	{0x52, 0x2, 0x2, 0, 0},
8564 	{0x53, 0xf7, 0xf7, 1, 1},
8565 	{0x54, 0xb4, 0xb4, 0, 0},
8566 	{0x55, 0xd2, 0xd2, 0, 0},
8567 	{0x56, 0, 0, 0, 0},
8568 	{0x57, 0, 0, 0, 0},
8569 	{0x58, 0x4, 0x4, 0, 0},
8570 	{0x59, 0x96, 0x96, 0, 0},
8571 	{0x5A, 0x3e, 0x3e, 0, 0},
8572 	{0x5B, 0x3e, 0x3e, 0, 0},
8573 	{0x5C, 0x13, 0x13, 0, 0},
8574 	{0x5D, 0x2, 0x2, 0, 0},
8575 	{0x5E, 0, 0, 0, 0},
8576 	{0x5F, 0x7, 0x7, 0, 0},
8577 	{0x60, 0x7, 0x7, 1, 1},
8578 	{0x61, 0x8, 0x8, 0, 0},
8579 	{0x62, 0x3, 0x3, 0, 0},
8580 	{0x63, 0, 0, 0, 0},
8581 	{0x64, 0, 0, 0, 0},
8582 	{0x65, 0, 0, 0, 0},
8583 	{0x66, 0, 0, 0, 0},
8584 	{0x67, 0, 0, 0, 0},
8585 	{0x68, 0x40, 0x40, 0, 0},
8586 	{0x69, 0, 0, 0, 0},
8587 	{0x6A, 0, 0, 0, 0},
8588 	{0x6B, 0, 0, 0, 0},
8589 	{0x6C, 0, 0, 0, 0},
8590 	{0x6D, 0x1, 0x1, 0, 0},
8591 	{0x6E, 0, 0, 0, 0},
8592 	{0x6F, 0, 0, 0, 0},
8593 	{0x70, 0x60, 0x60, 0, 0},
8594 	{0x71, 0x66, 0x66, 0, 0},
8595 	{0x72, 0xc, 0xc, 0, 0},
8596 	{0x73, 0x66, 0x66, 0, 0},
8597 	{0x74, 0x8f, 0x8f, 1, 1},
8598 	{0x75, 0, 0, 0, 0},
8599 	{0x76, 0xcc, 0xcc, 0, 0},
8600 	{0x77, 0x1, 0x1, 0, 0},
8601 	{0x78, 0x66, 0x66, 0, 0},
8602 	{0x79, 0x66, 0x66, 0, 0},
8603 	{0x7A, 0, 0, 0, 0},
8604 	{0x7B, 0, 0, 0, 0},
8605 	{0x7C, 0, 0, 0, 0},
8606 	{0x7D, 0, 0, 0, 0},
8607 	{0x7E, 0, 0, 0, 0},
8608 	{0x7F, 0, 0, 0, 0},
8609 	{0x80, 0, 0, 0, 0},
8610 	{0x81, 0, 0, 0, 0},
8611 	{0x82, 0, 0, 0, 0},
8612 	{0x83, 0, 0, 0, 0},
8613 	{0x84, 0, 0, 0, 0},
8614 	{0x85, 0xff, 0xff, 0, 0},
8615 	{0x86, 0, 0, 0, 0},
8616 	{0x87, 0, 0, 0, 0},
8617 	{0x88, 0, 0, 0, 0},
8618 	{0x89, 0, 0, 0, 0},
8619 	{0x8A, 0, 0, 0, 0},
8620 	{0x8B, 0, 0, 0, 0},
8621 	{0x8C, 0, 0, 0, 0},
8622 	{0x8D, 0, 0, 0, 0},
8623 	{0x8E, 0, 0, 0, 0},
8624 	{0x8F, 0, 0, 0, 0},
8625 	{0x90, 0, 0, 0, 0},
8626 	{0x91, 0, 0, 0, 0},
8627 	{0x92, 0, 0, 0, 0},
8628 	{0x93, 0, 0, 0, 0},
8629 	{0x94, 0, 0, 0, 0},
8630 	{0x95, 0, 0, 0, 0},
8631 	{0x96, 0, 0, 0, 0},
8632 	{0x97, 0, 0, 0, 0},
8633 	{0x98, 0, 0, 0, 0},
8634 	{0x99, 0, 0, 0, 0},
8635 	{0x9A, 0, 0, 0, 0},
8636 	{0x9B, 0, 0, 0, 0},
8637 	{0x9C, 0, 0, 0, 0},
8638 	{0x9D, 0, 0, 0, 0},
8639 	{0x9E, 0, 0, 0, 0},
8640 	{0x9F, 0x6, 0x6, 0, 0},
8641 	{0xA0, 0x66, 0x66, 0, 0},
8642 	{0xA1, 0x66, 0x66, 0, 0},
8643 	{0xA2, 0x66, 0x66, 0, 0},
8644 	{0xA3, 0x66, 0x66, 0, 0},
8645 	{0xA4, 0x66, 0x66, 0, 0},
8646 	{0xA5, 0x66, 0x66, 0, 0},
8647 	{0xA6, 0x66, 0x66, 0, 0},
8648 	{0xA7, 0x66, 0x66, 0, 0},
8649 	{0xA8, 0x66, 0x66, 0, 0},
8650 	{0xA9, 0x66, 0x66, 0, 0},
8651 	{0xAA, 0x66, 0x66, 0, 0},
8652 	{0xAB, 0x66, 0x66, 0, 0},
8653 	{0xAC, 0x66, 0x66, 0, 0},
8654 	{0xAD, 0x66, 0x66, 0, 0},
8655 	{0xAE, 0x66, 0x66, 0, 0},
8656 	{0xAF, 0x66, 0x66, 0, 0},
8657 	{0xB0, 0x66, 0x66, 0, 0},
8658 	{0xB1, 0x66, 0x66, 0, 0},
8659 	{0xB2, 0x66, 0x66, 0, 0},
8660 	{0xB3, 0xa, 0xa, 0, 0},
8661 	{0xB4, 0, 0, 0, 0},
8662 	{0xB5, 0, 0, 0, 0},
8663 	{0xB6, 0, 0, 0, 0},
8664 	{0xFFFF, 0, 0, 0, 0}
8665 };
8666 
8667 static struct radio_regs regs_TX_2056_A1[] = {
8668 	{0x02, 0, 0, 0, 0},
8669 	{0x03, 0, 0, 0, 0},
8670 	{0x04, 0, 0, 0, 0},
8671 	{0x05, 0, 0, 0, 0},
8672 	{0x06, 0, 0, 0, 0},
8673 	{0x07, 0, 0, 0, 0},
8674 	{0x08, 0, 0, 0, 0},
8675 	{0x09, 0, 0, 0, 0},
8676 	{0x0A, 0, 0, 0, 0},
8677 	{0x0B, 0, 0, 0, 0},
8678 	{0x0C, 0, 0, 0, 0},
8679 	{0x0D, 0, 0, 0, 0},
8680 	{0x0E, 0, 0, 0, 0},
8681 	{0x0F, 0, 0, 0, 0},
8682 	{0x10, 0, 0, 0, 0},
8683 	{0x11, 0, 0, 0, 0},
8684 	{0x12, 0, 0, 0, 0},
8685 	{0x13, 0, 0, 0, 0},
8686 	{0x14, 0, 0, 0, 0},
8687 	{0x15, 0, 0, 0, 0},
8688 	{0x16, 0, 0, 0, 0},
8689 	{0x17, 0, 0, 0, 0},
8690 	{0x18, 0, 0, 0, 0},
8691 	{0x19, 0, 0, 0, 0},
8692 	{0x1A, 0, 0, 0, 0},
8693 	{0x1B, 0, 0, 0, 0},
8694 	{0x1C, 0, 0, 0, 0},
8695 	{0x1D, 0, 0, 0, 0},
8696 	{0x1E, 0, 0, 0, 0},
8697 	{0x1F, 0, 0, 0, 0},
8698 	{0x20, 0, 0, 0, 0},
8699 	{0x21, 0x88, 0x88, 0, 0},
8700 	{0x22, 0x88, 0x88, 0, 0},
8701 	{0x23, 0x88, 0x88, 0, 0},
8702 	{0x24, 0x88, 0x88, 0, 0},
8703 	{0x25, 0xc, 0xc, 0, 0},
8704 	{0x26, 0, 0, 0, 0},
8705 	{0x27, 0x3, 0x3, 0, 0},
8706 	{0x28, 0, 0, 0, 0},
8707 	{0x29, 0x3, 0x3, 0, 0},
8708 	{0x2A, 0x37, 0x37, 0, 0},
8709 	{0x2B, 0x3, 0x3, 0, 0},
8710 	{0x2C, 0, 0, 0, 0},
8711 	{0x2D, 0, 0, 0, 0},
8712 	{0x2E, 0x1, 0x1, 0, 0},
8713 	{0x2F, 0x1, 0x1, 0, 0},
8714 	{0x30, 0, 0, 0, 0},
8715 	{0x31, 0, 0, 0, 0},
8716 	{0x32, 0, 0, 0, 0},
8717 	{0x33, 0x11, 0x11, 0, 0},
8718 	{0x34, 0x11, 0x11, 0, 0},
8719 	{0x35, 0, 0, 0, 0},
8720 	{0x36, 0, 0, 0, 0},
8721 	{0x37, 0x3, 0x3, 0, 0},
8722 	{0x38, 0xf, 0xf, 0, 0},
8723 	{0x39, 0, 0, 0, 0},
8724 	{0x3A, 0x2d, 0x2d, 0, 0},
8725 	{0x3B, 0, 0, 0, 0},
8726 	{0x3C, 0x6e, 0x6e, 0, 0},
8727 	{0x3D, 0xf0, 0xf0, 1, 1},
8728 	{0x3E, 0, 0, 0, 0},
8729 	{0x3F, 0, 0, 0, 0},
8730 	{0x40, 0, 0, 0, 0},
8731 	{0x41, 0x3, 0x3, 0, 0},
8732 	{0x42, 0x3, 0x3, 0, 0},
8733 	{0x43, 0, 0, 0, 0},
8734 	{0x44, 0x1e, 0x1e, 0, 0},
8735 	{0x45, 0, 0, 0, 0},
8736 	{0x46, 0x6e, 0x6e, 0, 0},
8737 	{0x47, 0xf0, 0xf0, 1, 1},
8738 	{0x48, 0, 0, 0, 0},
8739 	{0x49, 0x2, 0x2, 0, 0},
8740 	{0x4A, 0xff, 0xff, 1, 1},
8741 	{0x4B, 0xc, 0xc, 0, 0},
8742 	{0x4C, 0, 0, 0, 0},
8743 	{0x4D, 0x38, 0x38, 0, 0},
8744 	{0x4E, 0x70, 0x70, 1, 1},
8745 	{0x4F, 0x2, 0x2, 0, 0},
8746 	{0x50, 0x88, 0x88, 0, 0},
8747 	{0x51, 0xc, 0xc, 0, 0},
8748 	{0x52, 0, 0, 0, 0},
8749 	{0x53, 0x8, 0x8, 0, 0},
8750 	{0x54, 0x70, 0x70, 1, 1},
8751 	{0x55, 0x2, 0x2, 0, 0},
8752 	{0x56, 0xff, 0xff, 1, 1},
8753 	{0x57, 0, 0, 0, 0},
8754 	{0x58, 0x83, 0x83, 0, 0},
8755 	{0x59, 0x77, 0x77, 1, 1},
8756 	{0x5A, 0, 0, 0, 0},
8757 	{0x5B, 0x2, 0x2, 0, 0},
8758 	{0x5C, 0x88, 0x88, 0, 0},
8759 	{0x5D, 0, 0, 0, 0},
8760 	{0x5E, 0x8, 0x8, 0, 0},
8761 	{0x5F, 0x77, 0x77, 1, 1},
8762 	{0x60, 0x1, 0x1, 0, 0},
8763 	{0x61, 0, 0, 0, 0},
8764 	{0x62, 0x7, 0x7, 0, 0},
8765 	{0x63, 0, 0, 0, 0},
8766 	{0x64, 0x7, 0x7, 0, 0},
8767 	{0x65, 0, 0, 0, 0},
8768 	{0x66, 0, 0, 0, 0},
8769 	{0x67, 0x72, 0x72, 1, 1},
8770 	{0x68, 0, 0, 0, 0},
8771 	{0x69, 0xa, 0xa, 0, 0},
8772 	{0x6A, 0, 0, 0, 0},
8773 	{0x6B, 0, 0, 0, 0},
8774 	{0x6C, 0, 0, 0, 0},
8775 	{0x6D, 0, 0, 0, 0},
8776 	{0x6E, 0, 0, 0, 0},
8777 	{0x6F, 0, 0, 0, 0},
8778 	{0x70, 0, 0, 0, 0},
8779 	{0x71, 0x2, 0x2, 0, 0},
8780 	{0x72, 0, 0, 0, 0},
8781 	{0x73, 0, 0, 0, 0},
8782 	{0x74, 0xe, 0xe, 0, 0},
8783 	{0x75, 0xe, 0xe, 0, 0},
8784 	{0x76, 0xe, 0xe, 0, 0},
8785 	{0x77, 0x13, 0x13, 0, 0},
8786 	{0x78, 0x13, 0x13, 0, 0},
8787 	{0x79, 0x1b, 0x1b, 0, 0},
8788 	{0x7A, 0x1b, 0x1b, 0, 0},
8789 	{0x7B, 0x55, 0x55, 0, 0},
8790 	{0x7C, 0x5b, 0x5b, 0, 0},
8791 	{0x7D, 0, 0, 0, 0},
8792 	{0x7E, 0, 0, 0, 0},
8793 	{0x7F, 0, 0, 0, 0},
8794 	{0x80, 0, 0, 0, 0},
8795 	{0x81, 0, 0, 0, 0},
8796 	{0x82, 0, 0, 0, 0},
8797 	{0x83, 0, 0, 0, 0},
8798 	{0x84, 0, 0, 0, 0},
8799 	{0x85, 0, 0, 0, 0},
8800 	{0x86, 0, 0, 0, 0},
8801 	{0x87, 0, 0, 0, 0},
8802 	{0x88, 0, 0, 0, 0},
8803 	{0x89, 0, 0, 0, 0},
8804 	{0x8A, 0, 0, 0, 0},
8805 	{0x8B, 0, 0, 0, 0},
8806 	{0x8C, 0, 0, 0, 0},
8807 	{0x8D, 0, 0, 0, 0},
8808 	{0x8E, 0, 0, 0, 0},
8809 	{0x8F, 0, 0, 0, 0},
8810 	{0x90, 0, 0, 0, 0},
8811 	{0x91, 0, 0, 0, 0},
8812 	{0x92, 0, 0, 0, 0},
8813 	{0xFFFF, 0, 0, 0, 0}
8814 };
8815 
8816 static struct radio_regs regs_RX_2056_A1[] = {
8817 	{0x02, 0, 0, 0, 0},
8818 	{0x03, 0, 0, 0, 0},
8819 	{0x04, 0, 0, 0, 0},
8820 	{0x05, 0, 0, 0, 0},
8821 	{0x06, 0, 0, 0, 0},
8822 	{0x07, 0, 0, 0, 0},
8823 	{0x08, 0, 0, 0, 0},
8824 	{0x09, 0, 0, 0, 0},
8825 	{0x0A, 0, 0, 0, 0},
8826 	{0x0B, 0, 0, 0, 0},
8827 	{0x0C, 0, 0, 0, 0},
8828 	{0x0D, 0, 0, 0, 0},
8829 	{0x0E, 0, 0, 0, 0},
8830 	{0x0F, 0, 0, 0, 0},
8831 	{0x10, 0, 0, 0, 0},
8832 	{0x11, 0, 0, 0, 0},
8833 	{0x12, 0, 0, 0, 0},
8834 	{0x13, 0, 0, 0, 0},
8835 	{0x14, 0, 0, 0, 0},
8836 	{0x15, 0, 0, 0, 0},
8837 	{0x16, 0, 0, 0, 0},
8838 	{0x17, 0, 0, 0, 0},
8839 	{0x18, 0, 0, 0, 0},
8840 	{0x19, 0, 0, 0, 0},
8841 	{0x1A, 0, 0, 0, 0},
8842 	{0x1B, 0, 0, 0, 0},
8843 	{0x1C, 0, 0, 0, 0},
8844 	{0x1D, 0, 0, 0, 0},
8845 	{0x1E, 0, 0, 0, 0},
8846 	{0x1F, 0, 0, 0, 0},
8847 	{0x20, 0x3, 0x3, 0, 0},
8848 	{0x21, 0, 0, 0, 0},
8849 	{0x22, 0, 0, 0, 0},
8850 	{0x23, 0x90, 0x90, 0, 0},
8851 	{0x24, 0x55, 0x55, 0, 0},
8852 	{0x25, 0x15, 0x15, 0, 0},
8853 	{0x26, 0x5, 0x5, 0, 0},
8854 	{0x27, 0x15, 0x15, 0, 0},
8855 	{0x28, 0x5, 0x5, 0, 0},
8856 	{0x29, 0x20, 0x20, 0, 0},
8857 	{0x2A, 0x11, 0x11, 0, 0},
8858 	{0x2B, 0x90, 0x90, 0, 0},
8859 	{0x2C, 0, 0, 0, 0},
8860 	{0x2D, 0x88, 0x88, 0, 0},
8861 	{0x2E, 0x32, 0x32, 0, 0},
8862 	{0x2F, 0x77, 0x77, 0, 0},
8863 	{0x30, 0x17, 0x17, 1, 1},
8864 	{0x31, 0xff, 0xff, 1, 1},
8865 	{0x32, 0x20, 0x20, 0, 0},
8866 	{0x33, 0, 0, 0, 0},
8867 	{0x34, 0x88, 0x88, 0, 0},
8868 	{0x35, 0x32, 0x32, 0, 0},
8869 	{0x36, 0x77, 0x77, 0, 0},
8870 	{0x37, 0x17, 0x17, 1, 1},
8871 	{0x38, 0xf0, 0xf0, 1, 1},
8872 	{0x39, 0x20, 0x20, 0, 0},
8873 	{0x3A, 0x8, 0x8, 0, 0},
8874 	{0x3B, 0x55, 0x55, 1, 1},
8875 	{0x3C, 0, 0, 0, 0},
8876 	{0x3D, 0x44, 0x44, 1, 1},
8877 	{0x3E, 0, 0, 0, 0},
8878 	{0x3F, 0x44, 0x44, 0, 0},
8879 	{0x40, 0xf, 0xf, 1, 1},
8880 	{0x41, 0x6, 0x6, 0, 0},
8881 	{0x42, 0x4, 0x4, 0, 0},
8882 	{0x43, 0x50, 0x50, 1, 1},
8883 	{0x44, 0x8, 0x8, 0, 0},
8884 	{0x45, 0x55, 0x55, 1, 1},
8885 	{0x46, 0, 0, 0, 0},
8886 	{0x47, 0x11, 0x11, 0, 0},
8887 	{0x48, 0, 0, 0, 0},
8888 	{0x49, 0x44, 0x44, 0, 0},
8889 	{0x4A, 0x7, 0x7, 0, 0},
8890 	{0x4B, 0x6, 0x6, 0, 0},
8891 	{0x4C, 0x4, 0x4, 0, 0},
8892 	{0x4D, 0, 0, 0, 0},
8893 	{0x4E, 0, 0, 0, 0},
8894 	{0x4F, 0x26, 0x26, 1, 1},
8895 	{0x50, 0x26, 0x26, 1, 1},
8896 	{0x51, 0xf, 0xf, 1, 1},
8897 	{0x52, 0xf, 0xf, 1, 1},
8898 	{0x53, 0x44, 0x44, 0, 0},
8899 	{0x54, 0, 0, 0, 0},
8900 	{0x55, 0, 0, 0, 0},
8901 	{0x56, 0x8, 0x8, 0, 0},
8902 	{0x57, 0x8, 0x8, 0, 0},
8903 	{0x58, 0x7, 0x7, 0, 0},
8904 	{0x59, 0x22, 0x22, 0, 0},
8905 	{0x5A, 0x22, 0x22, 0, 0},
8906 	{0x5B, 0x2, 0x2, 0, 0},
8907 	{0x5C, 0x2f, 0x2f, 1, 1},
8908 	{0x5D, 0x7, 0x7, 0, 0},
8909 	{0x5E, 0x55, 0x55, 0, 0},
8910 	{0x5F, 0x23, 0x23, 0, 0},
8911 	{0x60, 0x41, 0x41, 0, 0},
8912 	{0x61, 0x1, 0x1, 0, 0},
8913 	{0x62, 0xa, 0xa, 0, 0},
8914 	{0x63, 0, 0, 0, 0},
8915 	{0x64, 0, 0, 0, 0},
8916 	{0x65, 0, 0, 0, 0},
8917 	{0x66, 0, 0, 0, 0},
8918 	{0x67, 0, 0, 0, 0},
8919 	{0x68, 0, 0, 0, 0},
8920 	{0x69, 0, 0, 0, 0},
8921 	{0x6A, 0, 0, 0, 0},
8922 	{0x6B, 0xc, 0xc, 0, 0},
8923 	{0x6C, 0, 0, 0, 0},
8924 	{0x6D, 0, 0, 0, 0},
8925 	{0x6E, 0, 0, 0, 0},
8926 	{0x6F, 0, 0, 0, 0},
8927 	{0x70, 0, 0, 0, 0},
8928 	{0x71, 0, 0, 0, 0},
8929 	{0x72, 0x22, 0x22, 0, 0},
8930 	{0x73, 0x22, 0x22, 0, 0},
8931 	{0x74, 0, 0, 1, 1},
8932 	{0x75, 0xa, 0xa, 0, 0},
8933 	{0x76, 0x1, 0x1, 0, 0},
8934 	{0x77, 0x22, 0x22, 0, 0},
8935 	{0x78, 0x30, 0x30, 0, 0},
8936 	{0x79, 0, 0, 0, 0},
8937 	{0x7A, 0, 0, 0, 0},
8938 	{0x7B, 0, 0, 0, 0},
8939 	{0x7C, 0, 0, 0, 0},
8940 	{0x7D, 0, 0, 0, 0},
8941 	{0x7E, 0, 0, 0, 0},
8942 	{0x7F, 0, 0, 0, 0},
8943 	{0x80, 0, 0, 0, 0},
8944 	{0x81, 0, 0, 0, 0},
8945 	{0x82, 0, 0, 0, 0},
8946 	{0x83, 0, 0, 0, 0},
8947 	{0x84, 0, 0, 0, 0},
8948 	{0x85, 0, 0, 0, 0},
8949 	{0x86, 0, 0, 0, 0},
8950 	{0x87, 0, 0, 0, 0},
8951 	{0x88, 0, 0, 0, 0},
8952 	{0x89, 0, 0, 0, 0},
8953 	{0x8A, 0, 0, 0, 0},
8954 	{0x8B, 0, 0, 0, 0},
8955 	{0x8C, 0, 0, 0, 0},
8956 	{0x8D, 0, 0, 0, 0},
8957 	{0x8E, 0, 0, 0, 0},
8958 	{0x8F, 0, 0, 0, 0},
8959 	{0x90, 0, 0, 0, 0},
8960 	{0x91, 0, 0, 0, 0},
8961 	{0x92, 0, 0, 0, 0},
8962 	{0x93, 0, 0, 0, 0},
8963 	{0x94, 0, 0, 0, 0},
8964 	{0xFFFF, 0, 0, 0, 0}
8965 };
8966 
8967 static struct radio_regs regs_SYN_2056_rev5[] = {
8968 	{0x02, 0, 0, 0, 0},
8969 	{0x03, 0, 0, 0, 0},
8970 	{0x04, 0, 0, 0, 0},
8971 	{0x05, 0, 0, 0, 0},
8972 	{0x06, 0, 0, 0, 0},
8973 	{0x07, 0, 0, 0, 0},
8974 	{0x08, 0, 0, 0, 0},
8975 	{0x09, 0x1, 0x1, 0, 0},
8976 	{0x0A, 0, 0, 0, 0},
8977 	{0x0B, 0, 0, 0, 0},
8978 	{0x0C, 0, 0, 0, 0},
8979 	{0x0D, 0, 0, 0, 0},
8980 	{0x0E, 0, 0, 0, 0},
8981 	{0x0F, 0, 0, 0, 0},
8982 	{0x10, 0, 0, 0, 0},
8983 	{0x11, 0, 0, 0, 0},
8984 	{0x12, 0, 0, 0, 0},
8985 	{0x13, 0, 0, 0, 0},
8986 	{0x14, 0, 0, 0, 0},
8987 	{0x15, 0, 0, 0, 0},
8988 	{0x16, 0, 0, 0, 0},
8989 	{0x17, 0, 0, 0, 0},
8990 	{0x18, 0, 0, 0, 0},
8991 	{0x19, 0, 0, 0, 0},
8992 	{0x1A, 0, 0, 0, 0},
8993 	{0x1B, 0, 0, 0, 0},
8994 	{0x1C, 0, 0, 0, 0},
8995 	{0x1D, 0, 0, 0, 0},
8996 	{0x1E, 0, 0, 0, 0},
8997 	{0x1F, 0, 0, 0, 0},
8998 	{0x20, 0, 0, 0, 0},
8999 	{0x21, 0, 0, 0, 0},
9000 	{0x22, 0x60, 0x60, 0, 0},
9001 	{0x23, 0x6, 0x6, 0, 0},
9002 	{0x24, 0xc, 0xc, 0, 0},
9003 	{0x25, 0, 0, 0, 0},
9004 	{0x26, 0, 0, 0, 0},
9005 	{0x27, 0, 0, 0, 0},
9006 	{0x28, 0x1, 0x1, 0, 0},
9007 	{0x29, 0, 0, 0, 0},
9008 	{0x2A, 0, 0, 0, 0},
9009 	{0x2B, 0, 0, 0, 0},
9010 	{0x2C, 0, 0, 0, 0},
9011 	{0x2D, 0, 0, 0, 0},
9012 	{0x2E, 0, 0, 0, 0},
9013 	{0x2F, 0x1f, 0x1f, 0, 0},
9014 	{0x30, 0x15, 0x15, 0, 0},
9015 	{0x31, 0xf, 0xf, 0, 0},
9016 	{0x32, 0, 0, 0, 0},
9017 	{0x33, 0, 0, 0, 0},
9018 	{0x34, 0, 0, 0, 0},
9019 	{0x35, 0, 0, 0, 0},
9020 	{0x36, 0, 0, 0, 0},
9021 	{0x37, 0, 0, 0, 0},
9022 	{0x38, 0, 0, 0, 0},
9023 	{0x39, 0, 0, 0, 0},
9024 	{0x3A, 0, 0, 0, 0},
9025 	{0x3B, 0, 0, 0, 0},
9026 	{0x3C, 0x13, 0x13, 0, 0},
9027 	{0x3D, 0xf, 0xf, 0, 0},
9028 	{0x3E, 0x18, 0x18, 0, 0},
9029 	{0x3F, 0, 0, 0, 0},
9030 	{0x40, 0, 0, 0, 0},
9031 	{0x41, 0x20, 0x20, 0, 0},
9032 	{0x42, 0x20, 0x20, 0, 0},
9033 	{0x43, 0, 0, 0, 0},
9034 	{0x44, 0x77, 0x77, 0, 0},
9035 	{0x45, 0x7, 0x7, 0, 0},
9036 	{0x46, 0x1, 0x1, 0, 0},
9037 	{0x47, 0x4, 0x4, 0, 0},
9038 	{0x48, 0xf, 0xf, 0, 0},
9039 	{0x49, 0x30, 0x30, 0, 0},
9040 	{0x4A, 0x32, 0x32, 0, 0},
9041 	{0x4B, 0xd, 0xd, 0, 0},
9042 	{0x4C, 0xd, 0xd, 0, 0},
9043 	{0x4D, 0x4, 0x4, 0, 0},
9044 	{0x4E, 0x6, 0x6, 0, 0},
9045 	{0x4F, 0x1, 0x1, 0, 0},
9046 	{0x50, 0x1c, 0x1c, 0, 0},
9047 	{0x51, 0x2, 0x2, 0, 0},
9048 	{0x52, 0x2, 0x2, 0, 0},
9049 	{0x53, 0xf7, 0xf7, 1, 1},
9050 	{0x54, 0xb4, 0xb4, 0, 0},
9051 	{0x55, 0xd2, 0xd2, 0, 0},
9052 	{0x56, 0, 0, 0, 0},
9053 	{0x57, 0, 0, 0, 0},
9054 	{0x58, 0x4, 0x4, 0, 0},
9055 	{0x59, 0x96, 0x96, 0, 0},
9056 	{0x5A, 0x3e, 0x3e, 0, 0},
9057 	{0x5B, 0x3e, 0x3e, 0, 0},
9058 	{0x5C, 0x13, 0x13, 0, 0},
9059 	{0x5D, 0x2, 0x2, 0, 0},
9060 	{0x5E, 0, 0, 0, 0},
9061 	{0x5F, 0x7, 0x7, 0, 0},
9062 	{0x60, 0x7, 0x7, 1, 1},
9063 	{0x61, 0x8, 0x8, 0, 0},
9064 	{0x62, 0x3, 0x3, 0, 0},
9065 	{0x63, 0, 0, 0, 0},
9066 	{0x64, 0, 0, 0, 0},
9067 	{0x65, 0, 0, 0, 0},
9068 	{0x66, 0, 0, 0, 0},
9069 	{0x67, 0, 0, 0, 0},
9070 	{0x68, 0x40, 0x40, 0, 0},
9071 	{0x69, 0, 0, 0, 0},
9072 	{0x6A, 0, 0, 0, 0},
9073 	{0x6B, 0, 0, 0, 0},
9074 	{0x6C, 0, 0, 0, 0},
9075 	{0x6D, 0x1, 0x1, 0, 0},
9076 	{0x6E, 0, 0, 0, 0},
9077 	{0x6F, 0, 0, 0, 0},
9078 	{0x70, 0x60, 0x60, 0, 0},
9079 	{0x71, 0x66, 0x66, 0, 0},
9080 	{0x72, 0xc, 0xc, 0, 0},
9081 	{0x73, 0x66, 0x66, 0, 0},
9082 	{0x74, 0x8f, 0x8f, 1, 1},
9083 	{0x75, 0, 0, 0, 0},
9084 	{0x76, 0xcc, 0xcc, 0, 0},
9085 	{0x77, 0x1, 0x1, 0, 0},
9086 	{0x78, 0x66, 0x66, 0, 0},
9087 	{0x79, 0x66, 0x66, 0, 0},
9088 	{0x7A, 0, 0, 0, 0},
9089 	{0x7B, 0, 0, 0, 0},
9090 	{0x7C, 0, 0, 0, 0},
9091 	{0x7D, 0, 0, 0, 0},
9092 	{0x7E, 0, 0, 0, 0},
9093 	{0x7F, 0, 0, 0, 0},
9094 	{0x80, 0, 0, 0, 0},
9095 	{0x81, 0, 0, 0, 0},
9096 	{0x82, 0, 0, 0, 0},
9097 	{0x83, 0, 0, 0, 0},
9098 	{0x84, 0, 0, 0, 0},
9099 	{0x85, 0xff, 0xff, 0, 0},
9100 	{0x86, 0, 0, 0, 0},
9101 	{0x87, 0, 0, 0, 0},
9102 	{0x88, 0, 0, 0, 0},
9103 	{0x89, 0, 0, 0, 0},
9104 	{0x8A, 0, 0, 0, 0},
9105 	{0x8B, 0, 0, 0, 0},
9106 	{0x8C, 0, 0, 0, 0},
9107 	{0x8D, 0, 0, 0, 0},
9108 	{0x8E, 0, 0, 0, 0},
9109 	{0x8F, 0, 0, 0, 0},
9110 	{0x90, 0, 0, 0, 0},
9111 	{0x91, 0, 0, 0, 0},
9112 	{0x92, 0, 0, 0, 0},
9113 	{0x93, 0, 0, 0, 0},
9114 	{0x94, 0, 0, 0, 0},
9115 	{0x95, 0, 0, 0, 0},
9116 	{0x96, 0, 0, 0, 0},
9117 	{0x97, 0, 0, 0, 0},
9118 	{0x98, 0, 0, 0, 0},
9119 	{0x99, 0, 0, 0, 0},
9120 	{0x9A, 0, 0, 0, 0},
9121 	{0x9B, 0, 0, 0, 0},
9122 	{0x9C, 0, 0, 0, 0},
9123 	{0x9D, 0, 0, 0, 0},
9124 	{0x9E, 0, 0, 0, 0},
9125 	{0x9F, 0x6, 0x6, 0, 0},
9126 	{0xA0, 0x66, 0x66, 0, 0},
9127 	{0xA1, 0x66, 0x66, 0, 0},
9128 	{0xA2, 0x66, 0x66, 0, 0},
9129 	{0xA3, 0x66, 0x66, 0, 0},
9130 	{0xA4, 0x66, 0x66, 0, 0},
9131 	{0xA5, 0x66, 0x66, 0, 0},
9132 	{0xA6, 0x66, 0x66, 0, 0},
9133 	{0xA7, 0x66, 0x66, 0, 0},
9134 	{0xA8, 0x66, 0x66, 0, 0},
9135 	{0xA9, 0x66, 0x66, 0, 0},
9136 	{0xAA, 0x66, 0x66, 0, 0},
9137 	{0xAB, 0x66, 0x66, 0, 0},
9138 	{0xAC, 0x66, 0x66, 0, 0},
9139 	{0xAD, 0x66, 0x66, 0, 0},
9140 	{0xAE, 0x66, 0x66, 0, 0},
9141 	{0xAF, 0x66, 0x66, 0, 0},
9142 	{0xB0, 0x66, 0x66, 0, 0},
9143 	{0xB1, 0x66, 0x66, 0, 0},
9144 	{0xB2, 0x66, 0x66, 0, 0},
9145 	{0xB3, 0xa, 0xa, 0, 0},
9146 	{0xB4, 0, 0, 0, 0},
9147 	{0xB5, 0, 0, 0, 0},
9148 	{0xB6, 0, 0, 0, 0},
9149 	{0xFFFF, 0, 0, 0, 0}
9150 };
9151 
9152 static struct radio_regs regs_TX_2056_rev5[] = {
9153 	{0x02, 0, 0, 0, 0},
9154 	{0x03, 0, 0, 0, 0},
9155 	{0x04, 0, 0, 0, 0},
9156 	{0x05, 0, 0, 0, 0},
9157 	{0x06, 0, 0, 0, 0},
9158 	{0x07, 0, 0, 0, 0},
9159 	{0x08, 0, 0, 0, 0},
9160 	{0x09, 0, 0, 0, 0},
9161 	{0x0A, 0, 0, 0, 0},
9162 	{0x0B, 0, 0, 0, 0},
9163 	{0x0C, 0, 0, 0, 0},
9164 	{0x0D, 0, 0, 0, 0},
9165 	{0x0E, 0, 0, 0, 0},
9166 	{0x0F, 0, 0, 0, 0},
9167 	{0x10, 0, 0, 0, 0},
9168 	{0x11, 0, 0, 0, 0},
9169 	{0x12, 0, 0, 0, 0},
9170 	{0x13, 0, 0, 0, 0},
9171 	{0x14, 0, 0, 0, 0},
9172 	{0x15, 0, 0, 0, 0},
9173 	{0x16, 0, 0, 0, 0},
9174 	{0x17, 0, 0, 0, 0},
9175 	{0x18, 0, 0, 0, 0},
9176 	{0x19, 0, 0, 0, 0},
9177 	{0x1A, 0, 0, 0, 0},
9178 	{0x1B, 0, 0, 0, 0},
9179 	{0x1C, 0, 0, 0, 0},
9180 	{0x1D, 0, 0, 0, 0},
9181 	{0x1E, 0, 0, 0, 0},
9182 	{0x1F, 0, 0, 0, 0},
9183 	{0x20, 0, 0, 0, 0},
9184 	{0x21, 0x88, 0x88, 0, 0},
9185 	{0x22, 0x88, 0x88, 0, 0},
9186 	{0x23, 0x88, 0x88, 0, 0},
9187 	{0x24, 0x88, 0x88, 0, 0},
9188 	{0x25, 0xc, 0xc, 0, 0},
9189 	{0x26, 0, 0, 0, 0},
9190 	{0x27, 0x3, 0x3, 0, 0},
9191 	{0x28, 0, 0, 0, 0},
9192 	{0x29, 0x3, 0x3, 0, 0},
9193 	{0x2A, 0x37, 0x37, 0, 0},
9194 	{0x2B, 0x3, 0x3, 0, 0},
9195 	{0x2C, 0, 0, 0, 0},
9196 	{0x2D, 0, 0, 0, 0},
9197 	{0x2E, 0x1, 0x1, 0, 0},
9198 	{0x2F, 0x1, 0x1, 0, 0},
9199 	{0x30, 0, 0, 0, 0},
9200 	{0x31, 0, 0, 0, 0},
9201 	{0x32, 0, 0, 0, 0},
9202 	{0x33, 0x11, 0x11, 0, 0},
9203 	{0x34, 0x11, 0x11, 0, 0},
9204 	{0x35, 0, 0, 0, 0},
9205 	{0x36, 0, 0, 0, 0},
9206 	{0x37, 0x3, 0x3, 0, 0},
9207 	{0x38, 0xf, 0xf, 0, 0},
9208 	{0x39, 0, 0, 0, 0},
9209 	{0x3A, 0x2d, 0x2d, 0, 0},
9210 	{0x3B, 0, 0, 0, 0},
9211 	{0x3C, 0x6e, 0x6e, 0, 0},
9212 	{0x3D, 0xf0, 0xf0, 1, 1},
9213 	{0x3E, 0, 0, 0, 0},
9214 	{0x3F, 0, 0, 0, 0},
9215 	{0x40, 0, 0, 0, 0},
9216 	{0x41, 0x3, 0x3, 0, 0},
9217 	{0x42, 0x3, 0x3, 0, 0},
9218 	{0x43, 0, 0, 0, 0},
9219 	{0x44, 0x1e, 0x1e, 0, 0},
9220 	{0x45, 0, 0, 0, 0},
9221 	{0x46, 0x6e, 0x6e, 0, 0},
9222 	{0x47, 0xf0, 0xf0, 1, 1},
9223 	{0x48, 0, 0, 0, 0},
9224 	{0x49, 0x2, 0x2, 0, 0},
9225 	{0x4A, 0xff, 0xff, 1, 1},
9226 	{0x4B, 0xc, 0xc, 0, 0},
9227 	{0x4C, 0, 0, 0, 0},
9228 	{0x4D, 0x38, 0x38, 0, 0},
9229 	{0x4E, 0x70, 0x70, 1, 1},
9230 	{0x4F, 0x2, 0x2, 0, 0},
9231 	{0x50, 0x88, 0x88, 0, 0},
9232 	{0x51, 0xc, 0xc, 0, 0},
9233 	{0x52, 0, 0, 0, 0},
9234 	{0x53, 0x8, 0x8, 0, 0},
9235 	{0x54, 0x70, 0x70, 1, 1},
9236 	{0x55, 0x2, 0x2, 0, 0},
9237 	{0x56, 0xff, 0xff, 1, 1},
9238 	{0x57, 0, 0, 0, 0},
9239 	{0x58, 0x83, 0x83, 0, 0},
9240 	{0x59, 0x77, 0x77, 1, 1},
9241 	{0x5A, 0, 0, 0, 0},
9242 	{0x5B, 0x2, 0x2, 0, 0},
9243 	{0x5C, 0x88, 0x88, 0, 0},
9244 	{0x5D, 0, 0, 0, 0},
9245 	{0x5E, 0x8, 0x8, 0, 0},
9246 	{0x5F, 0x77, 0x77, 1, 1},
9247 	{0x60, 0x1, 0x1, 0, 0},
9248 	{0x61, 0, 0, 0, 0},
9249 	{0x62, 0x7, 0x7, 0, 0},
9250 	{0x63, 0, 0, 0, 0},
9251 	{0x64, 0x7, 0x7, 0, 0},
9252 	{0x65, 0, 0, 0, 0},
9253 	{0x66, 0, 0, 0, 0},
9254 	{0x67, 0, 0, 1, 1},
9255 	{0x68, 0, 0, 0, 0},
9256 	{0x69, 0xa, 0xa, 0, 0},
9257 	{0x6A, 0, 0, 0, 0},
9258 	{0x6B, 0, 0, 0, 0},
9259 	{0x6C, 0, 0, 0, 0},
9260 	{0x6D, 0, 0, 0, 0},
9261 	{0x6E, 0, 0, 0, 0},
9262 	{0x6F, 0, 0, 0, 0},
9263 	{0x70, 0, 0, 0, 0},
9264 	{0x71, 0x2, 0x2, 0, 0},
9265 	{0x72, 0, 0, 0, 0},
9266 	{0x73, 0, 0, 0, 0},
9267 	{0x74, 0xe, 0xe, 0, 0},
9268 	{0x75, 0xe, 0xe, 0, 0},
9269 	{0x76, 0xe, 0xe, 0, 0},
9270 	{0x77, 0x13, 0x13, 0, 0},
9271 	{0x78, 0x13, 0x13, 0, 0},
9272 	{0x79, 0x1b, 0x1b, 0, 0},
9273 	{0x7A, 0x1b, 0x1b, 0, 0},
9274 	{0x7B, 0x55, 0x55, 0, 0},
9275 	{0x7C, 0x5b, 0x5b, 0, 0},
9276 	{0x7D, 0, 0, 0, 0},
9277 	{0x7E, 0, 0, 0, 0},
9278 	{0x7F, 0, 0, 0, 0},
9279 	{0x80, 0, 0, 0, 0},
9280 	{0x81, 0, 0, 0, 0},
9281 	{0x82, 0, 0, 0, 0},
9282 	{0x83, 0, 0, 0, 0},
9283 	{0x84, 0, 0, 0, 0},
9284 	{0x85, 0, 0, 0, 0},
9285 	{0x86, 0, 0, 0, 0},
9286 	{0x87, 0, 0, 0, 0},
9287 	{0x88, 0, 0, 0, 0},
9288 	{0x89, 0, 0, 0, 0},
9289 	{0x8A, 0, 0, 0, 0},
9290 	{0x8B, 0, 0, 0, 0},
9291 	{0x8C, 0, 0, 0, 0},
9292 	{0x8D, 0, 0, 0, 0},
9293 	{0x8E, 0, 0, 0, 0},
9294 	{0x8F, 0, 0, 0, 0},
9295 	{0x90, 0, 0, 0, 0},
9296 	{0x91, 0, 0, 0, 0},
9297 	{0x92, 0, 0, 0, 0},
9298 	{0x93, 0x70, 0x70, 0, 0},
9299 	{0x94, 0x70, 0x70, 0, 0},
9300 	{0x95, 0x71, 0x71, 1, 1},
9301 	{0x96, 0x71, 0x71, 1, 1},
9302 	{0x97, 0x72, 0x72, 1, 1},
9303 	{0x98, 0x73, 0x73, 1, 1},
9304 	{0x99, 0x74, 0x74, 1, 1},
9305 	{0x9A, 0x75, 0x75, 1, 1},
9306 	{0xFFFF, 0, 0, 0, 0}
9307 };
9308 
9309 static struct radio_regs regs_RX_2056_rev5[] = {
9310 	{0x02, 0, 0, 0, 0},
9311 	{0x03, 0, 0, 0, 0},
9312 	{0x04, 0, 0, 0, 0},
9313 	{0x05, 0, 0, 0, 0},
9314 	{0x06, 0, 0, 0, 0},
9315 	{0x07, 0, 0, 0, 0},
9316 	{0x08, 0, 0, 0, 0},
9317 	{0x09, 0, 0, 0, 0},
9318 	{0x0A, 0, 0, 0, 0},
9319 	{0x0B, 0, 0, 0, 0},
9320 	{0x0C, 0, 0, 0, 0},
9321 	{0x0D, 0, 0, 0, 0},
9322 	{0x0E, 0, 0, 0, 0},
9323 	{0x0F, 0, 0, 0, 0},
9324 	{0x10, 0, 0, 0, 0},
9325 	{0x11, 0, 0, 0, 0},
9326 	{0x12, 0, 0, 0, 0},
9327 	{0x13, 0, 0, 0, 0},
9328 	{0x14, 0, 0, 0, 0},
9329 	{0x15, 0, 0, 0, 0},
9330 	{0x16, 0, 0, 0, 0},
9331 	{0x17, 0, 0, 0, 0},
9332 	{0x18, 0, 0, 0, 0},
9333 	{0x19, 0, 0, 0, 0},
9334 	{0x1A, 0, 0, 0, 0},
9335 	{0x1B, 0, 0, 0, 0},
9336 	{0x1C, 0, 0, 0, 0},
9337 	{0x1D, 0, 0, 0, 0},
9338 	{0x1E, 0, 0, 0, 0},
9339 	{0x1F, 0, 0, 0, 0},
9340 	{0x20, 0x3, 0x3, 0, 0},
9341 	{0x21, 0, 0, 0, 0},
9342 	{0x22, 0, 0, 0, 0},
9343 	{0x23, 0x90, 0x90, 0, 0},
9344 	{0x24, 0x55, 0x55, 0, 0},
9345 	{0x25, 0x15, 0x15, 0, 0},
9346 	{0x26, 0x5, 0x5, 0, 0},
9347 	{0x27, 0x15, 0x15, 0, 0},
9348 	{0x28, 0x5, 0x5, 0, 0},
9349 	{0x29, 0x20, 0x20, 0, 0},
9350 	{0x2A, 0x11, 0x11, 0, 0},
9351 	{0x2B, 0x90, 0x90, 0, 0},
9352 	{0x2C, 0, 0, 0, 0},
9353 	{0x2D, 0x88, 0x88, 0, 0},
9354 	{0x2E, 0x32, 0x32, 0, 0},
9355 	{0x2F, 0x77, 0x77, 0, 0},
9356 	{0x30, 0x17, 0x17, 1, 1},
9357 	{0x31, 0xff, 0xff, 1, 1},
9358 	{0x32, 0x20, 0x20, 0, 0},
9359 	{0x33, 0, 0, 0, 0},
9360 	{0x34, 0x88, 0x88, 0, 0},
9361 	{0x35, 0x32, 0x32, 0, 0},
9362 	{0x36, 0x77, 0x77, 0, 0},
9363 	{0x37, 0x17, 0x17, 1, 1},
9364 	{0x38, 0xf0, 0xf0, 1, 1},
9365 	{0x39, 0x20, 0x20, 0, 0},
9366 	{0x3A, 0x8, 0x8, 0, 0},
9367 	{0x3B, 0x55, 0x55, 1, 1},
9368 	{0x3C, 0, 0, 0, 0},
9369 	{0x3D, 0x88, 0x88, 1, 1},
9370 	{0x3E, 0, 0, 0, 0},
9371 	{0x3F, 0, 0, 1, 1},
9372 	{0x40, 0x7, 0x7, 1, 1},
9373 	{0x41, 0x6, 0x6, 0, 0},
9374 	{0x42, 0x4, 0x4, 0, 0},
9375 	{0x43, 0, 0, 0, 0},
9376 	{0x44, 0x8, 0x8, 0, 0},
9377 	{0x45, 0x55, 0x55, 1, 1},
9378 	{0x46, 0, 0, 0, 0},
9379 	{0x47, 0x11, 0x11, 0, 0},
9380 	{0x48, 0, 0, 0, 0},
9381 	{0x49, 0, 0, 1, 1},
9382 	{0x4A, 0x7, 0x7, 0, 0},
9383 	{0x4B, 0x6, 0x6, 0, 0},
9384 	{0x4C, 0x4, 0x4, 0, 0},
9385 	{0x4D, 0, 0, 0, 0},
9386 	{0x4E, 0, 0, 0, 0},
9387 	{0x4F, 0x26, 0x26, 1, 1},
9388 	{0x50, 0x26, 0x26, 1, 1},
9389 	{0x51, 0xf, 0xf, 1, 1},
9390 	{0x52, 0xf, 0xf, 1, 1},
9391 	{0x53, 0x44, 0x44, 0, 0},
9392 	{0x54, 0, 0, 0, 0},
9393 	{0x55, 0, 0, 0, 0},
9394 	{0x56, 0x8, 0x8, 0, 0},
9395 	{0x57, 0x8, 0x8, 0, 0},
9396 	{0x58, 0x7, 0x7, 0, 0},
9397 	{0x59, 0x22, 0x22, 0, 0},
9398 	{0x5A, 0x22, 0x22, 0, 0},
9399 	{0x5B, 0x2, 0x2, 0, 0},
9400 	{0x5C, 0x4, 0x4, 1, 1},
9401 	{0x5D, 0x7, 0x7, 0, 0},
9402 	{0x5E, 0x55, 0x55, 0, 0},
9403 	{0x5F, 0x23, 0x23, 0, 0},
9404 	{0x60, 0x41, 0x41, 0, 0},
9405 	{0x61, 0x1, 0x1, 0, 0},
9406 	{0x62, 0xa, 0xa, 0, 0},
9407 	{0x63, 0, 0, 0, 0},
9408 	{0x64, 0, 0, 0, 0},
9409 	{0x65, 0, 0, 0, 0},
9410 	{0x66, 0, 0, 0, 0},
9411 	{0x67, 0, 0, 0, 0},
9412 	{0x68, 0, 0, 0, 0},
9413 	{0x69, 0, 0, 0, 0},
9414 	{0x6A, 0, 0, 0, 0},
9415 	{0x6B, 0xc, 0xc, 0, 0},
9416 	{0x6C, 0, 0, 0, 0},
9417 	{0x6D, 0, 0, 0, 0},
9418 	{0x6E, 0, 0, 0, 0},
9419 	{0x6F, 0, 0, 0, 0},
9420 	{0x70, 0, 0, 0, 0},
9421 	{0x71, 0, 0, 0, 0},
9422 	{0x72, 0x22, 0x22, 0, 0},
9423 	{0x73, 0x22, 0x22, 0, 0},
9424 	{0x74, 0, 0, 1, 1},
9425 	{0x75, 0xa, 0xa, 0, 0},
9426 	{0x76, 0x1, 0x1, 0, 0},
9427 	{0x77, 0x22, 0x22, 0, 0},
9428 	{0x78, 0x30, 0x30, 0, 0},
9429 	{0x79, 0, 0, 0, 0},
9430 	{0x7A, 0, 0, 0, 0},
9431 	{0x7B, 0, 0, 0, 0},
9432 	{0x7C, 0, 0, 0, 0},
9433 	{0x7D, 0, 0, 0, 0},
9434 	{0x7E, 0, 0, 0, 0},
9435 	{0x7F, 0, 0, 0, 0},
9436 	{0x80, 0, 0, 0, 0},
9437 	{0x81, 0, 0, 0, 0},
9438 	{0x82, 0, 0, 0, 0},
9439 	{0x83, 0, 0, 0, 0},
9440 	{0x84, 0, 0, 0, 0},
9441 	{0x85, 0, 0, 0, 0},
9442 	{0x86, 0, 0, 0, 0},
9443 	{0x87, 0, 0, 0, 0},
9444 	{0x88, 0, 0, 0, 0},
9445 	{0x89, 0, 0, 0, 0},
9446 	{0x8A, 0, 0, 0, 0},
9447 	{0x8B, 0, 0, 0, 0},
9448 	{0x8C, 0, 0, 0, 0},
9449 	{0x8D, 0, 0, 0, 0},
9450 	{0x8E, 0, 0, 0, 0},
9451 	{0x8F, 0, 0, 0, 0},
9452 	{0x90, 0, 0, 0, 0},
9453 	{0x91, 0, 0, 0, 0},
9454 	{0x92, 0, 0, 0, 0},
9455 	{0x93, 0, 0, 0, 0},
9456 	{0x94, 0, 0, 0, 0},
9457 	{0xFFFF, 0, 0, 0, 0}
9458 };
9459 
9460 static struct radio_regs regs_SYN_2056_rev6[] = {
9461 	{0x02, 0, 0, 0, 0},
9462 	{0x03, 0, 0, 0, 0},
9463 	{0x04, 0, 0, 0, 0},
9464 	{0x05, 0, 0, 0, 0},
9465 	{0x06, 0, 0, 0, 0},
9466 	{0x07, 0, 0, 0, 0},
9467 	{0x08, 0, 0, 0, 0},
9468 	{0x09, 0x1, 0x1, 0, 0},
9469 	{0x0A, 0, 0, 0, 0},
9470 	{0x0B, 0, 0, 0, 0},
9471 	{0x0C, 0, 0, 0, 0},
9472 	{0x0D, 0, 0, 0, 0},
9473 	{0x0E, 0, 0, 0, 0},
9474 	{0x0F, 0, 0, 0, 0},
9475 	{0x10, 0, 0, 0, 0},
9476 	{0x11, 0, 0, 0, 0},
9477 	{0x12, 0, 0, 0, 0},
9478 	{0x13, 0, 0, 0, 0},
9479 	{0x14, 0, 0, 0, 0},
9480 	{0x15, 0, 0, 0, 0},
9481 	{0x16, 0, 0, 0, 0},
9482 	{0x17, 0, 0, 0, 0},
9483 	{0x18, 0, 0, 0, 0},
9484 	{0x19, 0, 0, 0, 0},
9485 	{0x1A, 0, 0, 0, 0},
9486 	{0x1B, 0, 0, 0, 0},
9487 	{0x1C, 0, 0, 0, 0},
9488 	{0x1D, 0, 0, 0, 0},
9489 	{0x1E, 0, 0, 0, 0},
9490 	{0x1F, 0, 0, 0, 0},
9491 	{0x20, 0, 0, 0, 0},
9492 	{0x21, 0, 0, 0, 0},
9493 	{0x22, 0x60, 0x60, 0, 0},
9494 	{0x23, 0x6, 0x6, 0, 0},
9495 	{0x24, 0xc, 0xc, 0, 0},
9496 	{0x25, 0, 0, 0, 0},
9497 	{0x26, 0, 0, 0, 0},
9498 	{0x27, 0, 0, 0, 0},
9499 	{0x28, 0x1, 0x1, 0, 0},
9500 	{0x29, 0, 0, 0, 0},
9501 	{0x2A, 0, 0, 0, 0},
9502 	{0x2B, 0, 0, 0, 0},
9503 	{0x2C, 0, 0, 0, 0},
9504 	{0x2D, 0, 0, 0, 0},
9505 	{0x2E, 0, 0, 0, 0},
9506 	{0x2F, 0x1f, 0x1f, 0, 0},
9507 	{0x30, 0x15, 0x15, 0, 0},
9508 	{0x31, 0xf, 0xf, 0, 0},
9509 	{0x32, 0, 0, 0, 0},
9510 	{0x33, 0, 0, 0, 0},
9511 	{0x34, 0, 0, 0, 0},
9512 	{0x35, 0, 0, 0, 0},
9513 	{0x36, 0, 0, 0, 0},
9514 	{0x37, 0, 0, 0, 0},
9515 	{0x38, 0, 0, 0, 0},
9516 	{0x39, 0, 0, 0, 0},
9517 	{0x3A, 0, 0, 0, 0},
9518 	{0x3B, 0, 0, 0, 0},
9519 	{0x3C, 0x13, 0x13, 0, 0},
9520 	{0x3D, 0xf, 0xf, 0, 0},
9521 	{0x3E, 0x18, 0x18, 0, 0},
9522 	{0x3F, 0, 0, 0, 0},
9523 	{0x40, 0, 0, 0, 0},
9524 	{0x41, 0x20, 0x20, 0, 0},
9525 	{0x42, 0x20, 0x20, 0, 0},
9526 	{0x43, 0, 0, 0, 0},
9527 	{0x44, 0x77, 0x77, 0, 0},
9528 	{0x45, 0x7, 0x7, 0, 0},
9529 	{0x46, 0x1, 0x1, 0, 0},
9530 	{0x47, 0x4, 0x4, 0, 0},
9531 	{0x48, 0xf, 0xf, 0, 0},
9532 	{0x49, 0x30, 0x30, 0, 0},
9533 	{0x4A, 0x32, 0x32, 0, 0},
9534 	{0x4B, 0xd, 0xd, 0, 0},
9535 	{0x4C, 0xd, 0xd, 0, 0},
9536 	{0x4D, 0x4, 0x4, 0, 0},
9537 	{0x4E, 0x6, 0x6, 0, 0},
9538 	{0x4F, 0x1, 0x1, 0, 0},
9539 	{0x50, 0x1c, 0x1c, 0, 0},
9540 	{0x51, 0x2, 0x2, 0, 0},
9541 	{0x52, 0x2, 0x2, 0, 0},
9542 	{0x53, 0xf7, 0xf7, 1, 1},
9543 	{0x54, 0xb4, 0xb4, 0, 0},
9544 	{0x55, 0xd2, 0xd2, 0, 0},
9545 	{0x56, 0, 0, 0, 0},
9546 	{0x57, 0, 0, 0, 0},
9547 	{0x58, 0x4, 0x4, 0, 0},
9548 	{0x59, 0x96, 0x96, 0, 0},
9549 	{0x5A, 0x3e, 0x3e, 0, 0},
9550 	{0x5B, 0x3e, 0x3e, 0, 0},
9551 	{0x5C, 0x13, 0x13, 0, 0},
9552 	{0x5D, 0x2, 0x2, 0, 0},
9553 	{0x5E, 0, 0, 0, 0},
9554 	{0x5F, 0x7, 0x7, 0, 0},
9555 	{0x60, 0x7, 0x7, 1, 1},
9556 	{0x61, 0x8, 0x8, 0, 0},
9557 	{0x62, 0x3, 0x3, 0, 0},
9558 	{0x63, 0, 0, 0, 0},
9559 	{0x64, 0, 0, 0, 0},
9560 	{0x65, 0, 0, 0, 0},
9561 	{0x66, 0, 0, 0, 0},
9562 	{0x67, 0, 0, 0, 0},
9563 	{0x68, 0x40, 0x40, 0, 0},
9564 	{0x69, 0, 0, 0, 0},
9565 	{0x6A, 0, 0, 0, 0},
9566 	{0x6B, 0, 0, 0, 0},
9567 	{0x6C, 0, 0, 0, 0},
9568 	{0x6D, 0x1, 0x1, 0, 0},
9569 	{0x6E, 0, 0, 0, 0},
9570 	{0x6F, 0, 0, 0, 0},
9571 	{0x70, 0x60, 0x60, 0, 0},
9572 	{0x71, 0x66, 0x66, 0, 0},
9573 	{0x72, 0xc, 0xc, 0, 0},
9574 	{0x73, 0x66, 0x66, 0, 0},
9575 	{0x74, 0x8f, 0x8f, 1, 1},
9576 	{0x75, 0, 0, 0, 0},
9577 	{0x76, 0xcc, 0xcc, 0, 0},
9578 	{0x77, 0x1, 0x1, 0, 0},
9579 	{0x78, 0x66, 0x66, 0, 0},
9580 	{0x79, 0x66, 0x66, 0, 0},
9581 	{0x7A, 0, 0, 0, 0},
9582 	{0x7B, 0, 0, 0, 0},
9583 	{0x7C, 0, 0, 0, 0},
9584 	{0x7D, 0, 0, 0, 0},
9585 	{0x7E, 0, 0, 0, 0},
9586 	{0x7F, 0, 0, 0, 0},
9587 	{0x80, 0, 0, 0, 0},
9588 	{0x81, 0, 0, 0, 0},
9589 	{0x82, 0, 0, 0, 0},
9590 	{0x83, 0, 0, 0, 0},
9591 	{0x84, 0, 0, 0, 0},
9592 	{0x85, 0xff, 0xff, 0, 0},
9593 	{0x86, 0, 0, 0, 0},
9594 	{0x87, 0, 0, 0, 0},
9595 	{0x88, 0, 0, 0, 0},
9596 	{0x89, 0, 0, 0, 0},
9597 	{0x8A, 0, 0, 0, 0},
9598 	{0x8B, 0, 0, 0, 0},
9599 	{0x8C, 0, 0, 0, 0},
9600 	{0x8D, 0, 0, 0, 0},
9601 	{0x8E, 0, 0, 0, 0},
9602 	{0x8F, 0, 0, 0, 0},
9603 	{0x90, 0, 0, 0, 0},
9604 	{0x91, 0, 0, 0, 0},
9605 	{0x92, 0, 0, 0, 0},
9606 	{0x93, 0, 0, 0, 0},
9607 	{0x94, 0, 0, 0, 0},
9608 	{0x95, 0, 0, 0, 0},
9609 	{0x96, 0, 0, 0, 0},
9610 	{0x97, 0, 0, 0, 0},
9611 	{0x98, 0, 0, 0, 0},
9612 	{0x99, 0, 0, 0, 0},
9613 	{0x9A, 0, 0, 0, 0},
9614 	{0x9B, 0, 0, 0, 0},
9615 	{0x9C, 0, 0, 0, 0},
9616 	{0x9D, 0, 0, 0, 0},
9617 	{0x9E, 0, 0, 0, 0},
9618 	{0x9F, 0x6, 0x6, 0, 0},
9619 	{0xA0, 0x66, 0x66, 0, 0},
9620 	{0xA1, 0x66, 0x66, 0, 0},
9621 	{0xA2, 0x66, 0x66, 0, 0},
9622 	{0xA3, 0x66, 0x66, 0, 0},
9623 	{0xA4, 0x66, 0x66, 0, 0},
9624 	{0xA5, 0x66, 0x66, 0, 0},
9625 	{0xA6, 0x66, 0x66, 0, 0},
9626 	{0xA7, 0x66, 0x66, 0, 0},
9627 	{0xA8, 0x66, 0x66, 0, 0},
9628 	{0xA9, 0x66, 0x66, 0, 0},
9629 	{0xAA, 0x66, 0x66, 0, 0},
9630 	{0xAB, 0x66, 0x66, 0, 0},
9631 	{0xAC, 0x66, 0x66, 0, 0},
9632 	{0xAD, 0x66, 0x66, 0, 0},
9633 	{0xAE, 0x66, 0x66, 0, 0},
9634 	{0xAF, 0x66, 0x66, 0, 0},
9635 	{0xB0, 0x66, 0x66, 0, 0},
9636 	{0xB1, 0x66, 0x66, 0, 0},
9637 	{0xB2, 0x66, 0x66, 0, 0},
9638 	{0xB3, 0xa, 0xa, 0, 0},
9639 	{0xB4, 0, 0, 0, 0},
9640 	{0xB5, 0, 0, 0, 0},
9641 	{0xB6, 0, 0, 0, 0},
9642 	{0xFFFF, 0, 0, 0, 0}
9643 };
9644 
9645 static struct radio_regs regs_TX_2056_rev6[] = {
9646 	{0x02, 0, 0, 0, 0},
9647 	{0x03, 0, 0, 0, 0},
9648 	{0x04, 0, 0, 0, 0},
9649 	{0x05, 0, 0, 0, 0},
9650 	{0x06, 0, 0, 0, 0},
9651 	{0x07, 0, 0, 0, 0},
9652 	{0x08, 0, 0, 0, 0},
9653 	{0x09, 0, 0, 0, 0},
9654 	{0x0A, 0, 0, 0, 0},
9655 	{0x0B, 0, 0, 0, 0},
9656 	{0x0C, 0, 0, 0, 0},
9657 	{0x0D, 0, 0, 0, 0},
9658 	{0x0E, 0, 0, 0, 0},
9659 	{0x0F, 0, 0, 0, 0},
9660 	{0x10, 0, 0, 0, 0},
9661 	{0x11, 0, 0, 0, 0},
9662 	{0x12, 0, 0, 0, 0},
9663 	{0x13, 0, 0, 0, 0},
9664 	{0x14, 0, 0, 0, 0},
9665 	{0x15, 0, 0, 0, 0},
9666 	{0x16, 0, 0, 0, 0},
9667 	{0x17, 0, 0, 0, 0},
9668 	{0x18, 0, 0, 0, 0},
9669 	{0x19, 0, 0, 0, 0},
9670 	{0x1A, 0, 0, 0, 0},
9671 	{0x1B, 0, 0, 0, 0},
9672 	{0x1C, 0, 0, 0, 0},
9673 	{0x1D, 0, 0, 0, 0},
9674 	{0x1E, 0, 0, 0, 0},
9675 	{0x1F, 0, 0, 0, 0},
9676 	{0x20, 0, 0, 0, 0},
9677 	{0x21, 0x88, 0x88, 0, 0},
9678 	{0x22, 0x88, 0x88, 0, 0},
9679 	{0x23, 0x88, 0x88, 0, 0},
9680 	{0x24, 0x88, 0x88, 0, 0},
9681 	{0x25, 0xc, 0xc, 0, 0},
9682 	{0x26, 0, 0, 0, 0},
9683 	{0x27, 0x3, 0x3, 0, 0},
9684 	{0x28, 0, 0, 0, 0},
9685 	{0x29, 0x3, 0x3, 0, 0},
9686 	{0x2A, 0x37, 0x37, 0, 0},
9687 	{0x2B, 0x3, 0x3, 0, 0},
9688 	{0x2C, 0, 0, 0, 0},
9689 	{0x2D, 0, 0, 0, 0},
9690 	{0x2E, 0x1, 0x1, 0, 0},
9691 	{0x2F, 0x1, 0x1, 0, 0},
9692 	{0x30, 0, 0, 0, 0},
9693 	{0x31, 0, 0, 0, 0},
9694 	{0x32, 0, 0, 0, 0},
9695 	{0x33, 0x11, 0x11, 0, 0},
9696 	{0x34, 0xee, 0xee, 1, 1},
9697 	{0x35, 0, 0, 0, 0},
9698 	{0x36, 0, 0, 0, 0},
9699 	{0x37, 0x3, 0x3, 0, 0},
9700 	{0x38, 0x50, 0x50, 1, 1},
9701 	{0x39, 0, 0, 0, 0},
9702 	{0x3A, 0x50, 0x50, 1, 1},
9703 	{0x3B, 0, 0, 0, 0},
9704 	{0x3C, 0x6e, 0x6e, 0, 0},
9705 	{0x3D, 0xf0, 0xf0, 1, 1},
9706 	{0x3E, 0, 0, 0, 0},
9707 	{0x3F, 0, 0, 0, 0},
9708 	{0x40, 0, 0, 0, 0},
9709 	{0x41, 0x3, 0x3, 0, 0},
9710 	{0x42, 0x3, 0x3, 0, 0},
9711 	{0x43, 0, 0, 0, 0},
9712 	{0x44, 0x1e, 0x1e, 0, 0},
9713 	{0x45, 0, 0, 0, 0},
9714 	{0x46, 0x6e, 0x6e, 0, 0},
9715 	{0x47, 0xf0, 0xf0, 1, 1},
9716 	{0x48, 0, 0, 0, 0},
9717 	{0x49, 0x2, 0x2, 0, 0},
9718 	{0x4A, 0xff, 0xff, 1, 1},
9719 	{0x4B, 0xc, 0xc, 0, 0},
9720 	{0x4C, 0, 0, 0, 0},
9721 	{0x4D, 0x38, 0x38, 0, 0},
9722 	{0x4E, 0x70, 0x70, 1, 1},
9723 	{0x4F, 0x2, 0x2, 0, 0},
9724 	{0x50, 0x88, 0x88, 0, 0},
9725 	{0x51, 0xc, 0xc, 0, 0},
9726 	{0x52, 0, 0, 0, 0},
9727 	{0x53, 0x8, 0x8, 0, 0},
9728 	{0x54, 0x70, 0x70, 1, 1},
9729 	{0x55, 0x2, 0x2, 0, 0},
9730 	{0x56, 0xff, 0xff, 1, 1},
9731 	{0x57, 0, 0, 0, 0},
9732 	{0x58, 0x83, 0x83, 0, 0},
9733 	{0x59, 0x77, 0x77, 1, 1},
9734 	{0x5A, 0, 0, 0, 0},
9735 	{0x5B, 0x2, 0x2, 0, 0},
9736 	{0x5C, 0x88, 0x88, 0, 0},
9737 	{0x5D, 0, 0, 0, 0},
9738 	{0x5E, 0x8, 0x8, 0, 0},
9739 	{0x5F, 0x77, 0x77, 1, 1},
9740 	{0x60, 0x1, 0x1, 0, 0},
9741 	{0x61, 0, 0, 0, 0},
9742 	{0x62, 0x7, 0x7, 0, 0},
9743 	{0x63, 0, 0, 0, 0},
9744 	{0x64, 0x7, 0x7, 0, 0},
9745 	{0x65, 0, 0, 0, 0},
9746 	{0x66, 0, 0, 0, 0},
9747 	{0x67, 0, 0, 1, 1},
9748 	{0x68, 0, 0, 0, 0},
9749 	{0x69, 0xa, 0xa, 0, 0},
9750 	{0x6A, 0, 0, 0, 0},
9751 	{0x6B, 0, 0, 0, 0},
9752 	{0x6C, 0, 0, 0, 0},
9753 	{0x6D, 0, 0, 0, 0},
9754 	{0x6E, 0, 0, 0, 0},
9755 	{0x6F, 0, 0, 0, 0},
9756 	{0x70, 0, 0, 0, 0},
9757 	{0x71, 0x2, 0x2, 0, 0},
9758 	{0x72, 0, 0, 0, 0},
9759 	{0x73, 0, 0, 0, 0},
9760 	{0x74, 0xe, 0xe, 0, 0},
9761 	{0x75, 0xe, 0xe, 0, 0},
9762 	{0x76, 0xe, 0xe, 0, 0},
9763 	{0x77, 0x13, 0x13, 0, 0},
9764 	{0x78, 0x13, 0x13, 0, 0},
9765 	{0x79, 0x1b, 0x1b, 0, 0},
9766 	{0x7A, 0x1b, 0x1b, 0, 0},
9767 	{0x7B, 0x55, 0x55, 0, 0},
9768 	{0x7C, 0x5b, 0x5b, 0, 0},
9769 	{0x7D, 0x30, 0x30, 1, 1},
9770 	{0x7E, 0, 0, 0, 0},
9771 	{0x7F, 0, 0, 0, 0},
9772 	{0x80, 0, 0, 0, 0},
9773 	{0x81, 0, 0, 0, 0},
9774 	{0x82, 0, 0, 0, 0},
9775 	{0x83, 0, 0, 0, 0},
9776 	{0x84, 0, 0, 0, 0},
9777 	{0x85, 0, 0, 0, 0},
9778 	{0x86, 0, 0, 0, 0},
9779 	{0x87, 0, 0, 0, 0},
9780 	{0x88, 0, 0, 0, 0},
9781 	{0x89, 0, 0, 0, 0},
9782 	{0x8A, 0, 0, 0, 0},
9783 	{0x8B, 0, 0, 0, 0},
9784 	{0x8C, 0, 0, 0, 0},
9785 	{0x8D, 0, 0, 0, 0},
9786 	{0x8E, 0, 0, 0, 0},
9787 	{0x8F, 0, 0, 0, 0},
9788 	{0x90, 0, 0, 0, 0},
9789 	{0x91, 0, 0, 0, 0},
9790 	{0x92, 0, 0, 0, 0},
9791 	{0x93, 0x70, 0x70, 0, 0},
9792 	{0x94, 0x70, 0x70, 0, 0},
9793 	{0x95, 0x70, 0x70, 0, 0},
9794 	{0x96, 0x70, 0x70, 0, 0},
9795 	{0x97, 0x70, 0x70, 0, 0},
9796 	{0x98, 0x70, 0x70, 0, 0},
9797 	{0x99, 0x70, 0x70, 0, 0},
9798 	{0x9A, 0x70, 0x70, 0, 0},
9799 	{0xFFFF, 0, 0, 0, 0}
9800 };
9801 
9802 static struct radio_regs regs_RX_2056_rev6[] = {
9803 	{0x02, 0, 0, 0, 0},
9804 	{0x03, 0, 0, 0, 0},
9805 	{0x04, 0, 0, 0, 0},
9806 	{0x05, 0, 0, 0, 0},
9807 	{0x06, 0, 0, 0, 0},
9808 	{0x07, 0, 0, 0, 0},
9809 	{0x08, 0, 0, 0, 0},
9810 	{0x09, 0, 0, 0, 0},
9811 	{0x0A, 0, 0, 0, 0},
9812 	{0x0B, 0, 0, 0, 0},
9813 	{0x0C, 0, 0, 0, 0},
9814 	{0x0D, 0, 0, 0, 0},
9815 	{0x0E, 0, 0, 0, 0},
9816 	{0x0F, 0, 0, 0, 0},
9817 	{0x10, 0, 0, 0, 0},
9818 	{0x11, 0, 0, 0, 0},
9819 	{0x12, 0, 0, 0, 0},
9820 	{0x13, 0, 0, 0, 0},
9821 	{0x14, 0, 0, 0, 0},
9822 	{0x15, 0, 0, 0, 0},
9823 	{0x16, 0, 0, 0, 0},
9824 	{0x17, 0, 0, 0, 0},
9825 	{0x18, 0, 0, 0, 0},
9826 	{0x19, 0, 0, 0, 0},
9827 	{0x1A, 0, 0, 0, 0},
9828 	{0x1B, 0, 0, 0, 0},
9829 	{0x1C, 0, 0, 0, 0},
9830 	{0x1D, 0, 0, 0, 0},
9831 	{0x1E, 0, 0, 0, 0},
9832 	{0x1F, 0, 0, 0, 0},
9833 	{0x20, 0x3, 0x3, 0, 0},
9834 	{0x21, 0, 0, 0, 0},
9835 	{0x22, 0, 0, 0, 0},
9836 	{0x23, 0x90, 0x90, 0, 0},
9837 	{0x24, 0x55, 0x55, 0, 0},
9838 	{0x25, 0x15, 0x15, 0, 0},
9839 	{0x26, 0x5, 0x5, 0, 0},
9840 	{0x27, 0x15, 0x15, 0, 0},
9841 	{0x28, 0x5, 0x5, 0, 0},
9842 	{0x29, 0x20, 0x20, 0, 0},
9843 	{0x2A, 0x11, 0x11, 0, 0},
9844 	{0x2B, 0x90, 0x90, 0, 0},
9845 	{0x2C, 0, 0, 0, 0},
9846 	{0x2D, 0x88, 0x88, 0, 0},
9847 	{0x2E, 0x32, 0x32, 0, 0},
9848 	{0x2F, 0x77, 0x77, 0, 0},
9849 	{0x30, 0x17, 0x17, 1, 1},
9850 	{0x31, 0xff, 0xff, 1, 1},
9851 	{0x32, 0x20, 0x20, 0, 0},
9852 	{0x33, 0, 0, 0, 0},
9853 	{0x34, 0x88, 0x88, 0, 0},
9854 	{0x35, 0x32, 0x32, 0, 0},
9855 	{0x36, 0x77, 0x77, 0, 0},
9856 	{0x37, 0x17, 0x17, 1, 1},
9857 	{0x38, 0xf0, 0xf0, 1, 1},
9858 	{0x39, 0x20, 0x20, 0, 0},
9859 	{0x3A, 0x8, 0x8, 0, 0},
9860 	{0x3B, 0x55, 0x55, 1, 1},
9861 	{0x3C, 0, 0, 0, 0},
9862 	{0x3D, 0x88, 0x88, 1, 1},
9863 	{0x3E, 0, 0, 0, 0},
9864 	{0x3F, 0x44, 0x44, 0, 0},
9865 	{0x40, 0x7, 0x7, 1, 1},
9866 	{0x41, 0x6, 0x6, 0, 0},
9867 	{0x42, 0x4, 0x4, 0, 0},
9868 	{0x43, 0, 0, 0, 0},
9869 	{0x44, 0x8, 0x8, 0, 0},
9870 	{0x45, 0x55, 0x55, 1, 1},
9871 	{0x46, 0, 0, 0, 0},
9872 	{0x47, 0x11, 0x11, 0, 0},
9873 	{0x48, 0, 0, 0, 0},
9874 	{0x49, 0x44, 0x44, 0, 0},
9875 	{0x4A, 0x7, 0x7, 0, 0},
9876 	{0x4B, 0x6, 0x6, 0, 0},
9877 	{0x4C, 0x4, 0x4, 0, 0},
9878 	{0x4D, 0, 0, 0, 0},
9879 	{0x4E, 0, 0, 0, 0},
9880 	{0x4F, 0x26, 0x26, 1, 1},
9881 	{0x50, 0x26, 0x26, 1, 1},
9882 	{0x51, 0xf, 0xf, 1, 1},
9883 	{0x52, 0xf, 0xf, 1, 1},
9884 	{0x53, 0x44, 0x44, 0, 0},
9885 	{0x54, 0, 0, 0, 0},
9886 	{0x55, 0, 0, 0, 0},
9887 	{0x56, 0x8, 0x8, 0, 0},
9888 	{0x57, 0x8, 0x8, 0, 0},
9889 	{0x58, 0x7, 0x7, 0, 0},
9890 	{0x59, 0x22, 0x22, 0, 0},
9891 	{0x5A, 0x22, 0x22, 0, 0},
9892 	{0x5B, 0x2, 0x2, 0, 0},
9893 	{0x5C, 0x4, 0x4, 1, 1},
9894 	{0x5D, 0x7, 0x7, 0, 0},
9895 	{0x5E, 0x55, 0x55, 0, 0},
9896 	{0x5F, 0x23, 0x23, 0, 0},
9897 	{0x60, 0x41, 0x41, 0, 0},
9898 	{0x61, 0x1, 0x1, 0, 0},
9899 	{0x62, 0xa, 0xa, 0, 0},
9900 	{0x63, 0, 0, 0, 0},
9901 	{0x64, 0, 0, 0, 0},
9902 	{0x65, 0, 0, 0, 0},
9903 	{0x66, 0, 0, 0, 0},
9904 	{0x67, 0, 0, 0, 0},
9905 	{0x68, 0, 0, 0, 0},
9906 	{0x69, 0, 0, 0, 0},
9907 	{0x6A, 0, 0, 0, 0},
9908 	{0x6B, 0xc, 0xc, 0, 0},
9909 	{0x6C, 0, 0, 0, 0},
9910 	{0x6D, 0, 0, 0, 0},
9911 	{0x6E, 0, 0, 0, 0},
9912 	{0x6F, 0, 0, 0, 0},
9913 	{0x70, 0, 0, 0, 0},
9914 	{0x71, 0, 0, 0, 0},
9915 	{0x72, 0x22, 0x22, 0, 0},
9916 	{0x73, 0x22, 0x22, 0, 0},
9917 	{0x74, 0, 0, 1, 1},
9918 	{0x75, 0xa, 0xa, 0, 0},
9919 	{0x76, 0x1, 0x1, 0, 0},
9920 	{0x77, 0x22, 0x22, 0, 0},
9921 	{0x78, 0x30, 0x30, 0, 0},
9922 	{0x79, 0, 0, 0, 0},
9923 	{0x7A, 0, 0, 0, 0},
9924 	{0x7B, 0, 0, 0, 0},
9925 	{0x7C, 0, 0, 0, 0},
9926 	{0x7D, 0x5, 0x5, 1, 1},
9927 	{0x7E, 0, 0, 0, 0},
9928 	{0x7F, 0, 0, 0, 0},
9929 	{0x80, 0, 0, 0, 0},
9930 	{0x81, 0, 0, 0, 0},
9931 	{0x82, 0, 0, 0, 0},
9932 	{0x83, 0, 0, 0, 0},
9933 	{0x84, 0, 0, 0, 0},
9934 	{0x85, 0, 0, 0, 0},
9935 	{0x86, 0, 0, 0, 0},
9936 	{0x87, 0, 0, 0, 0},
9937 	{0x88, 0, 0, 0, 0},
9938 	{0x89, 0, 0, 0, 0},
9939 	{0x8A, 0, 0, 0, 0},
9940 	{0x8B, 0, 0, 0, 0},
9941 	{0x8C, 0, 0, 0, 0},
9942 	{0x8D, 0, 0, 0, 0},
9943 	{0x8E, 0, 0, 0, 0},
9944 	{0x8F, 0, 0, 0, 0},
9945 	{0x90, 0, 0, 0, 0},
9946 	{0x91, 0, 0, 0, 0},
9947 	{0x92, 0, 0, 0, 0},
9948 	{0x93, 0, 0, 0, 0},
9949 	{0x94, 0, 0, 0, 0},
9950 	{0xFFFF, 0, 0, 0, 0}
9951 };
9952 
9953 static struct radio_regs regs_SYN_2056_rev7[] = {
9954 	{0x02, 0, 0, 0, 0},
9955 	{0x03, 0, 0, 0, 0},
9956 	{0x04, 0, 0, 0, 0},
9957 	{0x05, 0, 0, 0, 0},
9958 	{0x06, 0, 0, 0, 0},
9959 	{0x07, 0, 0, 0, 0},
9960 	{0x08, 0, 0, 0, 0},
9961 	{0x09, 0x1, 0x1, 0, 0},
9962 	{0x0A, 0, 0, 0, 0},
9963 	{0x0B, 0, 0, 0, 0},
9964 	{0x0C, 0, 0, 0, 0},
9965 	{0x0D, 0, 0, 0, 0},
9966 	{0x0E, 0, 0, 0, 0},
9967 	{0x0F, 0, 0, 0, 0},
9968 	{0x10, 0, 0, 0, 0},
9969 	{0x11, 0, 0, 0, 0},
9970 	{0x12, 0, 0, 0, 0},
9971 	{0x13, 0, 0, 0, 0},
9972 	{0x14, 0, 0, 0, 0},
9973 	{0x15, 0, 0, 0, 0},
9974 	{0x16, 0, 0, 0, 0},
9975 	{0x17, 0, 0, 0, 0},
9976 	{0x18, 0, 0, 0, 0},
9977 	{0x19, 0, 0, 0, 0},
9978 	{0x1A, 0, 0, 0, 0},
9979 	{0x1B, 0, 0, 0, 0},
9980 	{0x1C, 0, 0, 0, 0},
9981 	{0x1D, 0, 0, 0, 0},
9982 	{0x1E, 0, 0, 0, 0},
9983 	{0x1F, 0, 0, 0, 0},
9984 	{0x20, 0, 0, 0, 0},
9985 	{0x21, 0, 0, 0, 0},
9986 	{0x22, 0x60, 0x60, 0, 0},
9987 	{0x23, 0x6, 0x6, 0, 0},
9988 	{0x24, 0xc, 0xc, 0, 0},
9989 	{0x25, 0, 0, 0, 0},
9990 	{0x26, 0, 0, 0, 0},
9991 	{0x27, 0, 0, 0, 0},
9992 	{0x28, 0x1, 0x1, 0, 0},
9993 	{0x29, 0, 0, 0, 0},
9994 	{0x2A, 0, 0, 0, 0},
9995 	{0x2B, 0, 0, 0, 0},
9996 	{0x2C, 0, 0, 0, 0},
9997 	{0x2D, 0, 0, 0, 0},
9998 	{0x2E, 0, 0, 0, 0},
9999 	{0x2F, 0x1f, 0x1f, 0, 0},
10000 	{0x30, 0x15, 0x15, 0, 0},
10001 	{0x31, 0xf, 0xf, 0, 0},
10002 	{0x32, 0, 0, 0, 0},
10003 	{0x33, 0, 0, 0, 0},
10004 	{0x34, 0, 0, 0, 0},
10005 	{0x35, 0, 0, 0, 0},
10006 	{0x36, 0, 0, 0, 0},
10007 	{0x37, 0, 0, 0, 0},
10008 	{0x38, 0, 0, 0, 0},
10009 	{0x39, 0, 0, 0, 0},
10010 	{0x3A, 0, 0, 0, 0},
10011 	{0x3B, 0, 0, 0, 0},
10012 	{0x3C, 0x13, 0x13, 0, 0},
10013 	{0x3D, 0xf, 0xf, 0, 0},
10014 	{0x3E, 0x18, 0x18, 0, 0},
10015 	{0x3F, 0, 0, 0, 0},
10016 	{0x40, 0, 0, 0, 0},
10017 	{0x41, 0x20, 0x20, 0, 0},
10018 	{0x42, 0x20, 0x20, 0, 0},
10019 	{0x43, 0, 0, 0, 0},
10020 	{0x44, 0x77, 0x77, 0, 0},
10021 	{0x45, 0x7, 0x7, 0, 0},
10022 	{0x46, 0x1, 0x1, 0, 0},
10023 	{0x47, 0x4, 0x4, 0, 0},
10024 	{0x48, 0xf, 0xf, 0, 0},
10025 	{0x49, 0x30, 0x30, 0, 0},
10026 	{0x4A, 0x32, 0x32, 0, 0},
10027 	{0x4B, 0xd, 0xd, 0, 0},
10028 	{0x4C, 0xd, 0xd, 0, 0},
10029 	{0x4D, 0x4, 0x4, 0, 0},
10030 	{0x4E, 0x6, 0x6, 0, 0},
10031 	{0x4F, 0x1, 0x1, 0, 0},
10032 	{0x50, 0x1c, 0x1c, 0, 0},
10033 	{0x51, 0x2, 0x2, 0, 0},
10034 	{0x52, 0x2, 0x2, 0, 0},
10035 	{0x53, 0xf7, 0xf7, 1, 1},
10036 	{0x54, 0xb4, 0xb4, 0, 0},
10037 	{0x55, 0xd2, 0xd2, 0, 0},
10038 	{0x56, 0, 0, 0, 0},
10039 	{0x57, 0, 0, 0, 0},
10040 	{0x58, 0x4, 0x4, 0, 0},
10041 	{0x59, 0x96, 0x96, 0, 0},
10042 	{0x5A, 0x3e, 0x3e, 0, 0},
10043 	{0x5B, 0x3e, 0x3e, 0, 0},
10044 	{0x5C, 0x13, 0x13, 0, 0},
10045 	{0x5D, 0x2, 0x2, 0, 0},
10046 	{0x5E, 0, 0, 0, 0},
10047 	{0x5F, 0x7, 0x7, 0, 0},
10048 	{0x60, 0x7, 0x7, 1, 1},
10049 	{0x61, 0x8, 0x8, 0, 0},
10050 	{0x62, 0x3, 0x3, 0, 0},
10051 	{0x63, 0, 0, 0, 0},
10052 	{0x64, 0, 0, 0, 0},
10053 	{0x65, 0, 0, 0, 0},
10054 	{0x66, 0, 0, 0, 0},
10055 	{0x67, 0, 0, 0, 0},
10056 	{0x68, 0x40, 0x40, 0, 0},
10057 	{0x69, 0, 0, 0, 0},
10058 	{0x6A, 0, 0, 0, 0},
10059 	{0x6B, 0, 0, 0, 0},
10060 	{0x6C, 0, 0, 0, 0},
10061 	{0x6D, 0x1, 0x1, 0, 0},
10062 	{0x6E, 0, 0, 0, 0},
10063 	{0x6F, 0, 0, 0, 0},
10064 	{0x70, 0x60, 0x60, 0, 0},
10065 	{0x71, 0x66, 0x66, 0, 0},
10066 	{0x72, 0xc, 0xc, 0, 0},
10067 	{0x73, 0x66, 0x66, 0, 0},
10068 	{0x74, 0x8f, 0x8f, 1, 1},
10069 	{0x75, 0, 0, 0, 0},
10070 	{0x76, 0xcc, 0xcc, 0, 0},
10071 	{0x77, 0x1, 0x1, 0, 0},
10072 	{0x78, 0x66, 0x66, 0, 0},
10073 	{0x79, 0x66, 0x66, 0, 0},
10074 	{0x7A, 0, 0, 0, 0},
10075 	{0x7B, 0, 0, 0, 0},
10076 	{0x7C, 0, 0, 0, 0},
10077 	{0x7D, 0, 0, 0, 0},
10078 	{0x7E, 0, 0, 0, 0},
10079 	{0x7F, 0, 0, 0, 0},
10080 	{0x80, 0, 0, 0, 0},
10081 	{0x81, 0, 0, 0, 0},
10082 	{0x82, 0, 0, 0, 0},
10083 	{0x83, 0, 0, 0, 0},
10084 	{0x84, 0, 0, 0, 0},
10085 	{0x85, 0xff, 0xff, 0, 0},
10086 	{0x86, 0, 0, 0, 0},
10087 	{0x87, 0, 0, 0, 0},
10088 	{0x88, 0, 0, 0, 0},
10089 	{0x89, 0, 0, 0, 0},
10090 	{0x8A, 0, 0, 0, 0},
10091 	{0x8B, 0, 0, 0, 0},
10092 	{0x8C, 0, 0, 0, 0},
10093 	{0x8D, 0, 0, 0, 0},
10094 	{0x8E, 0, 0, 0, 0},
10095 	{0x8F, 0, 0, 0, 0},
10096 	{0x90, 0, 0, 0, 0},
10097 	{0x91, 0, 0, 0, 0},
10098 	{0x92, 0, 0, 0, 0},
10099 	{0x93, 0, 0, 0, 0},
10100 	{0x94, 0, 0, 0, 0},
10101 	{0x95, 0, 0, 0, 0},
10102 	{0x96, 0, 0, 0, 0},
10103 	{0x97, 0, 0, 0, 0},
10104 	{0x98, 0, 0, 0, 0},
10105 	{0x99, 0, 0, 0, 0},
10106 	{0x9A, 0, 0, 0, 0},
10107 	{0x9B, 0, 0, 0, 0},
10108 	{0x9C, 0, 0, 0, 0},
10109 	{0x9D, 0, 0, 0, 0},
10110 	{0x9E, 0, 0, 0, 0},
10111 	{0x9F, 0x6, 0x6, 0, 0},
10112 	{0xA0, 0x66, 0x66, 0, 0},
10113 	{0xA1, 0x66, 0x66, 0, 0},
10114 	{0xA2, 0x66, 0x66, 0, 0},
10115 	{0xA3, 0x66, 0x66, 0, 0},
10116 	{0xA4, 0x66, 0x66, 0, 0},
10117 	{0xA5, 0x66, 0x66, 0, 0},
10118 	{0xA6, 0x66, 0x66, 0, 0},
10119 	{0xA7, 0x66, 0x66, 0, 0},
10120 	{0xA8, 0x66, 0x66, 0, 0},
10121 	{0xA9, 0x66, 0x66, 0, 0},
10122 	{0xAA, 0x66, 0x66, 0, 0},
10123 	{0xAB, 0x66, 0x66, 0, 0},
10124 	{0xAC, 0x66, 0x66, 0, 0},
10125 	{0xAD, 0x66, 0x66, 0, 0},
10126 	{0xAE, 0x66, 0x66, 0, 0},
10127 	{0xAF, 0x66, 0x66, 0, 0},
10128 	{0xB0, 0x66, 0x66, 0, 0},
10129 	{0xB1, 0x66, 0x66, 0, 0},
10130 	{0xB2, 0x66, 0x66, 0, 0},
10131 	{0xB3, 0xa, 0xa, 0, 0},
10132 	{0xB4, 0, 0, 0, 0},
10133 	{0xB5, 0, 0, 0, 0},
10134 	{0xB6, 0, 0, 0, 0},
10135 	{0xFFFF, 0, 0, 0, 0},
10136 };
10137 
10138 static struct radio_regs regs_TX_2056_rev7[] = {
10139 	{0x02, 0, 0, 0, 0},
10140 	{0x03, 0, 0, 0, 0},
10141 	{0x04, 0, 0, 0, 0},
10142 	{0x05, 0, 0, 0, 0},
10143 	{0x06, 0, 0, 0, 0},
10144 	{0x07, 0, 0, 0, 0},
10145 	{0x08, 0, 0, 0, 0},
10146 	{0x09, 0, 0, 0, 0},
10147 	{0x0A, 0, 0, 0, 0},
10148 	{0x0B, 0, 0, 0, 0},
10149 	{0x0C, 0, 0, 0, 0},
10150 	{0x0D, 0, 0, 0, 0},
10151 	{0x0E, 0, 0, 0, 0},
10152 	{0x0F, 0, 0, 0, 0},
10153 	{0x10, 0, 0, 0, 0},
10154 	{0x11, 0, 0, 0, 0},
10155 	{0x12, 0, 0, 0, 0},
10156 	{0x13, 0, 0, 0, 0},
10157 	{0x14, 0, 0, 0, 0},
10158 	{0x15, 0, 0, 0, 0},
10159 	{0x16, 0, 0, 0, 0},
10160 	{0x17, 0, 0, 0, 0},
10161 	{0x18, 0, 0, 0, 0},
10162 	{0x19, 0, 0, 0, 0},
10163 	{0x1A, 0, 0, 0, 0},
10164 	{0x1B, 0, 0, 0, 0},
10165 	{0x1C, 0, 0, 0, 0},
10166 	{0x1D, 0, 0, 0, 0},
10167 	{0x1E, 0, 0, 0, 0},
10168 	{0x1F, 0, 0, 0, 0},
10169 	{0x20, 0, 0, 0, 0},
10170 	{0x21, 0x88, 0x88, 0, 0},
10171 	{0x22, 0x88, 0x88, 0, 0},
10172 	{0x23, 0x88, 0x88, 0, 0},
10173 	{0x24, 0x88, 0x88, 0, 0},
10174 	{0x25, 0xc, 0xc, 0, 0},
10175 	{0x26, 0, 0, 0, 0},
10176 	{0x27, 0x3, 0x3, 0, 0},
10177 	{0x28, 0, 0, 0, 0},
10178 	{0x29, 0x3, 0x3, 0, 0},
10179 	{0x2A, 0x37, 0x37, 0, 0},
10180 	{0x2B, 0x3, 0x3, 0, 0},
10181 	{0x2C, 0, 0, 0, 0},
10182 	{0x2D, 0, 0, 0, 0},
10183 	{0x2E, 0x1, 0x1, 0, 0},
10184 	{0x2F, 0x1, 0x1, 0, 0},
10185 	{0x30, 0, 0, 0, 0},
10186 	{0x31, 0, 0, 0, 0},
10187 	{0x32, 0, 0, 0, 0},
10188 	{0x33, 0x11, 0x11, 0, 0},
10189 	{0x34, 0xee, 0xee, 1, 1},
10190 	{0x35, 0, 0, 0, 0},
10191 	{0x36, 0, 0, 0, 0},
10192 	{0x37, 0x3, 0x3, 0, 0},
10193 	{0x38, 0x50, 0x50, 1, 1},
10194 	{0x39, 0, 0, 0, 0},
10195 	{0x3A, 0x50, 0x50, 1, 1},
10196 	{0x3B, 0, 0, 0, 0},
10197 	{0x3C, 0x6e, 0x6e, 0, 0},
10198 	{0x3D, 0xf0, 0xf0, 1, 1},
10199 	{0x3E, 0, 0, 0, 0},
10200 	{0x3F, 0, 0, 0, 0},
10201 	{0x40, 0, 0, 0, 0},
10202 	{0x41, 0x3, 0x3, 0, 0},
10203 	{0x42, 0x3, 0x3, 0, 0},
10204 	{0x43, 0, 0, 0, 0},
10205 	{0x44, 0x1e, 0x1e, 0, 0},
10206 	{0x45, 0, 0, 0, 0},
10207 	{0x46, 0x6e, 0x6e, 0, 0},
10208 	{0x47, 0xf0, 0xf0, 1, 1},
10209 	{0x48, 0, 0, 0, 0},
10210 	{0x49, 0x2, 0x2, 0, 0},
10211 	{0x4A, 0xff, 0xff, 1, 1},
10212 	{0x4B, 0xc, 0xc, 0, 0},
10213 	{0x4C, 0, 0, 0, 0},
10214 	{0x4D, 0x38, 0x38, 0, 0},
10215 	{0x4E, 0x70, 0x70, 1, 1},
10216 	{0x4F, 0x2, 0x2, 0, 0},
10217 	{0x50, 0x88, 0x88, 0, 0},
10218 	{0x51, 0xc, 0xc, 0, 0},
10219 	{0x52, 0, 0, 0, 0},
10220 	{0x53, 0x8, 0x8, 0, 0},
10221 	{0x54, 0x70, 0x70, 1, 1},
10222 	{0x55, 0x2, 0x2, 0, 0},
10223 	{0x56, 0xff, 0xff, 1, 1},
10224 	{0x57, 0, 0, 0, 0},
10225 	{0x58, 0x83, 0x83, 0, 0},
10226 	{0x59, 0x77, 0x77, 1, 1},
10227 	{0x5A, 0, 0, 0, 0},
10228 	{0x5B, 0x2, 0x2, 0, 0},
10229 	{0x5C, 0x88, 0x88, 0, 0},
10230 	{0x5D, 0, 0, 0, 0},
10231 	{0x5E, 0x8, 0x8, 0, 0},
10232 	{0x5F, 0x77, 0x77, 1, 1},
10233 	{0x60, 0x1, 0x1, 0, 0},
10234 	{0x61, 0, 0, 0, 0},
10235 	{0x62, 0x7, 0x7, 0, 0},
10236 	{0x63, 0, 0, 0, 0},
10237 	{0x64, 0x7, 0x7, 0, 0},
10238 	{0x65, 0, 0, 0, 0},
10239 	{0x66, 0, 0, 0, 0},
10240 	{0x67, 0, 0, 1, 1},
10241 	{0x68, 0, 0, 0, 0},
10242 	{0x69, 0xa, 0xa, 0, 0},
10243 	{0x6A, 0, 0, 0, 0},
10244 	{0x6B, 0, 0, 0, 0},
10245 	{0x6C, 0, 0, 0, 0},
10246 	{0x6D, 0, 0, 0, 0},
10247 	{0x6E, 0, 0, 0, 0},
10248 	{0x6F, 0, 0, 0, 0},
10249 	{0x70, 0, 0, 0, 0},
10250 	{0x71, 0x2, 0x2, 0, 0},
10251 	{0x72, 0, 0, 0, 0},
10252 	{0x73, 0, 0, 0, 0},
10253 	{0x74, 0xe, 0xe, 0, 0},
10254 	{0x75, 0xe, 0xe, 0, 0},
10255 	{0x76, 0xe, 0xe, 0, 0},
10256 	{0x77, 0x13, 0x13, 0, 0},
10257 	{0x78, 0x13, 0x13, 0, 0},
10258 	{0x79, 0x1b, 0x1b, 0, 0},
10259 	{0x7A, 0x1b, 0x1b, 0, 0},
10260 	{0x7B, 0x55, 0x55, 0, 0},
10261 	{0x7C, 0x5b, 0x5b, 0, 0},
10262 	{0x7D, 0x30, 0x30, 1, 1},
10263 	{0x7E, 0, 0, 0, 0},
10264 	{0x7F, 0, 0, 0, 0},
10265 	{0x80, 0, 0, 0, 0},
10266 	{0x81, 0, 0, 0, 0},
10267 	{0x82, 0, 0, 0, 0},
10268 	{0x83, 0, 0, 0, 0},
10269 	{0x84, 0, 0, 0, 0},
10270 	{0x85, 0, 0, 0, 0},
10271 	{0x86, 0, 0, 0, 0},
10272 	{0x87, 0, 0, 0, 0},
10273 	{0x88, 0, 0, 0, 0},
10274 	{0x89, 0, 0, 0, 0},
10275 	{0x8A, 0, 0, 0, 0},
10276 	{0x8B, 0, 0, 0, 0},
10277 	{0x8C, 0, 0, 0, 0},
10278 	{0x8D, 0, 0, 0, 0},
10279 	{0x8E, 0, 0, 0, 0},
10280 	{0x8F, 0, 0, 0, 0},
10281 	{0x90, 0, 0, 0, 0},
10282 	{0x91, 0, 0, 0, 0},
10283 	{0x92, 0, 0, 0, 0},
10284 	{0x93, 0x70, 0x70, 0, 0},
10285 	{0x94, 0x70, 0x70, 0, 0},
10286 	{0x95, 0x71, 0x71, 1, 1},
10287 	{0x96, 0x71, 0x71, 1, 1},
10288 	{0x97, 0x72, 0x72, 1, 1},
10289 	{0x98, 0x73, 0x73, 1, 1},
10290 	{0x99, 0x74, 0x74, 1, 1},
10291 	{0x9A, 0x75, 0x75, 1, 1},
10292 	{0xFFFF, 0, 0, 0, 0},
10293 };
10294 
10295 static struct radio_regs regs_RX_2056_rev7[] = {
10296 	{0x02, 0, 0, 0, 0},
10297 	{0x03, 0, 0, 0, 0},
10298 	{0x04, 0, 0, 0, 0},
10299 	{0x05, 0, 0, 0, 0},
10300 	{0x06, 0, 0, 0, 0},
10301 	{0x07, 0, 0, 0, 0},
10302 	{0x08, 0, 0, 0, 0},
10303 	{0x09, 0, 0, 0, 0},
10304 	{0x0A, 0, 0, 0, 0},
10305 	{0x0B, 0, 0, 0, 0},
10306 	{0x0C, 0, 0, 0, 0},
10307 	{0x0D, 0, 0, 0, 0},
10308 	{0x0E, 0, 0, 0, 0},
10309 	{0x0F, 0, 0, 0, 0},
10310 	{0x10, 0, 0, 0, 0},
10311 	{0x11, 0, 0, 0, 0},
10312 	{0x12, 0, 0, 0, 0},
10313 	{0x13, 0, 0, 0, 0},
10314 	{0x14, 0, 0, 0, 0},
10315 	{0x15, 0, 0, 0, 0},
10316 	{0x16, 0, 0, 0, 0},
10317 	{0x17, 0, 0, 0, 0},
10318 	{0x18, 0, 0, 0, 0},
10319 	{0x19, 0, 0, 0, 0},
10320 	{0x1A, 0, 0, 0, 0},
10321 	{0x1B, 0, 0, 0, 0},
10322 	{0x1C, 0, 0, 0, 0},
10323 	{0x1D, 0, 0, 0, 0},
10324 	{0x1E, 0, 0, 0, 0},
10325 	{0x1F, 0, 0, 0, 0},
10326 	{0x20, 0x3, 0x3, 0, 0},
10327 	{0x21, 0, 0, 0, 0},
10328 	{0x22, 0, 0, 0, 0},
10329 	{0x23, 0x90, 0x90, 0, 0},
10330 	{0x24, 0x55, 0x55, 0, 0},
10331 	{0x25, 0x15, 0x15, 0, 0},
10332 	{0x26, 0x5, 0x5, 0, 0},
10333 	{0x27, 0x15, 0x15, 0, 0},
10334 	{0x28, 0x5, 0x5, 0, 0},
10335 	{0x29, 0x20, 0x20, 0, 0},
10336 	{0x2A, 0x11, 0x11, 0, 0},
10337 	{0x2B, 0x90, 0x90, 0, 0},
10338 	{0x2C, 0, 0, 0, 0},
10339 	{0x2D, 0x88, 0x88, 0, 0},
10340 	{0x2E, 0x32, 0x32, 0, 0},
10341 	{0x2F, 0x77, 0x77, 0, 0},
10342 	{0x30, 0x17, 0x17, 1, 1},
10343 	{0x31, 0xff, 0xff, 1, 1},
10344 	{0x32, 0x20, 0x20, 0, 0},
10345 	{0x33, 0, 0, 0, 0},
10346 	{0x34, 0x88, 0x88, 0, 0},
10347 	{0x35, 0x32, 0x32, 0, 0},
10348 	{0x36, 0x77, 0x77, 0, 0},
10349 	{0x37, 0x17, 0x17, 1, 1},
10350 	{0x38, 0xf0, 0xf0, 1, 1},
10351 	{0x39, 0x20, 0x20, 0, 0},
10352 	{0x3A, 0x8, 0x8, 0, 0},
10353 	{0x3B, 0x55, 0x55, 1, 1},
10354 	{0x3C, 0, 0, 0, 0},
10355 	{0x3D, 0x88, 0x88, 1, 1},
10356 	{0x3E, 0, 0, 0, 0},
10357 	{0x3F, 0, 0, 1, 1},
10358 	{0x40, 0x7, 0x7, 1, 1},
10359 	{0x41, 0x6, 0x6, 0, 0},
10360 	{0x42, 0x4, 0x4, 0, 0},
10361 	{0x43, 0, 0, 0, 0},
10362 	{0x44, 0x8, 0x8, 0, 0},
10363 	{0x45, 0x55, 0x55, 1, 1},
10364 	{0x46, 0, 0, 0, 0},
10365 	{0x47, 0x11, 0x11, 0, 0},
10366 	{0x48, 0, 0, 0, 0},
10367 	{0x49, 0, 0, 1, 1},
10368 	{0x4A, 0x7, 0x7, 0, 0},
10369 	{0x4B, 0x6, 0x6, 0, 0},
10370 	{0x4C, 0x4, 0x4, 0, 0},
10371 	{0x4D, 0, 0, 0, 0},
10372 	{0x4E, 0, 0, 0, 0},
10373 	{0x4F, 0x26, 0x26, 1, 1},
10374 	{0x50, 0x26, 0x26, 1, 1},
10375 	{0x51, 0xf, 0xf, 1, 1},
10376 	{0x52, 0xf, 0xf, 1, 1},
10377 	{0x53, 0x44, 0x44, 0, 0},
10378 	{0x54, 0, 0, 0, 0},
10379 	{0x55, 0, 0, 0, 0},
10380 	{0x56, 0x8, 0x8, 0, 0},
10381 	{0x57, 0x8, 0x8, 0, 0},
10382 	{0x58, 0x7, 0x7, 0, 0},
10383 	{0x59, 0x22, 0x22, 0, 0},
10384 	{0x5A, 0x22, 0x22, 0, 0},
10385 	{0x5B, 0x2, 0x2, 0, 0},
10386 	{0x5C, 0x4, 0x4, 1, 1},
10387 	{0x5D, 0x7, 0x7, 0, 0},
10388 	{0x5E, 0x55, 0x55, 0, 0},
10389 	{0x5F, 0x23, 0x23, 0, 0},
10390 	{0x60, 0x41, 0x41, 0, 0},
10391 	{0x61, 0x1, 0x1, 0, 0},
10392 	{0x62, 0xa, 0xa, 0, 0},
10393 	{0x63, 0, 0, 0, 0},
10394 	{0x64, 0, 0, 0, 0},
10395 	{0x65, 0, 0, 0, 0},
10396 	{0x66, 0, 0, 0, 0},
10397 	{0x67, 0, 0, 0, 0},
10398 	{0x68, 0, 0, 0, 0},
10399 	{0x69, 0, 0, 0, 0},
10400 	{0x6A, 0, 0, 0, 0},
10401 	{0x6B, 0xc, 0xc, 0, 0},
10402 	{0x6C, 0, 0, 0, 0},
10403 	{0x6D, 0, 0, 0, 0},
10404 	{0x6E, 0, 0, 0, 0},
10405 	{0x6F, 0, 0, 0, 0},
10406 	{0x70, 0, 0, 0, 0},
10407 	{0x71, 0, 0, 0, 0},
10408 	{0x72, 0x22, 0x22, 0, 0},
10409 	{0x73, 0x22, 0x22, 0, 0},
10410 	{0x74, 0, 0, 1, 1},
10411 	{0x75, 0xa, 0xa, 0, 0},
10412 	{0x76, 0x1, 0x1, 0, 0},
10413 	{0x77, 0x22, 0x22, 0, 0},
10414 	{0x78, 0x30, 0x30, 0, 0},
10415 	{0x79, 0, 0, 0, 0},
10416 	{0x7A, 0, 0, 0, 0},
10417 	{0x7B, 0, 0, 0, 0},
10418 	{0x7C, 0, 0, 0, 0},
10419 	{0x7D, 0, 0, 0, 0},
10420 	{0x7E, 0, 0, 0, 0},
10421 	{0x7F, 0, 0, 0, 0},
10422 	{0x80, 0, 0, 0, 0},
10423 	{0x81, 0, 0, 0, 0},
10424 	{0x82, 0, 0, 0, 0},
10425 	{0x83, 0, 0, 0, 0},
10426 	{0x84, 0, 0, 0, 0},
10427 	{0x85, 0, 0, 0, 0},
10428 	{0x86, 0, 0, 0, 0},
10429 	{0x87, 0, 0, 0, 0},
10430 	{0x88, 0, 0, 0, 0},
10431 	{0x89, 0, 0, 0, 0},
10432 	{0x8A, 0, 0, 0, 0},
10433 	{0x8B, 0, 0, 0, 0},
10434 	{0x8C, 0, 0, 0, 0},
10435 	{0x8D, 0, 0, 0, 0},
10436 	{0x8E, 0, 0, 0, 0},
10437 	{0x8F, 0, 0, 0, 0},
10438 	{0x90, 0, 0, 0, 0},
10439 	{0x91, 0, 0, 0, 0},
10440 	{0x92, 0, 0, 0, 0},
10441 	{0x93, 0, 0, 0, 0},
10442 	{0x94, 0, 0, 0, 0},
10443 	{0xFFFF, 0, 0, 0, 0},
10444 };
10445 
10446 static struct radio_regs regs_SYN_2056_rev8[] = {
10447 	{0x02, 0, 0, 0, 0},
10448 	{0x03, 0, 0, 0, 0},
10449 	{0x04, 0, 0, 0, 0},
10450 	{0x05, 0, 0, 0, 0},
10451 	{0x06, 0, 0, 0, 0},
10452 	{0x07, 0, 0, 0, 0},
10453 	{0x08, 0, 0, 0, 0},
10454 	{0x09, 0x1, 0x1, 0, 0},
10455 	{0x0A, 0, 0, 0, 0},
10456 	{0x0B, 0, 0, 0, 0},
10457 	{0x0C, 0, 0, 0, 0},
10458 	{0x0D, 0, 0, 0, 0},
10459 	{0x0E, 0, 0, 0, 0},
10460 	{0x0F, 0, 0, 0, 0},
10461 	{0x10, 0, 0, 0, 0},
10462 	{0x11, 0, 0, 0, 0},
10463 	{0x12, 0, 0, 0, 0},
10464 	{0x13, 0, 0, 0, 0},
10465 	{0x14, 0, 0, 0, 0},
10466 	{0x15, 0, 0, 0, 0},
10467 	{0x16, 0, 0, 0, 0},
10468 	{0x17, 0, 0, 0, 0},
10469 	{0x18, 0, 0, 0, 0},
10470 	{0x19, 0, 0, 0, 0},
10471 	{0x1A, 0, 0, 0, 0},
10472 	{0x1B, 0, 0, 0, 0},
10473 	{0x1C, 0, 0, 0, 0},
10474 	{0x1D, 0, 0, 0, 0},
10475 	{0x1E, 0, 0, 0, 0},
10476 	{0x1F, 0, 0, 0, 0},
10477 	{0x20, 0, 0, 0, 0},
10478 	{0x21, 0, 0, 0, 0},
10479 	{0x22, 0x60, 0x60, 0, 0},
10480 	{0x23, 0x6, 0x6, 0, 0},
10481 	{0x24, 0xc, 0xc, 0, 0},
10482 	{0x25, 0, 0, 0, 0},
10483 	{0x26, 0, 0, 0, 0},
10484 	{0x27, 0, 0, 0, 0},
10485 	{0x28, 0x1, 0x1, 0, 0},
10486 	{0x29, 0, 0, 0, 0},
10487 	{0x2A, 0, 0, 0, 0},
10488 	{0x2B, 0, 0, 0, 0},
10489 	{0x2C, 0, 0, 0, 0},
10490 	{0x2D, 0, 0, 0, 0},
10491 	{0x2E, 0, 0, 0, 0},
10492 	{0x2F, 0x1f, 0x1f, 0, 0},
10493 	{0x30, 0x15, 0x15, 0, 0},
10494 	{0x31, 0xf, 0xf, 0, 0},
10495 	{0x32, 0, 0, 0, 0},
10496 	{0x33, 0, 0, 0, 0},
10497 	{0x34, 0, 0, 0, 0},
10498 	{0x35, 0, 0, 0, 0},
10499 	{0x36, 0, 0, 0, 0},
10500 	{0x37, 0, 0, 0, 0},
10501 	{0x38, 0, 0, 0, 0},
10502 	{0x39, 0, 0, 0, 0},
10503 	{0x3A, 0, 0, 0, 0},
10504 	{0x3B, 0, 0, 0, 0},
10505 	{0x3C, 0x13, 0x13, 0, 0},
10506 	{0x3D, 0xf, 0xf, 0, 0},
10507 	{0x3E, 0x18, 0x18, 0, 0},
10508 	{0x3F, 0, 0, 0, 0},
10509 	{0x40, 0, 0, 0, 0},
10510 	{0x41, 0x20, 0x20, 0, 0},
10511 	{0x42, 0x20, 0x20, 0, 0},
10512 	{0x43, 0, 0, 0, 0},
10513 	{0x44, 0x77, 0x77, 0, 0},
10514 	{0x45, 0x7, 0x7, 0, 0},
10515 	{0x46, 0x1, 0x1, 0, 0},
10516 	{0x47, 0x4, 0x4, 0, 0},
10517 	{0x48, 0xf, 0xf, 0, 0},
10518 	{0x49, 0x30, 0x30, 0, 0},
10519 	{0x4A, 0x32, 0x32, 0, 0},
10520 	{0x4B, 0xd, 0xd, 0, 0},
10521 	{0x4C, 0xd, 0xd, 0, 0},
10522 	{0x4D, 0x4, 0x4, 0, 0},
10523 	{0x4E, 0x6, 0x6, 0, 0},
10524 	{0x4F, 0x1, 0x1, 0, 0},
10525 	{0x50, 0x1c, 0x1c, 0, 0},
10526 	{0x51, 0x2, 0x2, 0, 0},
10527 	{0x52, 0x2, 0x2, 0, 0},
10528 	{0x53, 0xf7, 0xf7, 1, 1},
10529 	{0x54, 0xb4, 0xb4, 0, 0},
10530 	{0x55, 0xd2, 0xd2, 0, 0},
10531 	{0x56, 0, 0, 0, 0},
10532 	{0x57, 0, 0, 0, 0},
10533 	{0x58, 0x4, 0x4, 0, 0},
10534 	{0x59, 0x96, 0x96, 0, 0},
10535 	{0x5A, 0x3e, 0x3e, 0, 0},
10536 	{0x5B, 0x3e, 0x3e, 0, 0},
10537 	{0x5C, 0x13, 0x13, 0, 0},
10538 	{0x5D, 0x2, 0x2, 0, 0},
10539 	{0x5E, 0, 0, 0, 0},
10540 	{0x5F, 0x7, 0x7, 0, 0},
10541 	{0x60, 0x7, 0x7, 1, 1},
10542 	{0x61, 0x8, 0x8, 0, 0},
10543 	{0x62, 0x3, 0x3, 0, 0},
10544 	{0x63, 0, 0, 0, 0},
10545 	{0x64, 0, 0, 0, 0},
10546 	{0x65, 0, 0, 0, 0},
10547 	{0x66, 0, 0, 0, 0},
10548 	{0x67, 0, 0, 0, 0},
10549 	{0x68, 0x40, 0x40, 0, 0},
10550 	{0x69, 0, 0, 0, 0},
10551 	{0x6A, 0, 0, 0, 0},
10552 	{0x6B, 0, 0, 0, 0},
10553 	{0x6C, 0, 0, 0, 0},
10554 	{0x6D, 0x1, 0x1, 0, 0},
10555 	{0x6E, 0, 0, 0, 0},
10556 	{0x6F, 0, 0, 0, 0},
10557 	{0x70, 0x60, 0x60, 0, 0},
10558 	{0x71, 0x66, 0x66, 0, 0},
10559 	{0x72, 0xc, 0xc, 0, 0},
10560 	{0x73, 0x66, 0x66, 0, 0},
10561 	{0x74, 0x8f, 0x8f, 1, 1},
10562 	{0x75, 0, 0, 0, 0},
10563 	{0x76, 0xcc, 0xcc, 0, 0},
10564 	{0x77, 0x1, 0x1, 0, 0},
10565 	{0x78, 0x66, 0x66, 0, 0},
10566 	{0x79, 0x66, 0x66, 0, 0},
10567 	{0x7A, 0, 0, 0, 0},
10568 	{0x7B, 0, 0, 0, 0},
10569 	{0x7C, 0, 0, 0, 0},
10570 	{0x7D, 0, 0, 0, 0},
10571 	{0x7E, 0, 0, 0, 0},
10572 	{0x7F, 0, 0, 0, 0},
10573 	{0x80, 0, 0, 0, 0},
10574 	{0x81, 0, 0, 0, 0},
10575 	{0x82, 0, 0, 0, 0},
10576 	{0x83, 0, 0, 0, 0},
10577 	{0x84, 0, 0, 0, 0},
10578 	{0x85, 0xff, 0xff, 0, 0},
10579 	{0x86, 0, 0, 0, 0},
10580 	{0x87, 0, 0, 0, 0},
10581 	{0x88, 0, 0, 0, 0},
10582 	{0x89, 0, 0, 0, 0},
10583 	{0x8A, 0, 0, 0, 0},
10584 	{0x8B, 0, 0, 0, 0},
10585 	{0x8C, 0, 0, 0, 0},
10586 	{0x8D, 0, 0, 0, 0},
10587 	{0x8E, 0, 0, 0, 0},
10588 	{0x8F, 0, 0, 0, 0},
10589 	{0x90, 0, 0, 0, 0},
10590 	{0x91, 0, 0, 0, 0},
10591 	{0x92, 0, 0, 0, 0},
10592 	{0x93, 0, 0, 0, 0},
10593 	{0x94, 0, 0, 0, 0},
10594 	{0x95, 0, 0, 0, 0},
10595 	{0x96, 0, 0, 0, 0},
10596 	{0x97, 0, 0, 0, 0},
10597 	{0x98, 0, 0, 0, 0},
10598 	{0x99, 0, 0, 0, 0},
10599 	{0x9A, 0, 0, 0, 0},
10600 	{0x9B, 0, 0, 0, 0},
10601 	{0x9C, 0, 0, 0, 0},
10602 	{0x9D, 0, 0, 0, 0},
10603 	{0x9E, 0, 0, 0, 0},
10604 	{0x9F, 0x6, 0x6, 0, 0},
10605 	{0xA0, 0x66, 0x66, 0, 0},
10606 	{0xA1, 0x66, 0x66, 0, 0},
10607 	{0xA2, 0x66, 0x66, 0, 0},
10608 	{0xA3, 0x66, 0x66, 0, 0},
10609 	{0xA4, 0x66, 0x66, 0, 0},
10610 	{0xA5, 0x66, 0x66, 0, 0},
10611 	{0xA6, 0x66, 0x66, 0, 0},
10612 	{0xA7, 0x66, 0x66, 0, 0},
10613 	{0xA8, 0x66, 0x66, 0, 0},
10614 	{0xA9, 0x66, 0x66, 0, 0},
10615 	{0xAA, 0x66, 0x66, 0, 0},
10616 	{0xAB, 0x66, 0x66, 0, 0},
10617 	{0xAC, 0x66, 0x66, 0, 0},
10618 	{0xAD, 0x66, 0x66, 0, 0},
10619 	{0xAE, 0x66, 0x66, 0, 0},
10620 	{0xAF, 0x66, 0x66, 0, 0},
10621 	{0xB0, 0x66, 0x66, 0, 0},
10622 	{0xB1, 0x66, 0x66, 0, 0},
10623 	{0xB2, 0x66, 0x66, 0, 0},
10624 	{0xB3, 0xa, 0xa, 0, 0},
10625 	{0xB4, 0, 0, 0, 0},
10626 	{0xB5, 0, 0, 0, 0},
10627 	{0xB6, 0, 0, 0, 0},
10628 	{0xFFFF, 0, 0, 0, 0},
10629 };
10630 
10631 static struct radio_regs regs_TX_2056_rev8[] = {
10632 	{0x02, 0, 0, 0, 0},
10633 	{0x03, 0, 0, 0, 0},
10634 	{0x04, 0, 0, 0, 0},
10635 	{0x05, 0, 0, 0, 0},
10636 	{0x06, 0, 0, 0, 0},
10637 	{0x07, 0, 0, 0, 0},
10638 	{0x08, 0, 0, 0, 0},
10639 	{0x09, 0, 0, 0, 0},
10640 	{0x0A, 0, 0, 0, 0},
10641 	{0x0B, 0, 0, 0, 0},
10642 	{0x0C, 0, 0, 0, 0},
10643 	{0x0D, 0, 0, 0, 0},
10644 	{0x0E, 0, 0, 0, 0},
10645 	{0x0F, 0, 0, 0, 0},
10646 	{0x10, 0, 0, 0, 0},
10647 	{0x11, 0, 0, 0, 0},
10648 	{0x12, 0, 0, 0, 0},
10649 	{0x13, 0, 0, 0, 0},
10650 	{0x14, 0, 0, 0, 0},
10651 	{0x15, 0, 0, 0, 0},
10652 	{0x16, 0, 0, 0, 0},
10653 	{0x17, 0, 0, 0, 0},
10654 	{0x18, 0, 0, 0, 0},
10655 	{0x19, 0, 0, 0, 0},
10656 	{0x1A, 0, 0, 0, 0},
10657 	{0x1B, 0, 0, 0, 0},
10658 	{0x1C, 0, 0, 0, 0},
10659 	{0x1D, 0, 0, 0, 0},
10660 	{0x1E, 0, 0, 0, 0},
10661 	{0x1F, 0, 0, 0, 0},
10662 	{0x20, 0, 0, 0, 0},
10663 	{0x21, 0x88, 0x88, 0, 0},
10664 	{0x22, 0x88, 0x88, 0, 0},
10665 	{0x23, 0x88, 0x88, 0, 0},
10666 	{0x24, 0x88, 0x88, 0, 0},
10667 	{0x25, 0xc, 0xc, 0, 0},
10668 	{0x26, 0, 0, 0, 0},
10669 	{0x27, 0x3, 0x3, 0, 0},
10670 	{0x28, 0, 0, 0, 0},
10671 	{0x29, 0x3, 0x3, 0, 0},
10672 	{0x2A, 0x37, 0x37, 0, 0},
10673 	{0x2B, 0x3, 0x3, 0, 0},
10674 	{0x2C, 0, 0, 0, 0},
10675 	{0x2D, 0, 0, 0, 0},
10676 	{0x2E, 0x1, 0x1, 0, 0},
10677 	{0x2F, 0x1, 0x1, 0, 0},
10678 	{0x30, 0, 0, 0, 0},
10679 	{0x31, 0, 0, 0, 0},
10680 	{0x32, 0, 0, 0, 0},
10681 	{0x33, 0x11, 0x11, 0, 0},
10682 	{0x34, 0xee, 0xee, 1, 1},
10683 	{0x35, 0, 0, 0, 0},
10684 	{0x36, 0, 0, 0, 0},
10685 	{0x37, 0x3, 0x3, 0, 0},
10686 	{0x38, 0x50, 0x50, 1, 1},
10687 	{0x39, 0, 0, 0, 0},
10688 	{0x3A, 0x50, 0x50, 1, 1},
10689 	{0x3B, 0, 0, 0, 0},
10690 	{0x3C, 0x6e, 0x6e, 0, 0},
10691 	{0x3D, 0xf0, 0xf0, 1, 1},
10692 	{0x3E, 0, 0, 0, 0},
10693 	{0x3F, 0, 0, 0, 0},
10694 	{0x40, 0, 0, 0, 0},
10695 	{0x41, 0x3, 0x3, 0, 0},
10696 	{0x42, 0x3, 0x3, 0, 0},
10697 	{0x43, 0, 0, 0, 0},
10698 	{0x44, 0x1e, 0x1e, 0, 0},
10699 	{0x45, 0, 0, 0, 0},
10700 	{0x46, 0x6e, 0x6e, 0, 0},
10701 	{0x47, 0xf0, 0xf0, 1, 1},
10702 	{0x48, 0, 0, 0, 0},
10703 	{0x49, 0x2, 0x2, 0, 0},
10704 	{0x4A, 0xff, 0xff, 1, 1},
10705 	{0x4B, 0xc, 0xc, 0, 0},
10706 	{0x4C, 0, 0, 0, 0},
10707 	{0x4D, 0x38, 0x38, 0, 0},
10708 	{0x4E, 0x70, 0x70, 1, 1},
10709 	{0x4F, 0x2, 0x2, 0, 0},
10710 	{0x50, 0x88, 0x88, 0, 0},
10711 	{0x51, 0xc, 0xc, 0, 0},
10712 	{0x52, 0, 0, 0, 0},
10713 	{0x53, 0x8, 0x8, 0, 0},
10714 	{0x54, 0x70, 0x70, 1, 1},
10715 	{0x55, 0x2, 0x2, 0, 0},
10716 	{0x56, 0xff, 0xff, 1, 1},
10717 	{0x57, 0, 0, 0, 0},
10718 	{0x58, 0x83, 0x83, 0, 0},
10719 	{0x59, 0x77, 0x77, 1, 1},
10720 	{0x5A, 0, 0, 0, 0},
10721 	{0x5B, 0x2, 0x2, 0, 0},
10722 	{0x5C, 0x88, 0x88, 0, 0},
10723 	{0x5D, 0, 0, 0, 0},
10724 	{0x5E, 0x8, 0x8, 0, 0},
10725 	{0x5F, 0x77, 0x77, 1, 1},
10726 	{0x60, 0x1, 0x1, 0, 0},
10727 	{0x61, 0, 0, 0, 0},
10728 	{0x62, 0x7, 0x7, 0, 0},
10729 	{0x63, 0, 0, 0, 0},
10730 	{0x64, 0x7, 0x7, 0, 0},
10731 	{0x65, 0, 0, 0, 0},
10732 	{0x66, 0, 0, 0, 0},
10733 	{0x67, 0, 0, 1, 1},
10734 	{0x68, 0, 0, 0, 0},
10735 	{0x69, 0xa, 0xa, 0, 0},
10736 	{0x6A, 0, 0, 0, 0},
10737 	{0x6B, 0, 0, 0, 0},
10738 	{0x6C, 0, 0, 0, 0},
10739 	{0x6D, 0, 0, 0, 0},
10740 	{0x6E, 0, 0, 0, 0},
10741 	{0x6F, 0, 0, 0, 0},
10742 	{0x70, 0, 0, 0, 0},
10743 	{0x71, 0x2, 0x2, 0, 0},
10744 	{0x72, 0, 0, 0, 0},
10745 	{0x73, 0, 0, 0, 0},
10746 	{0x74, 0xe, 0xe, 0, 0},
10747 	{0x75, 0xe, 0xe, 0, 0},
10748 	{0x76, 0xe, 0xe, 0, 0},
10749 	{0x77, 0x13, 0x13, 0, 0},
10750 	{0x78, 0x13, 0x13, 0, 0},
10751 	{0x79, 0x1b, 0x1b, 0, 0},
10752 	{0x7A, 0x1b, 0x1b, 0, 0},
10753 	{0x7B, 0x55, 0x55, 0, 0},
10754 	{0x7C, 0x5b, 0x5b, 0, 0},
10755 	{0x7D, 0x30, 0x30, 1, 1},
10756 	{0x7E, 0, 0, 0, 0},
10757 	{0x7F, 0, 0, 0, 0},
10758 	{0x80, 0, 0, 0, 0},
10759 	{0x81, 0, 0, 0, 0},
10760 	{0x82, 0, 0, 0, 0},
10761 	{0x83, 0, 0, 0, 0},
10762 	{0x84, 0, 0, 0, 0},
10763 	{0x85, 0, 0, 0, 0},
10764 	{0x86, 0, 0, 0, 0},
10765 	{0x87, 0, 0, 0, 0},
10766 	{0x88, 0, 0, 0, 0},
10767 	{0x89, 0, 0, 0, 0},
10768 	{0x8A, 0, 0, 0, 0},
10769 	{0x8B, 0, 0, 0, 0},
10770 	{0x8C, 0, 0, 0, 0},
10771 	{0x8D, 0, 0, 0, 0},
10772 	{0x8E, 0, 0, 0, 0},
10773 	{0x8F, 0, 0, 0, 0},
10774 	{0x90, 0, 0, 0, 0},
10775 	{0x91, 0, 0, 0, 0},
10776 	{0x92, 0, 0, 0, 0},
10777 	{0x93, 0x70, 0x70, 0, 0},
10778 	{0x94, 0x70, 0x70, 0, 0},
10779 	{0x95, 0x70, 0x70, 0, 0},
10780 	{0x96, 0x70, 0x70, 0, 0},
10781 	{0x97, 0x70, 0x70, 0, 0},
10782 	{0x98, 0x70, 0x70, 0, 0},
10783 	{0x99, 0x70, 0x70, 0, 0},
10784 	{0x9A, 0x70, 0x70, 0, 0},
10785 	{0xFFFF, 0, 0, 0, 0},
10786 };
10787 
10788 static struct radio_regs regs_RX_2056_rev8[] = {
10789 	{0x02, 0, 0, 0, 0},
10790 	{0x03, 0, 0, 0, 0},
10791 	{0x04, 0, 0, 0, 0},
10792 	{0x05, 0, 0, 0, 0},
10793 	{0x06, 0, 0, 0, 0},
10794 	{0x07, 0, 0, 0, 0},
10795 	{0x08, 0, 0, 0, 0},
10796 	{0x09, 0, 0, 0, 0},
10797 	{0x0A, 0, 0, 0, 0},
10798 	{0x0B, 0, 0, 0, 0},
10799 	{0x0C, 0, 0, 0, 0},
10800 	{0x0D, 0, 0, 0, 0},
10801 	{0x0E, 0, 0, 0, 0},
10802 	{0x0F, 0, 0, 0, 0},
10803 	{0x10, 0, 0, 0, 0},
10804 	{0x11, 0, 0, 0, 0},
10805 	{0x12, 0, 0, 0, 0},
10806 	{0x13, 0, 0, 0, 0},
10807 	{0x14, 0, 0, 0, 0},
10808 	{0x15, 0, 0, 0, 0},
10809 	{0x16, 0, 0, 0, 0},
10810 	{0x17, 0, 0, 0, 0},
10811 	{0x18, 0, 0, 0, 0},
10812 	{0x19, 0, 0, 0, 0},
10813 	{0x1A, 0, 0, 0, 0},
10814 	{0x1B, 0, 0, 0, 0},
10815 	{0x1C, 0, 0, 0, 0},
10816 	{0x1D, 0, 0, 0, 0},
10817 	{0x1E, 0, 0, 0, 0},
10818 	{0x1F, 0, 0, 0, 0},
10819 	{0x20, 0x3, 0x3, 0, 0},
10820 	{0x21, 0, 0, 0, 0},
10821 	{0x22, 0, 0, 0, 0},
10822 	{0x23, 0x90, 0x90, 0, 0},
10823 	{0x24, 0x55, 0x55, 0, 0},
10824 	{0x25, 0x15, 0x15, 0, 0},
10825 	{0x26, 0x5, 0x5, 0, 0},
10826 	{0x27, 0x15, 0x15, 0, 0},
10827 	{0x28, 0x5, 0x5, 0, 0},
10828 	{0x29, 0x20, 0x20, 0, 0},
10829 	{0x2A, 0x11, 0x11, 0, 0},
10830 	{0x2B, 0x90, 0x90, 0, 0},
10831 	{0x2C, 0, 0, 0, 0},
10832 	{0x2D, 0x88, 0x88, 0, 0},
10833 	{0x2E, 0x32, 0x32, 0, 0},
10834 	{0x2F, 0x77, 0x77, 0, 0},
10835 	{0x30, 0x17, 0x17, 1, 1},
10836 	{0x31, 0xff, 0xff, 1, 1},
10837 	{0x32, 0x20, 0x20, 0, 0},
10838 	{0x33, 0, 0, 0, 0},
10839 	{0x34, 0x88, 0x88, 0, 0},
10840 	{0x35, 0x32, 0x32, 0, 0},
10841 	{0x36, 0x77, 0x77, 0, 0},
10842 	{0x37, 0x17, 0x17, 1, 1},
10843 	{0x38, 0xf0, 0xf0, 1, 1},
10844 	{0x39, 0x20, 0x20, 0, 0},
10845 	{0x3A, 0x8, 0x8, 0, 0},
10846 	{0x3B, 0x55, 0x55, 1, 1},
10847 	{0x3C, 0, 0, 0, 0},
10848 	{0x3D, 0x88, 0x88, 1, 1},
10849 	{0x3E, 0, 0, 0, 0},
10850 	{0x3F, 0x44, 0x44, 0, 0},
10851 	{0x40, 0x7, 0x7, 1, 1},
10852 	{0x41, 0x6, 0x6, 0, 0},
10853 	{0x42, 0x4, 0x4, 0, 0},
10854 	{0x43, 0, 0, 0, 0},
10855 	{0x44, 0x8, 0x8, 0, 0},
10856 	{0x45, 0x55, 0x55, 1, 1},
10857 	{0x46, 0, 0, 0, 0},
10858 	{0x47, 0x11, 0x11, 0, 0},
10859 	{0x48, 0, 0, 0, 0},
10860 	{0x49, 0x44, 0x44, 0, 0},
10861 	{0x4A, 0x7, 0x7, 0, 0},
10862 	{0x4B, 0x6, 0x6, 0, 0},
10863 	{0x4C, 0x4, 0x4, 0, 0},
10864 	{0x4D, 0, 0, 0, 0},
10865 	{0x4E, 0, 0, 0, 0},
10866 	{0x4F, 0x26, 0x26, 1, 1},
10867 	{0x50, 0x26, 0x26, 1, 1},
10868 	{0x51, 0xf, 0xf, 1, 1},
10869 	{0x52, 0xf, 0xf, 1, 1},
10870 	{0x53, 0x44, 0x44, 0, 0},
10871 	{0x54, 0, 0, 0, 0},
10872 	{0x55, 0, 0, 0, 0},
10873 	{0x56, 0x8, 0x8, 0, 0},
10874 	{0x57, 0x8, 0x8, 0, 0},
10875 	{0x58, 0x7, 0x7, 0, 0},
10876 	{0x59, 0x22, 0x22, 0, 0},
10877 	{0x5A, 0x22, 0x22, 0, 0},
10878 	{0x5B, 0x2, 0x2, 0, 0},
10879 	{0x5C, 0x4, 0x4, 1, 1},
10880 	{0x5D, 0x7, 0x7, 0, 0},
10881 	{0x5E, 0x55, 0x55, 0, 0},
10882 	{0x5F, 0x23, 0x23, 0, 0},
10883 	{0x60, 0x41, 0x41, 0, 0},
10884 	{0x61, 0x1, 0x1, 0, 0},
10885 	{0x62, 0xa, 0xa, 0, 0},
10886 	{0x63, 0, 0, 0, 0},
10887 	{0x64, 0, 0, 0, 0},
10888 	{0x65, 0, 0, 0, 0},
10889 	{0x66, 0, 0, 0, 0},
10890 	{0x67, 0, 0, 0, 0},
10891 	{0x68, 0, 0, 0, 0},
10892 	{0x69, 0, 0, 0, 0},
10893 	{0x6A, 0, 0, 0, 0},
10894 	{0x6B, 0xc, 0xc, 0, 0},
10895 	{0x6C, 0, 0, 0, 0},
10896 	{0x6D, 0, 0, 0, 0},
10897 	{0x6E, 0, 0, 0, 0},
10898 	{0x6F, 0, 0, 0, 0},
10899 	{0x70, 0, 0, 0, 0},
10900 	{0x71, 0, 0, 0, 0},
10901 	{0x72, 0x22, 0x22, 0, 0},
10902 	{0x73, 0x22, 0x22, 0, 0},
10903 	{0x74, 0, 0, 1, 1},
10904 	{0x75, 0xa, 0xa, 0, 0},
10905 	{0x76, 0x1, 0x1, 0, 0},
10906 	{0x77, 0x22, 0x22, 0, 0},
10907 	{0x78, 0x30, 0x30, 0, 0},
10908 	{0x79, 0, 0, 0, 0},
10909 	{0x7A, 0, 0, 0, 0},
10910 	{0x7B, 0, 0, 0, 0},
10911 	{0x7C, 0, 0, 0, 0},
10912 	{0x7D, 0x5, 0x5, 1, 1},
10913 	{0x7E, 0, 0, 0, 0},
10914 	{0x7F, 0, 0, 0, 0},
10915 	{0x80, 0, 0, 0, 0},
10916 	{0x81, 0, 0, 0, 0},
10917 	{0x82, 0, 0, 0, 0},
10918 	{0x83, 0, 0, 0, 0},
10919 	{0x84, 0, 0, 0, 0},
10920 	{0x85, 0, 0, 0, 0},
10921 	{0x86, 0, 0, 0, 0},
10922 	{0x87, 0, 0, 0, 0},
10923 	{0x88, 0, 0, 0, 0},
10924 	{0x89, 0, 0, 0, 0},
10925 	{0x8A, 0, 0, 0, 0},
10926 	{0x8B, 0, 0, 0, 0},
10927 	{0x8C, 0, 0, 0, 0},
10928 	{0x8D, 0, 0, 0, 0},
10929 	{0x8E, 0, 0, 0, 0},
10930 	{0x8F, 0, 0, 0, 0},
10931 	{0x90, 0, 0, 0, 0},
10932 	{0x91, 0, 0, 0, 0},
10933 	{0x92, 0, 0, 0, 0},
10934 	{0x93, 0, 0, 0, 0},
10935 	{0x94, 0, 0, 0, 0},
10936 	{0xFFFF, 0, 0, 0, 0},
10937 };
10938 
10939 static const struct radio_regs regs_SYN_2056_rev11[] = {
10940 	{0x02, 0, 0, 0, 0},
10941 	{0x03, 0, 0, 0, 0},
10942 	{0x04, 0, 0, 0, 0},
10943 	{0x05, 0, 0, 0, 0},
10944 	{0x06, 0, 0, 0, 0},
10945 	{0x07, 0, 0, 0, 0},
10946 	{0x08, 0, 0, 0, 0},
10947 	{0x09, 0x1, 0x1, 0, 0},
10948 	{0x0A, 0, 0, 0, 0},
10949 	{0x0B, 0, 0, 0, 0},
10950 	{0x0C, 0, 0, 0, 0},
10951 	{0x0D, 0, 0, 0, 0},
10952 	{0x0E, 0, 0, 0, 0},
10953 	{0x0F, 0, 0, 0, 0},
10954 	{0x10, 0, 0, 0, 0},
10955 	{0x11, 0, 0, 0, 0},
10956 	{0x12, 0, 0, 0, 0},
10957 	{0x13, 0, 0, 0, 0},
10958 	{0x14, 0, 0, 0, 0},
10959 	{0x15, 0, 0, 0, 0},
10960 	{0x16, 0, 0, 0, 0},
10961 	{0x17, 0, 0, 0, 0},
10962 	{0x18, 0, 0, 0, 0},
10963 	{0x19, 0, 0, 0, 0},
10964 	{0x1A, 0, 0, 0, 0},
10965 	{0x1B, 0, 0, 0, 0},
10966 	{0x1C, 0, 0, 0, 0},
10967 	{0x1D, 0, 0, 0, 0},
10968 	{0x1E, 0, 0, 0, 0},
10969 	{0x1F, 0, 0, 0, 0},
10970 	{0x20, 0, 0, 0, 0},
10971 	{0x21, 0, 0, 0, 0},
10972 	{0x22, 0x60, 0x60, 0, 0},
10973 	{0x23, 0x6, 0x6, 0, 0},
10974 	{0x24, 0xc, 0xc, 0, 0},
10975 	{0x25, 0, 0, 0, 0},
10976 	{0x26, 0, 0, 0, 0},
10977 	{0x27, 0, 0, 0, 0},
10978 	{0x28, 0x1, 0x1, 0, 0},
10979 	{0x29, 0, 0, 0, 0},
10980 	{0x2A, 0, 0, 0, 0},
10981 	{0x2B, 0, 0, 0, 0},
10982 	{0x2C, 0, 0, 0, 0},
10983 	{0x2D, 0, 0, 0, 0},
10984 	{0x2E, 0, 0, 0, 0},
10985 	{0x2F, 0x1f, 0x1f, 0, 0},
10986 	{0x30, 0x15, 0x15, 0, 0},
10987 	{0x31, 0xf, 0xf, 0, 0},
10988 	{0x32, 0, 0, 0, 0},
10989 	{0x33, 0, 0, 0, 0},
10990 	{0x34, 0, 0, 0, 0},
10991 	{0x35, 0, 0, 0, 0},
10992 	{0x36, 0, 0, 0, 0},
10993 	{0x37, 0, 0, 0, 0},
10994 	{0x38, 0, 0, 0, 0},
10995 	{0x39, 0, 0, 0, 0},
10996 	{0x3A, 0, 0, 0, 0},
10997 	{0x3B, 0, 0, 0, 0},
10998 	{0x3C, 0x13, 0x13, 0, 0},
10999 	{0x3D, 0xf, 0xf, 0, 0},
11000 	{0x3E, 0x18, 0x18, 0, 0},
11001 	{0x3F, 0, 0, 0, 0},
11002 	{0x40, 0, 0, 0, 0},
11003 	{0x41, 0x20, 0x20, 0, 0},
11004 	{0x42, 0x20, 0x20, 0, 0},
11005 	{0x43, 0, 0, 0, 0},
11006 	{0x44, 0x77, 0x77, 0, 0},
11007 	{0x45, 0x7, 0x7, 0, 0},
11008 	{0x46, 0x1, 0x1, 0, 0},
11009 	{0x47, 0x6, 0x6, 1, 1},
11010 	{0x48, 0xf, 0xf, 0, 0},
11011 	{0x49, 0x3f, 0x3f, 1, 1},
11012 	{0x4A, 0x32, 0x32, 0, 0},
11013 	{0x4B, 0x6, 0x6, 1, 1},
11014 	{0x4C, 0x6, 0x6, 1, 1},
11015 	{0x4D, 0x4, 0x4, 0, 0},
11016 	{0x4E, 0x2b, 0x2b, 1, 1},
11017 	{0x4F, 0x1, 0x1, 0, 0},
11018 	{0x50, 0x1c, 0x1c, 0, 0},
11019 	{0x51, 0x2, 0x2, 0, 0},
11020 	{0x52, 0x2, 0x2, 0, 0},
11021 	{0x53, 0xf7, 0xf7, 1, 1},
11022 	{0x54, 0xb4, 0xb4, 0, 0},
11023 	{0x55, 0xd2, 0xd2, 0, 0},
11024 	{0x56, 0, 0, 0, 0},
11025 	{0x57, 0, 0, 0, 0},
11026 	{0x58, 0x4, 0x4, 0, 0},
11027 	{0x59, 0x96, 0x96, 0, 0},
11028 	{0x5A, 0x3e, 0x3e, 0, 0},
11029 	{0x5B, 0x3e, 0x3e, 0, 0},
11030 	{0x5C, 0x13, 0x13, 0, 0},
11031 	{0x5D, 0x2, 0x2, 0, 0},
11032 	{0x5E, 0, 0, 0, 0},
11033 	{0x5F, 0x7, 0x7, 0, 0},
11034 	{0x60, 0x7, 0x7, 1, 1},
11035 	{0x61, 0x8, 0x8, 0, 0},
11036 	{0x62, 0x3, 0x3, 0, 0},
11037 	{0x63, 0, 0, 0, 0},
11038 	{0x64, 0, 0, 0, 0},
11039 	{0x65, 0, 0, 0, 0},
11040 	{0x66, 0, 0, 0, 0},
11041 	{0x67, 0, 0, 0, 0},
11042 	{0x68, 0x40, 0x40, 0, 0},
11043 	{0x69, 0, 0, 0, 0},
11044 	{0x6A, 0, 0, 0, 0},
11045 	{0x6B, 0, 0, 0, 0},
11046 	{0x6C, 0, 0, 0, 0},
11047 	{0x6D, 0x1, 0x1, 0, 0},
11048 	{0x6E, 0, 0, 0, 0},
11049 	{0x6F, 0, 0, 0, 0},
11050 	{0x70, 0x60, 0x60, 0, 0},
11051 	{0x71, 0x66, 0x66, 0, 0},
11052 	{0x72, 0xc, 0xc, 0, 0},
11053 	{0x73, 0x66, 0x66, 0, 0},
11054 	{0x74, 0x8f, 0x8f, 1, 1},
11055 	{0x75, 0, 0, 0, 0},
11056 	{0x76, 0xcc, 0xcc, 0, 0},
11057 	{0x77, 0x1, 0x1, 0, 0},
11058 	{0x78, 0x66, 0x66, 0, 0},
11059 	{0x79, 0x66, 0x66, 0, 0},
11060 	{0x7A, 0, 0, 0, 0},
11061 	{0x7B, 0, 0, 0, 0},
11062 	{0x7C, 0, 0, 0, 0},
11063 	{0x7D, 0, 0, 0, 0},
11064 	{0x7E, 0, 0, 0, 0},
11065 	{0x7F, 0, 0, 0, 0},
11066 	{0x80, 0, 0, 0, 0},
11067 	{0x81, 0, 0, 0, 0},
11068 	{0x82, 0, 0, 0, 0},
11069 	{0x83, 0, 0, 0, 0},
11070 	{0x84, 0, 0, 0, 0},
11071 	{0x85, 0xff, 0xff, 0, 0},
11072 	{0x86, 0, 0, 0, 0},
11073 	{0x87, 0, 0, 0, 0},
11074 	{0x88, 0, 0, 0, 0},
11075 	{0x89, 0, 0, 0, 0},
11076 	{0x8A, 0, 0, 0, 0},
11077 	{0x8B, 0, 0, 0, 0},
11078 	{0x8C, 0, 0, 0, 0},
11079 	{0x8D, 0, 0, 0, 0},
11080 	{0x8E, 0, 0, 0, 0},
11081 	{0x8F, 0, 0, 0, 0},
11082 	{0x90, 0, 0, 0, 0},
11083 	{0x91, 0, 0, 0, 0},
11084 	{0x92, 0, 0, 0, 0},
11085 	{0x93, 0, 0, 0, 0},
11086 	{0x94, 0, 0, 0, 0},
11087 	{0x95, 0, 0, 0, 0},
11088 	{0x96, 0, 0, 0, 0},
11089 	{0x97, 0, 0, 0, 0},
11090 	{0x98, 0, 0, 0, 0},
11091 	{0x99, 0, 0, 0, 0},
11092 	{0x9A, 0, 0, 0, 0},
11093 	{0x9B, 0, 0, 0, 0},
11094 	{0x9C, 0, 0, 0, 0},
11095 	{0x9D, 0, 0, 0, 0},
11096 	{0x9E, 0, 0, 0, 0},
11097 	{0x9F, 0x6, 0x6, 0, 0},
11098 	{0xA0, 0x66, 0x66, 0, 0},
11099 	{0xA1, 0x66, 0x66, 0, 0},
11100 	{0xA2, 0x66, 0x66, 0, 0},
11101 	{0xA3, 0x66, 0x66, 0, 0},
11102 	{0xA4, 0x66, 0x66, 0, 0},
11103 	{0xA5, 0x66, 0x66, 0, 0},
11104 	{0xA6, 0x66, 0x66, 0, 0},
11105 	{0xA7, 0x66, 0x66, 0, 0},
11106 	{0xA8, 0x66, 0x66, 0, 0},
11107 	{0xA9, 0x66, 0x66, 0, 0},
11108 	{0xAA, 0x66, 0x66, 0, 0},
11109 	{0xAB, 0x66, 0x66, 0, 0},
11110 	{0xAC, 0x66, 0x66, 0, 0},
11111 	{0xAD, 0x66, 0x66, 0, 0},
11112 	{0xAE, 0x66, 0x66, 0, 0},
11113 	{0xAF, 0x66, 0x66, 0, 0},
11114 	{0xB0, 0x66, 0x66, 0, 0},
11115 	{0xB1, 0x66, 0x66, 0, 0},
11116 	{0xB2, 0x66, 0x66, 0, 0},
11117 	{0xB3, 0xa, 0xa, 0, 0},
11118 	{0xB4, 0, 0, 0, 0},
11119 	{0xB5, 0, 0, 0, 0},
11120 	{0xB6, 0, 0, 0, 0},
11121 	{0xFFFF, 0, 0, 0, 0},
11122 };
11123 
11124 static const struct radio_regs regs_TX_2056_rev11[] = {
11125 	{0x02, 0, 0, 0, 0},
11126 	{0x03, 0, 0, 0, 0},
11127 	{0x04, 0, 0, 0, 0},
11128 	{0x05, 0, 0, 0, 0},
11129 	{0x06, 0, 0, 0, 0},
11130 	{0x07, 0, 0, 0, 0},
11131 	{0x08, 0, 0, 0, 0},
11132 	{0x09, 0, 0, 0, 0},
11133 	{0x0A, 0, 0, 0, 0},
11134 	{0x0B, 0, 0, 0, 0},
11135 	{0x0C, 0, 0, 0, 0},
11136 	{0x0D, 0, 0, 0, 0},
11137 	{0x0E, 0, 0, 0, 0},
11138 	{0x0F, 0, 0, 0, 0},
11139 	{0x10, 0, 0, 0, 0},
11140 	{0x11, 0, 0, 0, 0},
11141 	{0x12, 0, 0, 0, 0},
11142 	{0x13, 0, 0, 0, 0},
11143 	{0x14, 0, 0, 0, 0},
11144 	{0x15, 0, 0, 0, 0},
11145 	{0x16, 0, 0, 0, 0},
11146 	{0x17, 0, 0, 0, 0},
11147 	{0x18, 0, 0, 0, 0},
11148 	{0x19, 0, 0, 0, 0},
11149 	{0x1A, 0, 0, 0, 0},
11150 	{0x1B, 0, 0, 0, 0},
11151 	{0x1C, 0, 0, 0, 0},
11152 	{0x1D, 0, 0, 0, 0},
11153 	{0x1E, 0, 0, 0, 0},
11154 	{0x1F, 0, 0, 0, 0},
11155 	{0x20, 0, 0, 0, 0},
11156 	{0x21, 0x88, 0x88, 0, 0},
11157 	{0x22, 0x88, 0x88, 0, 0},
11158 	{0x23, 0x88, 0x88, 0, 0},
11159 	{0x24, 0x88, 0x88, 0, 0},
11160 	{0x25, 0xc, 0xc, 0, 0},
11161 	{0x26, 0, 0, 0, 0},
11162 	{0x27, 0x3, 0x3, 0, 0},
11163 	{0x28, 0, 0, 0, 0},
11164 	{0x29, 0x3, 0x3, 0, 0},
11165 	{0x2A, 0x37, 0x37, 0, 0},
11166 	{0x2B, 0x3, 0x3, 0, 0},
11167 	{0x2C, 0, 0, 0, 0},
11168 	{0x2D, 0, 0, 0, 0},
11169 	{0x2E, 0x1, 0x1, 0, 0},
11170 	{0x2F, 0x1, 0x1, 0, 0},
11171 	{0x30, 0, 0, 0, 0},
11172 	{0x31, 0, 0, 0, 0},
11173 	{0x32, 0, 0, 0, 0},
11174 	{0x33, 0x11, 0x11, 0, 0},
11175 	{0x34, 0xee, 0xee, 1, 1},
11176 	{0x35, 0, 0, 0, 0},
11177 	{0x36, 0, 0, 0, 0},
11178 	{0x37, 0x3, 0x3, 0, 0},
11179 	{0x38, 0x50, 0x50, 1, 1},
11180 	{0x39, 0, 0, 0, 0},
11181 	{0x3A, 0x50, 0x50, 1, 1},
11182 	{0x3B, 0, 0, 0, 0},
11183 	{0x3C, 0x6e, 0x6e, 0, 0},
11184 	{0x3D, 0xf0, 0xf0, 1, 1},
11185 	{0x3E, 0, 0, 0, 0},
11186 	{0x3F, 0, 0, 0, 0},
11187 	{0x40, 0, 0, 0, 0},
11188 	{0x41, 0x3, 0x3, 0, 0},
11189 	{0x42, 0x3, 0x3, 0, 0},
11190 	{0x43, 0, 0, 0, 0},
11191 	{0x44, 0x1e, 0x1e, 0, 0},
11192 	{0x45, 0, 0, 0, 0},
11193 	{0x46, 0x6e, 0x6e, 0, 0},
11194 	{0x47, 0xf0, 0xf0, 1, 1},
11195 	{0x48, 0, 0, 0, 0},
11196 	{0x49, 0x2, 0x2, 0, 0},
11197 	{0x4A, 0xff, 0xff, 1, 1},
11198 	{0x4B, 0xc, 0xc, 0, 0},
11199 	{0x4C, 0, 0, 0, 0},
11200 	{0x4D, 0x38, 0x38, 0, 0},
11201 	{0x4E, 0x70, 0x70, 1, 1},
11202 	{0x4F, 0x2, 0x2, 0, 0},
11203 	{0x50, 0x88, 0x88, 0, 0},
11204 	{0x51, 0xc, 0xc, 0, 0},
11205 	{0x52, 0, 0, 0, 0},
11206 	{0x53, 0x8, 0x8, 0, 0},
11207 	{0x54, 0x70, 0x70, 1, 1},
11208 	{0x55, 0x2, 0x2, 0, 0},
11209 	{0x56, 0xff, 0xff, 1, 1},
11210 	{0x57, 0, 0, 0, 0},
11211 	{0x58, 0x83, 0x83, 0, 0},
11212 	{0x59, 0x77, 0x77, 1, 1},
11213 	{0x5A, 0, 0, 0, 0},
11214 	{0x5B, 0x2, 0x2, 0, 0},
11215 	{0x5C, 0x88, 0x88, 0, 0},
11216 	{0x5D, 0, 0, 0, 0},
11217 	{0x5E, 0x8, 0x8, 0, 0},
11218 	{0x5F, 0x77, 0x77, 1, 1},
11219 	{0x60, 0x1, 0x1, 0, 0},
11220 	{0x61, 0, 0, 0, 0},
11221 	{0x62, 0x7, 0x7, 0, 0},
11222 	{0x63, 0, 0, 0, 0},
11223 	{0x64, 0x7, 0x7, 0, 0},
11224 	{0x65, 0, 0, 0, 0},
11225 	{0x66, 0, 0, 0, 0},
11226 	{0x67, 0, 0, 1, 1},
11227 	{0x68, 0, 0, 0, 0},
11228 	{0x69, 0xa, 0xa, 0, 0},
11229 	{0x6A, 0, 0, 0, 0},
11230 	{0x6B, 0, 0, 0, 0},
11231 	{0x6C, 0, 0, 0, 0},
11232 	{0x6D, 0, 0, 0, 0},
11233 	{0x6E, 0, 0, 0, 0},
11234 	{0x6F, 0, 0, 0, 0},
11235 	{0x70, 0, 0, 0, 0},
11236 	{0x71, 0x2, 0x2, 0, 0},
11237 	{0x72, 0, 0, 0, 0},
11238 	{0x73, 0, 0, 0, 0},
11239 	{0x74, 0xe, 0xe, 0, 0},
11240 	{0x75, 0xe, 0xe, 0, 0},
11241 	{0x76, 0xe, 0xe, 0, 0},
11242 	{0x77, 0x13, 0x13, 0, 0},
11243 	{0x78, 0x13, 0x13, 0, 0},
11244 	{0x79, 0x1b, 0x1b, 0, 0},
11245 	{0x7A, 0x1b, 0x1b, 0, 0},
11246 	{0x7B, 0x55, 0x55, 0, 0},
11247 	{0x7C, 0x5b, 0x5b, 0, 0},
11248 	{0x7D, 0x30, 0x30, 1, 1},
11249 	{0x7E, 0, 0, 0, 0},
11250 	{0x7F, 0, 0, 0, 0},
11251 	{0x80, 0, 0, 0, 0},
11252 	{0x81, 0, 0, 0, 0},
11253 	{0x82, 0, 0, 0, 0},
11254 	{0x83, 0, 0, 0, 0},
11255 	{0x84, 0, 0, 0, 0},
11256 	{0x85, 0, 0, 0, 0},
11257 	{0x86, 0, 0, 0, 0},
11258 	{0x87, 0, 0, 0, 0},
11259 	{0x88, 0, 0, 0, 0},
11260 	{0x89, 0, 0, 0, 0},
11261 	{0x8A, 0, 0, 0, 0},
11262 	{0x8B, 0, 0, 0, 0},
11263 	{0x8C, 0, 0, 0, 0},
11264 	{0x8D, 0, 0, 0, 0},
11265 	{0x8E, 0, 0, 0, 0},
11266 	{0x8F, 0, 0, 0, 0},
11267 	{0x90, 0, 0, 0, 0},
11268 	{0x91, 0, 0, 0, 0},
11269 	{0x92, 0, 0, 0, 0},
11270 	{0x93, 0x70, 0x70, 0, 0},
11271 	{0x94, 0x70, 0x70, 0, 0},
11272 	{0x95, 0x70, 0x70, 0, 0},
11273 	{0x96, 0x70, 0x70, 0, 0},
11274 	{0x97, 0x70, 0x70, 0, 0},
11275 	{0x98, 0x70, 0x70, 0, 0},
11276 	{0x99, 0x70, 0x70, 0, 0},
11277 	{0x9A, 0x70, 0x70, 0, 0},
11278 	{0xFFFF, 0, 0, 0, 0},
11279 };
11280 
11281 static const struct radio_regs regs_RX_2056_rev11[] = {
11282 	{0x02, 0, 0, 0, 0},
11283 	{0x03, 0, 0, 0, 0},
11284 	{0x04, 0, 0, 0, 0},
11285 	{0x05, 0, 0, 0, 0},
11286 	{0x06, 0, 0, 0, 0},
11287 	{0x07, 0, 0, 0, 0},
11288 	{0x08, 0, 0, 0, 0},
11289 	{0x09, 0, 0, 0, 0},
11290 	{0x0A, 0, 0, 0, 0},
11291 	{0x0B, 0, 0, 0, 0},
11292 	{0x0C, 0, 0, 0, 0},
11293 	{0x0D, 0, 0, 0, 0},
11294 	{0x0E, 0, 0, 0, 0},
11295 	{0x0F, 0, 0, 0, 0},
11296 	{0x10, 0, 0, 0, 0},
11297 	{0x11, 0, 0, 0, 0},
11298 	{0x12, 0, 0, 0, 0},
11299 	{0x13, 0, 0, 0, 0},
11300 	{0x14, 0, 0, 0, 0},
11301 	{0x15, 0, 0, 0, 0},
11302 	{0x16, 0, 0, 0, 0},
11303 	{0x17, 0, 0, 0, 0},
11304 	{0x18, 0, 0, 0, 0},
11305 	{0x19, 0, 0, 0, 0},
11306 	{0x1A, 0, 0, 0, 0},
11307 	{0x1B, 0, 0, 0, 0},
11308 	{0x1C, 0, 0, 0, 0},
11309 	{0x1D, 0, 0, 0, 0},
11310 	{0x1E, 0, 0, 0, 0},
11311 	{0x1F, 0, 0, 0, 0},
11312 	{0x20, 0x3, 0x3, 0, 0},
11313 	{0x21, 0, 0, 0, 0},
11314 	{0x22, 0, 0, 0, 0},
11315 	{0x23, 0x90, 0x90, 0, 0},
11316 	{0x24, 0x55, 0x55, 0, 0},
11317 	{0x25, 0x15, 0x15, 0, 0},
11318 	{0x26, 0x5, 0x5, 0, 0},
11319 	{0x27, 0x15, 0x15, 0, 0},
11320 	{0x28, 0x5, 0x5, 0, 0},
11321 	{0x29, 0x20, 0x20, 0, 0},
11322 	{0x2A, 0x11, 0x11, 0, 0},
11323 	{0x2B, 0x90, 0x90, 0, 0},
11324 	{0x2C, 0, 0, 0, 0},
11325 	{0x2D, 0x88, 0x88, 0, 0},
11326 	{0x2E, 0x32, 0x32, 0, 0},
11327 	{0x2F, 0x77, 0x77, 0, 0},
11328 	{0x30, 0x17, 0x17, 1, 1},
11329 	{0x31, 0xff, 0xff, 1, 1},
11330 	{0x32, 0x20, 0x20, 0, 0},
11331 	{0x33, 0, 0, 0, 0},
11332 	{0x34, 0x88, 0x88, 0, 0},
11333 	{0x35, 0x32, 0x32, 0, 0},
11334 	{0x36, 0x77, 0x77, 0, 0},
11335 	{0x37, 0x17, 0x17, 1, 1},
11336 	{0x38, 0xf0, 0xf0, 1, 1},
11337 	{0x39, 0x20, 0x20, 0, 0},
11338 	{0x3A, 0x8, 0x8, 0, 0},
11339 	{0x3B, 0x55, 0x55, 1, 1},
11340 	{0x3C, 0, 0, 0, 0},
11341 	{0x3D, 0x88, 0x88, 1, 1},
11342 	{0x3E, 0, 0, 0, 0},
11343 	{0x3F, 0x44, 0x44, 0, 0},
11344 	{0x40, 0x7, 0x7, 1, 1},
11345 	{0x41, 0x6, 0x6, 0, 0},
11346 	{0x42, 0x4, 0x4, 0, 0},
11347 	{0x43, 0, 0, 0, 0},
11348 	{0x44, 0x8, 0x8, 0, 0},
11349 	{0x45, 0x55, 0x55, 1, 1},
11350 	{0x46, 0, 0, 0, 0},
11351 	{0x47, 0x11, 0x11, 0, 0},
11352 	{0x48, 0, 0, 0, 0},
11353 	{0x49, 0x44, 0x44, 0, 0},
11354 	{0x4A, 0x7, 0x7, 0, 0},
11355 	{0x4B, 0x6, 0x6, 0, 0},
11356 	{0x4C, 0x4, 0x4, 0, 0},
11357 	{0x4D, 0, 0, 0, 0},
11358 	{0x4E, 0, 0, 0, 0},
11359 	{0x4F, 0x26, 0x26, 1, 1},
11360 	{0x50, 0x26, 0x26, 1, 1},
11361 	{0x51, 0xf, 0xf, 1, 1},
11362 	{0x52, 0xf, 0xf, 1, 1},
11363 	{0x53, 0x44, 0x44, 0, 0},
11364 	{0x54, 0, 0, 0, 0},
11365 	{0x55, 0, 0, 0, 0},
11366 	{0x56, 0x8, 0x8, 0, 0},
11367 	{0x57, 0x8, 0x8, 0, 0},
11368 	{0x58, 0x7, 0x7, 0, 0},
11369 	{0x59, 0x22, 0x22, 0, 0},
11370 	{0x5A, 0x22, 0x22, 0, 0},
11371 	{0x5B, 0x2, 0x2, 0, 0},
11372 	{0x5C, 0x4, 0x4, 1, 1},
11373 	{0x5D, 0x7, 0x7, 0, 0},
11374 	{0x5E, 0x55, 0x55, 0, 0},
11375 	{0x5F, 0x23, 0x23, 0, 0},
11376 	{0x60, 0x41, 0x41, 0, 0},
11377 	{0x61, 0x1, 0x1, 0, 0},
11378 	{0x62, 0xa, 0xa, 0, 0},
11379 	{0x63, 0, 0, 0, 0},
11380 	{0x64, 0, 0, 0, 0},
11381 	{0x65, 0, 0, 0, 0},
11382 	{0x66, 0, 0, 0, 0},
11383 	{0x67, 0, 0, 0, 0},
11384 	{0x68, 0, 0, 0, 0},
11385 	{0x69, 0, 0, 0, 0},
11386 	{0x6A, 0, 0, 0, 0},
11387 	{0x6B, 0xc, 0xc, 0, 0},
11388 	{0x6C, 0, 0, 0, 0},
11389 	{0x6D, 0, 0, 0, 0},
11390 	{0x6E, 0, 0, 0, 0},
11391 	{0x6F, 0, 0, 0, 0},
11392 	{0x70, 0, 0, 0, 0},
11393 	{0x71, 0, 0, 0, 0},
11394 	{0x72, 0x22, 0x22, 0, 0},
11395 	{0x73, 0x22, 0x22, 0, 0},
11396 	{0x74, 0, 0, 1, 1},
11397 	{0x75, 0xa, 0xa, 0, 0},
11398 	{0x76, 0x1, 0x1, 0, 0},
11399 	{0x77, 0x22, 0x22, 0, 0},
11400 	{0x78, 0x30, 0x30, 0, 0},
11401 	{0x79, 0, 0, 0, 0},
11402 	{0x7A, 0, 0, 0, 0},
11403 	{0x7B, 0, 0, 0, 0},
11404 	{0x7C, 0, 0, 0, 0},
11405 	{0x7D, 0x5, 0x5, 1, 1},
11406 	{0x7E, 0, 0, 0, 0},
11407 	{0x7F, 0, 0, 0, 0},
11408 	{0x80, 0, 0, 0, 0},
11409 	{0x81, 0, 0, 0, 0},
11410 	{0x82, 0, 0, 0, 0},
11411 	{0x83, 0, 0, 0, 0},
11412 	{0x84, 0, 0, 0, 0},
11413 	{0x85, 0, 0, 0, 0},
11414 	{0x86, 0, 0, 0, 0},
11415 	{0x87, 0, 0, 0, 0},
11416 	{0x88, 0, 0, 0, 0},
11417 	{0x89, 0, 0, 0, 0},
11418 	{0x8A, 0, 0, 0, 0},
11419 	{0x8B, 0, 0, 0, 0},
11420 	{0x8C, 0, 0, 0, 0},
11421 	{0x8D, 0, 0, 0, 0},
11422 	{0x8E, 0, 0, 0, 0},
11423 	{0x8F, 0, 0, 0, 0},
11424 	{0x90, 0, 0, 0, 0},
11425 	{0x91, 0, 0, 0, 0},
11426 	{0x92, 0, 0, 0, 0},
11427 	{0x93, 0, 0, 0, 0},
11428 	{0x94, 0, 0, 0, 0},
11429 	{0xFFFF, 0, 0, 0, 0},
11430 };
11431 
11432 static struct radio_20xx_regs regs_2057_rev4[] = {
11433 	{0x00, 0x84, 0},
11434 	{0x01, 0, 0},
11435 	{0x02, 0x60, 0},
11436 	{0x03, 0x1f, 0},
11437 	{0x04, 0x4, 0},
11438 	{0x05, 0x2, 0},
11439 	{0x06, 0x1, 0},
11440 	{0x07, 0x1, 0},
11441 	{0x08, 0x1, 0},
11442 	{0x09, 0x69, 0},
11443 	{0x0A, 0x66, 0},
11444 	{0x0B, 0x6, 0},
11445 	{0x0C, 0x18, 0},
11446 	{0x0D, 0x3, 0},
11447 	{0x0E, 0x20, 1},
11448 	{0x0F, 0x20, 0},
11449 	{0x10, 0, 0},
11450 	{0x11, 0x7c, 0},
11451 	{0x12, 0x42, 0},
11452 	{0x13, 0xbd, 0},
11453 	{0x14, 0x7, 0},
11454 	{0x15, 0xf7, 0},
11455 	{0x16, 0x8, 0},
11456 	{0x17, 0x17, 0},
11457 	{0x18, 0x7, 0},
11458 	{0x19, 0, 0},
11459 	{0x1A, 0x2, 0},
11460 	{0x1B, 0x13, 0},
11461 	{0x1C, 0x3e, 0},
11462 	{0x1D, 0x3e, 0},
11463 	{0x1E, 0x96, 0},
11464 	{0x1F, 0x4, 0},
11465 	{0x20, 0, 0},
11466 	{0x21, 0, 0},
11467 	{0x22, 0x17, 0},
11468 	{0x23, 0x4, 0},
11469 	{0x24, 0x1, 0},
11470 	{0x25, 0x6, 0},
11471 	{0x26, 0x4, 0},
11472 	{0x27, 0xd, 0},
11473 	{0x28, 0xd, 0},
11474 	{0x29, 0x30, 0},
11475 	{0x2A, 0x32, 0},
11476 	{0x2B, 0x8, 0},
11477 	{0x2C, 0x1c, 0},
11478 	{0x2D, 0x2, 0},
11479 	{0x2E, 0x4, 0},
11480 	{0x2F, 0x7f, 0},
11481 	{0x30, 0x27, 0},
11482 	{0x31, 0, 1},
11483 	{0x32, 0, 1},
11484 	{0x33, 0, 1},
11485 	{0x34, 0, 0},
11486 	{0x35, 0x26, 1},
11487 	{0x36, 0x18, 0},
11488 	{0x37, 0x7, 0},
11489 	{0x38, 0x66, 0},
11490 	{0x39, 0x66, 0},
11491 	{0x3A, 0x66, 0},
11492 	{0x3B, 0x66, 0},
11493 	{0x3C, 0xff, 1},
11494 	{0x3D, 0xff, 1},
11495 	{0x3E, 0xff, 1},
11496 	{0x3F, 0xff, 1},
11497 	{0x40, 0x16, 0},
11498 	{0x41, 0x7, 0},
11499 	{0x42, 0x19, 0},
11500 	{0x43, 0x7, 0},
11501 	{0x44, 0x6, 0},
11502 	{0x45, 0x3, 0},
11503 	{0x46, 0x1, 0},
11504 	{0x47, 0x7, 0},
11505 	{0x48, 0x33, 0},
11506 	{0x49, 0x5, 0},
11507 	{0x4A, 0x77, 0},
11508 	{0x4B, 0x66, 0},
11509 	{0x4C, 0x66, 0},
11510 	{0x4D, 0, 0},
11511 	{0x4E, 0x4, 0},
11512 	{0x4F, 0xc, 0},
11513 	{0x50, 0, 0},
11514 	{0x51, 0x75, 0},
11515 	{0x56, 0x7, 0},
11516 	{0x57, 0, 0},
11517 	{0x58, 0, 0},
11518 	{0x59, 0xa8, 0},
11519 	{0x5A, 0, 0},
11520 	{0x5B, 0x1f, 0},
11521 	{0x5C, 0x30, 0},
11522 	{0x5D, 0x1, 0},
11523 	{0x5E, 0x30, 0},
11524 	{0x5F, 0x70, 0},
11525 	{0x60, 0, 0},
11526 	{0x61, 0, 0},
11527 	{0x62, 0x33, 1},
11528 	{0x63, 0x19, 0},
11529 	{0x64, 0x62, 0},
11530 	{0x65, 0, 0},
11531 	{0x66, 0x11, 0},
11532 	{0x69, 0, 0},
11533 	{0x6A, 0x7e, 0},
11534 	{0x6B, 0x3f, 0},
11535 	{0x6C, 0x7f, 0},
11536 	{0x6D, 0x78, 0},
11537 	{0x6E, 0xc8, 0},
11538 	{0x6F, 0x88, 0},
11539 	{0x70, 0x8, 0},
11540 	{0x71, 0xf, 0},
11541 	{0x72, 0xbc, 0},
11542 	{0x73, 0x8, 0},
11543 	{0x74, 0x60, 0},
11544 	{0x75, 0x1e, 0},
11545 	{0x76, 0x70, 0},
11546 	{0x77, 0, 0},
11547 	{0x78, 0, 0},
11548 	{0x79, 0, 0},
11549 	{0x7A, 0x33, 0},
11550 	{0x7B, 0x1e, 0},
11551 	{0x7C, 0x62, 0},
11552 	{0x7D, 0x11, 0},
11553 	{0x80, 0x3c, 0},
11554 	{0x81, 0x9c, 0},
11555 	{0x82, 0xa, 0},
11556 	{0x83, 0x9d, 0},
11557 	{0x84, 0xa, 0},
11558 	{0x85, 0, 0},
11559 	{0x86, 0x40, 0},
11560 	{0x87, 0x40, 0},
11561 	{0x88, 0x88, 0},
11562 	{0x89, 0x10, 0},
11563 	{0x8A, 0xf0, 1},
11564 	{0x8B, 0x10, 1},
11565 	{0x8C, 0xf0, 1},
11566 	{0x8D, 0, 0},
11567 	{0x8E, 0, 0},
11568 	{0x8F, 0x10, 0},
11569 	{0x90, 0x55, 0},
11570 	{0x91, 0x3f, 1},
11571 	{0x92, 0x36, 1},
11572 	{0x93, 0, 0},
11573 	{0x94, 0, 0},
11574 	{0x95, 0, 0},
11575 	{0x96, 0x87, 0},
11576 	{0x97, 0x11, 0},
11577 	{0x98, 0, 0},
11578 	{0x99, 0x33, 0},
11579 	{0x9A, 0x88, 0},
11580 	{0x9B, 0, 0},
11581 	{0x9C, 0x87, 0},
11582 	{0x9D, 0x11, 0},
11583 	{0x9E, 0, 0},
11584 	{0x9F, 0x33, 0},
11585 	{0xA0, 0x88, 0},
11586 	{0xA1, 0xe1, 0},
11587 	{0xA2, 0x3f, 0},
11588 	{0xA3, 0x44, 0},
11589 	{0xA4, 0x8c, 1},
11590 	{0xA5, 0x6d, 0},
11591 	{0xA6, 0x22, 0},
11592 	{0xA7, 0xbe, 0},
11593 	{0xA8, 0x55, 1},
11594 	{0xA9, 0xc, 0},
11595 	{0xAA, 0xc, 0},
11596 	{0xAB, 0xaa, 0},
11597 	{0xAC, 0x2, 0},
11598 	{0xAD, 0, 0},
11599 	{0xAE, 0x10, 0},
11600 	{0xAF, 0x1, 1},
11601 	{0xB0, 0, 0},
11602 	{0xB1, 0, 0},
11603 	{0xB2, 0x80, 0},
11604 	{0xB3, 0x60, 0},
11605 	{0xB4, 0x44, 0},
11606 	{0xB5, 0x55, 0},
11607 	{0xB6, 0x1, 0},
11608 	{0xB7, 0x55, 0},
11609 	{0xB8, 0x1, 0},
11610 	{0xB9, 0x5, 0},
11611 	{0xBA, 0x55, 0},
11612 	{0xBB, 0x55, 0},
11613 	{0xC1, 0, 0},
11614 	{0xC2, 0, 0},
11615 	{0xC3, 0, 0},
11616 	{0xC4, 0, 0},
11617 	{0xC5, 0, 0},
11618 	{0xC6, 0, 0},
11619 	{0xC7, 0, 0},
11620 	{0xC8, 0, 0},
11621 	{0xC9, 0, 0},
11622 	{0xCA, 0, 0},
11623 	{0xCB, 0, 0},
11624 	{0xCC, 0, 0},
11625 	{0xCD, 0, 0},
11626 	{0xCE, 0x5e, 0},
11627 	{0xCF, 0xc, 0},
11628 	{0xD0, 0xc, 0},
11629 	{0xD1, 0xc, 0},
11630 	{0xD2, 0, 0},
11631 	{0xD3, 0x2b, 0},
11632 	{0xD4, 0xc, 0},
11633 	{0xD5, 0, 0},
11634 	{0xD6, 0x75, 0},
11635 	{0xDB, 0x7, 0},
11636 	{0xDC, 0, 0},
11637 	{0xDD, 0, 0},
11638 	{0xDE, 0xa8, 0},
11639 	{0xDF, 0, 0},
11640 	{0xE0, 0x1f, 0},
11641 	{0xE1, 0x30, 0},
11642 	{0xE2, 0x1, 0},
11643 	{0xE3, 0x30, 0},
11644 	{0xE4, 0x70, 0},
11645 	{0xE5, 0, 0},
11646 	{0xE6, 0, 0},
11647 	{0xE7, 0x33, 0},
11648 	{0xE8, 0x19, 0},
11649 	{0xE9, 0x62, 0},
11650 	{0xEA, 0, 0},
11651 	{0xEB, 0x11, 0},
11652 	{0xEE, 0, 0},
11653 	{0xEF, 0x7e, 0},
11654 	{0xF0, 0x3f, 0},
11655 	{0xF1, 0x7f, 0},
11656 	{0xF2, 0x78, 0},
11657 	{0xF3, 0xc8, 0},
11658 	{0xF4, 0x88, 0},
11659 	{0xF5, 0x8, 0},
11660 	{0xF6, 0xf, 0},
11661 	{0xF7, 0xbc, 0},
11662 	{0xF8, 0x8, 0},
11663 	{0xF9, 0x60, 0},
11664 	{0xFA, 0x1e, 0},
11665 	{0xFB, 0x70, 0},
11666 	{0xFC, 0, 0},
11667 	{0xFD, 0, 0},
11668 	{0xFE, 0, 0},
11669 	{0xFF, 0x33, 0},
11670 	{0x100, 0x1e, 0},
11671 	{0x101, 0x62, 0},
11672 	{0x102, 0x11, 0},
11673 	{0x105, 0x3c, 0},
11674 	{0x106, 0x9c, 0},
11675 	{0x107, 0xa, 0},
11676 	{0x108, 0x9d, 0},
11677 	{0x109, 0xa, 0},
11678 	{0x10A, 0, 0},
11679 	{0x10B, 0x40, 0},
11680 	{0x10C, 0x40, 0},
11681 	{0x10D, 0x88, 0},
11682 	{0x10E, 0x10, 0},
11683 	{0x10F, 0xf0, 1},
11684 	{0x110, 0x10, 1},
11685 	{0x111, 0xf0, 1},
11686 	{0x112, 0, 0},
11687 	{0x113, 0, 0},
11688 	{0x114, 0x10, 0},
11689 	{0x115, 0x55, 0},
11690 	{0x116, 0x3f, 1},
11691 	{0x117, 0x36, 1},
11692 	{0x118, 0, 0},
11693 	{0x119, 0, 0},
11694 	{0x11A, 0, 0},
11695 	{0x11B, 0x87, 0},
11696 	{0x11C, 0x11, 0},
11697 	{0x11D, 0, 0},
11698 	{0x11E, 0x33, 0},
11699 	{0x11F, 0x88, 0},
11700 	{0x120, 0, 0},
11701 	{0x121, 0x87, 0},
11702 	{0x122, 0x11, 0},
11703 	{0x123, 0, 0},
11704 	{0x124, 0x33, 0},
11705 	{0x125, 0x88, 0},
11706 	{0x126, 0xe1, 0},
11707 	{0x127, 0x3f, 0},
11708 	{0x128, 0x44, 0},
11709 	{0x129, 0x8c, 1},
11710 	{0x12A, 0x6d, 0},
11711 	{0x12B, 0x22, 0},
11712 	{0x12C, 0xbe, 0},
11713 	{0x12D, 0x55, 1},
11714 	{0x12E, 0xc, 0},
11715 	{0x12F, 0xc, 0},
11716 	{0x130, 0xaa, 0},
11717 	{0x131, 0x2, 0},
11718 	{0x132, 0, 0},
11719 	{0x133, 0x10, 0},
11720 	{0x134, 0x1, 1},
11721 	{0x135, 0, 0},
11722 	{0x136, 0, 0},
11723 	{0x137, 0x80, 0},
11724 	{0x138, 0x60, 0},
11725 	{0x139, 0x44, 0},
11726 	{0x13A, 0x55, 0},
11727 	{0x13B, 0x1, 0},
11728 	{0x13C, 0x55, 0},
11729 	{0x13D, 0x1, 0},
11730 	{0x13E, 0x5, 0},
11731 	{0x13F, 0x55, 0},
11732 	{0x140, 0x55, 0},
11733 	{0x146, 0, 0},
11734 	{0x147, 0, 0},
11735 	{0x148, 0, 0},
11736 	{0x149, 0, 0},
11737 	{0x14A, 0, 0},
11738 	{0x14B, 0, 0},
11739 	{0x14C, 0, 0},
11740 	{0x14D, 0, 0},
11741 	{0x14E, 0, 0},
11742 	{0x14F, 0, 0},
11743 	{0x150, 0, 0},
11744 	{0x151, 0, 0},
11745 	{0x152, 0, 0},
11746 	{0x153, 0, 0},
11747 	{0x154, 0xc, 0},
11748 	{0x155, 0xc, 0},
11749 	{0x156, 0xc, 0},
11750 	{0x157, 0, 0},
11751 	{0x158, 0x2b, 0},
11752 	{0x159, 0x84, 0},
11753 	{0x15A, 0x15, 0},
11754 	{0x15B, 0xf, 0},
11755 	{0x15C, 0, 0},
11756 	{0x15D, 0, 0},
11757 	{0x15E, 0, 1},
11758 	{0x15F, 0, 1},
11759 	{0x160, 0, 1},
11760 	{0x161, 0, 1},
11761 	{0x162, 0, 1},
11762 	{0x163, 0, 1},
11763 	{0x164, 0, 0},
11764 	{0x165, 0, 0},
11765 	{0x166, 0, 0},
11766 	{0x167, 0, 0},
11767 	{0x168, 0, 0},
11768 	{0x169, 0x2, 1},
11769 	{0x16A, 0, 1},
11770 	{0x16B, 0, 1},
11771 	{0x16C, 0, 1},
11772 	{0x16D, 0, 0},
11773 	{0x170, 0, 0},
11774 	{0x171, 0x77, 0},
11775 	{0x172, 0x77, 0},
11776 	{0x173, 0x77, 0},
11777 	{0x174, 0x77, 0},
11778 	{0x175, 0, 0},
11779 	{0x176, 0x3, 0},
11780 	{0x177, 0x37, 0},
11781 	{0x178, 0x3, 0},
11782 	{0x179, 0, 0},
11783 	{0x17A, 0x21, 0},
11784 	{0x17B, 0x21, 0},
11785 	{0x17C, 0, 0},
11786 	{0x17D, 0xaa, 0},
11787 	{0x17E, 0, 0},
11788 	{0x17F, 0xaa, 0},
11789 	{0x180, 0, 0},
11790 	{0x190, 0, 0},
11791 	{0x191, 0x77, 0},
11792 	{0x192, 0x77, 0},
11793 	{0x193, 0x77, 0},
11794 	{0x194, 0x77, 0},
11795 	{0x195, 0, 0},
11796 	{0x196, 0x3, 0},
11797 	{0x197, 0x37, 0},
11798 	{0x198, 0x3, 0},
11799 	{0x199, 0, 0},
11800 	{0x19A, 0x21, 0},
11801 	{0x19B, 0x21, 0},
11802 	{0x19C, 0, 0},
11803 	{0x19D, 0xaa, 0},
11804 	{0x19E, 0, 0},
11805 	{0x19F, 0xaa, 0},
11806 	{0x1A0, 0, 0},
11807 	{0x1A1, 0x2, 0},
11808 	{0x1A2, 0xf, 0},
11809 	{0x1A3, 0xf, 0},
11810 	{0x1A4, 0, 1},
11811 	{0x1A5, 0, 1},
11812 	{0x1A6, 0, 1},
11813 	{0x1A7, 0x2, 0},
11814 	{0x1A8, 0xf, 0},
11815 	{0x1A9, 0xf, 0},
11816 	{0x1AA, 0, 1},
11817 	{0x1AB, 0, 1},
11818 	{0x1AC, 0, 1},
11819 	{0xFFFF, 0, 0},
11820 };
11821 
11822 static struct radio_20xx_regs regs_2057_rev5[] = {
11823 	{0x00, 0, 1},
11824 	{0x01, 0x57, 1},
11825 	{0x02, 0x20, 1},
11826 	{0x03, 0x1f, 0},
11827 	{0x04, 0x4, 0},
11828 	{0x05, 0x2, 0},
11829 	{0x06, 0x1, 0},
11830 	{0x07, 0x1, 0},
11831 	{0x08, 0x1, 0},
11832 	{0x09, 0x69, 0},
11833 	{0x0A, 0x66, 0},
11834 	{0x0B, 0x6, 0},
11835 	{0x0C, 0x18, 0},
11836 	{0x0D, 0x3, 0},
11837 	{0x0E, 0x20, 0},
11838 	{0x0F, 0x20, 0},
11839 	{0x10, 0, 0},
11840 	{0x11, 0x7c, 0},
11841 	{0x12, 0x42, 0},
11842 	{0x13, 0xbd, 0},
11843 	{0x14, 0x7, 0},
11844 	{0x15, 0x87, 0},
11845 	{0x16, 0x8, 0},
11846 	{0x17, 0x17, 0},
11847 	{0x18, 0x7, 0},
11848 	{0x19, 0, 0},
11849 	{0x1A, 0x2, 0},
11850 	{0x1B, 0x13, 0},
11851 	{0x1C, 0x3e, 0},
11852 	{0x1D, 0x3e, 0},
11853 	{0x1E, 0x96, 0},
11854 	{0x1F, 0x4, 0},
11855 	{0x20, 0, 0},
11856 	{0x21, 0, 0},
11857 	{0x22, 0x17, 0},
11858 	{0x23, 0x6, 1},
11859 	{0x24, 0x1, 0},
11860 	{0x25, 0x6, 0},
11861 	{0x26, 0x4, 0},
11862 	{0x27, 0xd, 0},
11863 	{0x28, 0xd, 0},
11864 	{0x29, 0x30, 0},
11865 	{0x2A, 0x32, 0},
11866 	{0x2B, 0x8, 0},
11867 	{0x2C, 0x1c, 0},
11868 	{0x2D, 0x2, 0},
11869 	{0x2E, 0x4, 0},
11870 	{0x2F, 0x7f, 0},
11871 	{0x30, 0x27, 0},
11872 	{0x31, 0, 1},
11873 	{0x32, 0, 1},
11874 	{0x33, 0, 1},
11875 	{0x34, 0, 0},
11876 	{0x35, 0x20, 0},
11877 	{0x36, 0x18, 0},
11878 	{0x37, 0x7, 0},
11879 	{0x38, 0x66, 0},
11880 	{0x39, 0x66, 0},
11881 	{0x3C, 0xff, 0},
11882 	{0x3D, 0xff, 0},
11883 	{0x40, 0x16, 0},
11884 	{0x41, 0x7, 0},
11885 	{0x45, 0x3, 0},
11886 	{0x46, 0x1, 0},
11887 	{0x47, 0x7, 0},
11888 	{0x4B, 0x66, 0},
11889 	{0x4C, 0x66, 0},
11890 	{0x4D, 0, 0},
11891 	{0x4E, 0x4, 0},
11892 	{0x4F, 0xc, 0},
11893 	{0x50, 0, 0},
11894 	{0x51, 0x70, 1},
11895 	{0x56, 0x7, 0},
11896 	{0x57, 0, 0},
11897 	{0x58, 0, 0},
11898 	{0x59, 0x88, 1},
11899 	{0x5A, 0, 0},
11900 	{0x5B, 0x1f, 0},
11901 	{0x5C, 0x20, 1},
11902 	{0x5D, 0x1, 0},
11903 	{0x5E, 0x30, 0},
11904 	{0x5F, 0x70, 0},
11905 	{0x60, 0, 0},
11906 	{0x61, 0, 0},
11907 	{0x62, 0x33, 1},
11908 	{0x63, 0xf, 1},
11909 	{0x64, 0xf, 1},
11910 	{0x65, 0, 0},
11911 	{0x66, 0x11, 0},
11912 	{0x80, 0x3c, 0},
11913 	{0x81, 0x1, 1},
11914 	{0x82, 0xa, 0},
11915 	{0x85, 0, 0},
11916 	{0x86, 0x40, 0},
11917 	{0x87, 0x40, 0},
11918 	{0x88, 0x88, 0},
11919 	{0x89, 0x10, 0},
11920 	{0x8A, 0xf0, 0},
11921 	{0x8B, 0x10, 0},
11922 	{0x8C, 0xf0, 0},
11923 	{0x8F, 0x10, 0},
11924 	{0x90, 0x55, 0},
11925 	{0x91, 0x3f, 1},
11926 	{0x92, 0x36, 1},
11927 	{0x93, 0, 0},
11928 	{0x94, 0, 0},
11929 	{0x95, 0, 0},
11930 	{0x96, 0x87, 0},
11931 	{0x97, 0x11, 0},
11932 	{0x98, 0, 0},
11933 	{0x99, 0x33, 0},
11934 	{0x9A, 0x88, 0},
11935 	{0xA1, 0x20, 1},
11936 	{0xA2, 0x3f, 0},
11937 	{0xA3, 0x44, 0},
11938 	{0xA4, 0x8c, 0},
11939 	{0xA5, 0x6c, 0},
11940 	{0xA6, 0x22, 0},
11941 	{0xA7, 0xbe, 0},
11942 	{0xA8, 0x55, 0},
11943 	{0xAA, 0xc, 0},
11944 	{0xAB, 0xaa, 0},
11945 	{0xAC, 0x2, 0},
11946 	{0xAD, 0, 0},
11947 	{0xAE, 0x10, 0},
11948 	{0xAF, 0x1, 0},
11949 	{0xB0, 0, 0},
11950 	{0xB1, 0, 0},
11951 	{0xB2, 0x80, 0},
11952 	{0xB3, 0x60, 0},
11953 	{0xB4, 0x44, 0},
11954 	{0xB5, 0x55, 0},
11955 	{0xB6, 0x1, 0},
11956 	{0xB7, 0x55, 0},
11957 	{0xB8, 0x1, 0},
11958 	{0xB9, 0x5, 0},
11959 	{0xBA, 0x55, 0},
11960 	{0xBB, 0x55, 0},
11961 	{0xC3, 0, 0},
11962 	{0xC4, 0, 0},
11963 	{0xC5, 0, 0},
11964 	{0xC6, 0, 0},
11965 	{0xC7, 0, 0},
11966 	{0xC8, 0, 0},
11967 	{0xC9, 0, 0},
11968 	{0xCA, 0, 0},
11969 	{0xCB, 0, 0},
11970 	{0xCD, 0, 0},
11971 	{0xCE, 0x5e, 0},
11972 	{0xCF, 0xc, 0},
11973 	{0xD0, 0xc, 0},
11974 	{0xD1, 0xc, 0},
11975 	{0xD2, 0, 0},
11976 	{0xD3, 0x2b, 0},
11977 	{0xD4, 0xc, 0},
11978 	{0xD5, 0, 0},
11979 	{0xD6, 0x70, 1},
11980 	{0xDB, 0x7, 0},
11981 	{0xDC, 0, 0},
11982 	{0xDD, 0, 0},
11983 	{0xDE, 0x88, 1},
11984 	{0xDF, 0, 0},
11985 	{0xE0, 0x1f, 0},
11986 	{0xE1, 0x20, 1},
11987 	{0xE2, 0x1, 0},
11988 	{0xE3, 0x30, 0},
11989 	{0xE4, 0x70, 0},
11990 	{0xE5, 0, 0},
11991 	{0xE6, 0, 0},
11992 	{0xE7, 0x33, 0},
11993 	{0xE8, 0xf, 1},
11994 	{0xE9, 0xf, 1},
11995 	{0xEA, 0, 0},
11996 	{0xEB, 0x11, 0},
11997 	{0x105, 0x3c, 0},
11998 	{0x106, 0x1, 1},
11999 	{0x107, 0xa, 0},
12000 	{0x10A, 0, 0},
12001 	{0x10B, 0x40, 0},
12002 	{0x10C, 0x40, 0},
12003 	{0x10D, 0x88, 0},
12004 	{0x10E, 0x10, 0},
12005 	{0x10F, 0xf0, 0},
12006 	{0x110, 0x10, 0},
12007 	{0x111, 0xf0, 0},
12008 	{0x114, 0x10, 0},
12009 	{0x115, 0x55, 0},
12010 	{0x116, 0x3f, 1},
12011 	{0x117, 0x36, 1},
12012 	{0x118, 0, 0},
12013 	{0x119, 0, 0},
12014 	{0x11A, 0, 0},
12015 	{0x11B, 0x87, 0},
12016 	{0x11C, 0x11, 0},
12017 	{0x11D, 0, 0},
12018 	{0x11E, 0x33, 0},
12019 	{0x11F, 0x88, 0},
12020 	{0x126, 0x20, 1},
12021 	{0x127, 0x3f, 0},
12022 	{0x128, 0x44, 0},
12023 	{0x129, 0x8c, 0},
12024 	{0x12A, 0x6c, 0},
12025 	{0x12B, 0x22, 0},
12026 	{0x12C, 0xbe, 0},
12027 	{0x12D, 0x55, 0},
12028 	{0x12F, 0xc, 0},
12029 	{0x130, 0xaa, 0},
12030 	{0x131, 0x2, 0},
12031 	{0x132, 0, 0},
12032 	{0x133, 0x10, 0},
12033 	{0x134, 0x1, 0},
12034 	{0x135, 0, 0},
12035 	{0x136, 0, 0},
12036 	{0x137, 0x80, 0},
12037 	{0x138, 0x60, 0},
12038 	{0x139, 0x44, 0},
12039 	{0x13A, 0x55, 0},
12040 	{0x13B, 0x1, 0},
12041 	{0x13C, 0x55, 0},
12042 	{0x13D, 0x1, 0},
12043 	{0x13E, 0x5, 0},
12044 	{0x13F, 0x55, 0},
12045 	{0x140, 0x55, 0},
12046 	{0x148, 0, 0},
12047 	{0x149, 0, 0},
12048 	{0x14A, 0, 0},
12049 	{0x14B, 0, 0},
12050 	{0x14C, 0, 0},
12051 	{0x14D, 0, 0},
12052 	{0x14E, 0, 0},
12053 	{0x14F, 0, 0},
12054 	{0x150, 0, 0},
12055 	{0x154, 0xc, 0},
12056 	{0x155, 0xc, 0},
12057 	{0x156, 0xc, 0},
12058 	{0x157, 0, 0},
12059 	{0x158, 0x2b, 0},
12060 	{0x159, 0x84, 0},
12061 	{0x15A, 0x15, 0},
12062 	{0x15B, 0xf, 0},
12063 	{0x15C, 0, 0},
12064 	{0x15D, 0, 0},
12065 	{0x15E, 0, 1},
12066 	{0x15F, 0, 1},
12067 	{0x160, 0, 1},
12068 	{0x161, 0, 1},
12069 	{0x162, 0, 1},
12070 	{0x163, 0, 1},
12071 	{0x164, 0, 0},
12072 	{0x165, 0, 0},
12073 	{0x166, 0, 0},
12074 	{0x167, 0, 0},
12075 	{0x168, 0, 0},
12076 	{0x169, 0, 0},
12077 	{0x16A, 0, 1},
12078 	{0x16B, 0, 1},
12079 	{0x16C, 0, 1},
12080 	{0x16D, 0, 0},
12081 	{0x170, 0, 0},
12082 	{0x171, 0x77, 0},
12083 	{0x172, 0x77, 0},
12084 	{0x173, 0x77, 0},
12085 	{0x174, 0x77, 0},
12086 	{0x175, 0, 0},
12087 	{0x176, 0x3, 0},
12088 	{0x177, 0x37, 0},
12089 	{0x178, 0x3, 0},
12090 	{0x179, 0, 0},
12091 	{0x17B, 0x21, 0},
12092 	{0x17C, 0, 0},
12093 	{0x17D, 0xaa, 0},
12094 	{0x17E, 0, 0},
12095 	{0x190, 0, 0},
12096 	{0x191, 0x77, 0},
12097 	{0x192, 0x77, 0},
12098 	{0x193, 0x77, 0},
12099 	{0x194, 0x77, 0},
12100 	{0x195, 0, 0},
12101 	{0x196, 0x3, 0},
12102 	{0x197, 0x37, 0},
12103 	{0x198, 0x3, 0},
12104 	{0x199, 0, 0},
12105 	{0x19B, 0x21, 0},
12106 	{0x19C, 0, 0},
12107 	{0x19D, 0xaa, 0},
12108 	{0x19E, 0, 0},
12109 	{0x1A1, 0x2, 0},
12110 	{0x1A2, 0xf, 0},
12111 	{0x1A3, 0xf, 0},
12112 	{0x1A4, 0, 1},
12113 	{0x1A5, 0, 1},
12114 	{0x1A6, 0, 1},
12115 	{0x1A7, 0x2, 0},
12116 	{0x1A8, 0xf, 0},
12117 	{0x1A9, 0xf, 0},
12118 	{0x1AA, 0, 1},
12119 	{0x1AB, 0, 1},
12120 	{0x1AC, 0, 1},
12121 	{0x1AD, 0x84, 0},
12122 	{0x1AE, 0x60, 0},
12123 	{0x1AF, 0x47, 0},
12124 	{0x1B0, 0x47, 0},
12125 	{0x1B1, 0, 0},
12126 	{0x1B2, 0, 0},
12127 	{0x1B3, 0, 0},
12128 	{0x1B4, 0, 0},
12129 	{0x1B5, 0, 0},
12130 	{0x1B6, 0, 0},
12131 	{0x1B7, 0xc, 1},
12132 	{0x1B8, 0, 0},
12133 	{0x1B9, 0, 0},
12134 	{0x1BA, 0, 0},
12135 	{0x1BB, 0, 0},
12136 	{0x1BC, 0, 0},
12137 	{0x1BD, 0, 0},
12138 	{0x1BE, 0, 0},
12139 	{0x1BF, 0, 0},
12140 	{0x1C0, 0, 0},
12141 	{0x1C1, 0x1, 1},
12142 	{0x1C2, 0x80, 1},
12143 	{0x1C3, 0, 0},
12144 	{0x1C4, 0, 0},
12145 	{0x1C5, 0, 0},
12146 	{0x1C6, 0, 0},
12147 	{0x1C7, 0, 0},
12148 	{0x1C8, 0, 0},
12149 	{0x1C9, 0, 0},
12150 	{0x1CA, 0, 0},
12151 	{0xFFFF, 0, 0}
12152 };
12153 
12154 static struct radio_20xx_regs regs_2057_rev5v1[] = {
12155 	{0x00, 0x15, 1},
12156 	{0x01, 0x57, 1},
12157 	{0x02, 0x20, 1},
12158 	{0x03, 0x1f, 0},
12159 	{0x04, 0x4, 0},
12160 	{0x05, 0x2, 0},
12161 	{0x06, 0x1, 0},
12162 	{0x07, 0x1, 0},
12163 	{0x08, 0x1, 0},
12164 	{0x09, 0x69, 0},
12165 	{0x0A, 0x66, 0},
12166 	{0x0B, 0x6, 0},
12167 	{0x0C, 0x18, 0},
12168 	{0x0D, 0x3, 0},
12169 	{0x0E, 0x20, 0},
12170 	{0x0F, 0x20, 0},
12171 	{0x10, 0, 0},
12172 	{0x11, 0x7c, 0},
12173 	{0x12, 0x42, 0},
12174 	{0x13, 0xbd, 0},
12175 	{0x14, 0x7, 0},
12176 	{0x15, 0x87, 0},
12177 	{0x16, 0x8, 0},
12178 	{0x17, 0x17, 0},
12179 	{0x18, 0x7, 0},
12180 	{0x19, 0, 0},
12181 	{0x1A, 0x2, 0},
12182 	{0x1B, 0x13, 0},
12183 	{0x1C, 0x3e, 0},
12184 	{0x1D, 0x3e, 0},
12185 	{0x1E, 0x96, 0},
12186 	{0x1F, 0x4, 0},
12187 	{0x20, 0, 0},
12188 	{0x21, 0, 0},
12189 	{0x22, 0x17, 0},
12190 	{0x23, 0x6, 1},
12191 	{0x24, 0x1, 0},
12192 	{0x25, 0x6, 0},
12193 	{0x26, 0x4, 0},
12194 	{0x27, 0xd, 0},
12195 	{0x28, 0xd, 0},
12196 	{0x29, 0x30, 0},
12197 	{0x2A, 0x32, 0},
12198 	{0x2B, 0x8, 0},
12199 	{0x2C, 0x1c, 0},
12200 	{0x2D, 0x2, 0},
12201 	{0x2E, 0x4, 0},
12202 	{0x2F, 0x7f, 0},
12203 	{0x30, 0x27, 0},
12204 	{0x31, 0, 1},
12205 	{0x32, 0, 1},
12206 	{0x33, 0, 1},
12207 	{0x34, 0, 0},
12208 	{0x35, 0x20, 0},
12209 	{0x36, 0x18, 0},
12210 	{0x37, 0x7, 0},
12211 	{0x38, 0x66, 0},
12212 	{0x39, 0x66, 0},
12213 	{0x3C, 0xff, 0},
12214 	{0x3D, 0xff, 0},
12215 	{0x40, 0x16, 0},
12216 	{0x41, 0x7, 0},
12217 	{0x45, 0x3, 0},
12218 	{0x46, 0x1, 0},
12219 	{0x47, 0x7, 0},
12220 	{0x4B, 0x66, 0},
12221 	{0x4C, 0x66, 0},
12222 	{0x4D, 0, 0},
12223 	{0x4E, 0x4, 0},
12224 	{0x4F, 0xc, 0},
12225 	{0x50, 0, 0},
12226 	{0x51, 0x70, 1},
12227 	{0x56, 0x7, 0},
12228 	{0x57, 0, 0},
12229 	{0x58, 0, 0},
12230 	{0x59, 0x88, 1},
12231 	{0x5A, 0, 0},
12232 	{0x5B, 0x1f, 0},
12233 	{0x5C, 0x20, 1},
12234 	{0x5D, 0x1, 0},
12235 	{0x5E, 0x30, 0},
12236 	{0x5F, 0x70, 0},
12237 	{0x60, 0, 0},
12238 	{0x61, 0, 0},
12239 	{0x62, 0x33, 1},
12240 	{0x63, 0xf, 1},
12241 	{0x64, 0xf, 1},
12242 	{0x65, 0, 0},
12243 	{0x66, 0x11, 0},
12244 	{0x80, 0x3c, 0},
12245 	{0x81, 0x1, 1},
12246 	{0x82, 0xa, 0},
12247 	{0x85, 0, 0},
12248 	{0x86, 0x40, 0},
12249 	{0x87, 0x40, 0},
12250 	{0x88, 0x88, 0},
12251 	{0x89, 0x10, 0},
12252 	{0x8A, 0xf0, 0},
12253 	{0x8B, 0x10, 0},
12254 	{0x8C, 0xf0, 0},
12255 	{0x8F, 0x10, 0},
12256 	{0x90, 0x55, 0},
12257 	{0x91, 0x3f, 1},
12258 	{0x92, 0x36, 1},
12259 	{0x93, 0, 0},
12260 	{0x94, 0, 0},
12261 	{0x95, 0, 0},
12262 	{0x96, 0x87, 0},
12263 	{0x97, 0x11, 0},
12264 	{0x98, 0, 0},
12265 	{0x99, 0x33, 0},
12266 	{0x9A, 0x88, 0},
12267 	{0xA1, 0x20, 1},
12268 	{0xA2, 0x3f, 0},
12269 	{0xA3, 0x44, 0},
12270 	{0xA4, 0x8c, 0},
12271 	{0xA5, 0x6c, 0},
12272 	{0xA6, 0x22, 0},
12273 	{0xA7, 0xbe, 0},
12274 	{0xA8, 0x55, 0},
12275 	{0xAA, 0xc, 0},
12276 	{0xAB, 0xaa, 0},
12277 	{0xAC, 0x2, 0},
12278 	{0xAD, 0, 0},
12279 	{0xAE, 0x10, 0},
12280 	{0xAF, 0x1, 0},
12281 	{0xB0, 0, 0},
12282 	{0xB1, 0, 0},
12283 	{0xB2, 0x80, 0},
12284 	{0xB3, 0x60, 0},
12285 	{0xB4, 0x44, 0},
12286 	{0xB5, 0x55, 0},
12287 	{0xB6, 0x1, 0},
12288 	{0xB7, 0x55, 0},
12289 	{0xB8, 0x1, 0},
12290 	{0xB9, 0x5, 0},
12291 	{0xBA, 0x55, 0},
12292 	{0xBB, 0x55, 0},
12293 	{0xC3, 0, 0},
12294 	{0xC4, 0, 0},
12295 	{0xC5, 0, 0},
12296 	{0xC6, 0, 0},
12297 	{0xC7, 0, 0},
12298 	{0xC8, 0, 0},
12299 	{0xC9, 0x1, 1},
12300 	{0xCA, 0, 0},
12301 	{0xCB, 0, 0},
12302 	{0xCD, 0, 0},
12303 	{0xCE, 0x5e, 0},
12304 	{0xCF, 0xc, 0},
12305 	{0xD0, 0xc, 0},
12306 	{0xD1, 0xc, 0},
12307 	{0xD2, 0, 0},
12308 	{0xD3, 0x2b, 0},
12309 	{0xD4, 0xc, 0},
12310 	{0xD5, 0, 0},
12311 	{0xD6, 0x70, 1},
12312 	{0xDB, 0x7, 0},
12313 	{0xDC, 0, 0},
12314 	{0xDD, 0, 0},
12315 	{0xDE, 0x88, 1},
12316 	{0xDF, 0, 0},
12317 	{0xE0, 0x1f, 0},
12318 	{0xE1, 0x20, 1},
12319 	{0xE2, 0x1, 0},
12320 	{0xE3, 0x30, 0},
12321 	{0xE4, 0x70, 0},
12322 	{0xE5, 0, 0},
12323 	{0xE6, 0, 0},
12324 	{0xE7, 0x33, 0},
12325 	{0xE8, 0xf, 1},
12326 	{0xE9, 0xf, 1},
12327 	{0xEA, 0, 0},
12328 	{0xEB, 0x11, 0},
12329 	{0x105, 0x3c, 0},
12330 	{0x106, 0x1, 1},
12331 	{0x107, 0xa, 0},
12332 	{0x10A, 0, 0},
12333 	{0x10B, 0x40, 0},
12334 	{0x10C, 0x40, 0},
12335 	{0x10D, 0x88, 0},
12336 	{0x10E, 0x10, 0},
12337 	{0x10F, 0xf0, 0},
12338 	{0x110, 0x10, 0},
12339 	{0x111, 0xf0, 0},
12340 	{0x114, 0x10, 0},
12341 	{0x115, 0x55, 0},
12342 	{0x116, 0x3f, 1},
12343 	{0x117, 0x36, 1},
12344 	{0x118, 0, 0},
12345 	{0x119, 0, 0},
12346 	{0x11A, 0, 0},
12347 	{0x11B, 0x87, 0},
12348 	{0x11C, 0x11, 0},
12349 	{0x11D, 0, 0},
12350 	{0x11E, 0x33, 0},
12351 	{0x11F, 0x88, 0},
12352 	{0x126, 0x20, 1},
12353 	{0x127, 0x3f, 0},
12354 	{0x128, 0x44, 0},
12355 	{0x129, 0x8c, 0},
12356 	{0x12A, 0x6c, 0},
12357 	{0x12B, 0x22, 0},
12358 	{0x12C, 0xbe, 0},
12359 	{0x12D, 0x55, 0},
12360 	{0x12F, 0xc, 0},
12361 	{0x130, 0xaa, 0},
12362 	{0x131, 0x2, 0},
12363 	{0x132, 0, 0},
12364 	{0x133, 0x10, 0},
12365 	{0x134, 0x1, 0},
12366 	{0x135, 0, 0},
12367 	{0x136, 0, 0},
12368 	{0x137, 0x80, 0},
12369 	{0x138, 0x60, 0},
12370 	{0x139, 0x44, 0},
12371 	{0x13A, 0x55, 0},
12372 	{0x13B, 0x1, 0},
12373 	{0x13C, 0x55, 0},
12374 	{0x13D, 0x1, 0},
12375 	{0x13E, 0x5, 0},
12376 	{0x13F, 0x55, 0},
12377 	{0x140, 0x55, 0},
12378 	{0x148, 0, 0},
12379 	{0x149, 0, 0},
12380 	{0x14A, 0, 0},
12381 	{0x14B, 0, 0},
12382 	{0x14C, 0, 0},
12383 	{0x14D, 0, 0},
12384 	{0x14E, 0x1, 1},
12385 	{0x14F, 0, 0},
12386 	{0x150, 0, 0},
12387 	{0x154, 0xc, 0},
12388 	{0x155, 0xc, 0},
12389 	{0x156, 0xc, 0},
12390 	{0x157, 0, 0},
12391 	{0x158, 0x2b, 0},
12392 	{0x159, 0x84, 0},
12393 	{0x15A, 0x15, 0},
12394 	{0x15B, 0xf, 0},
12395 	{0x15C, 0, 0},
12396 	{0x15D, 0, 0},
12397 	{0x15E, 0, 1},
12398 	{0x15F, 0, 1},
12399 	{0x160, 0, 1},
12400 	{0x161, 0, 1},
12401 	{0x162, 0, 1},
12402 	{0x163, 0, 1},
12403 	{0x164, 0, 0},
12404 	{0x165, 0, 0},
12405 	{0x166, 0, 0},
12406 	{0x167, 0, 0},
12407 	{0x168, 0, 0},
12408 	{0x169, 0, 0},
12409 	{0x16A, 0, 1},
12410 	{0x16B, 0, 1},
12411 	{0x16C, 0, 1},
12412 	{0x16D, 0, 0},
12413 	{0x170, 0, 0},
12414 	{0x171, 0x77, 0},
12415 	{0x172, 0x77, 0},
12416 	{0x173, 0x77, 0},
12417 	{0x174, 0x77, 0},
12418 	{0x175, 0, 0},
12419 	{0x176, 0x3, 0},
12420 	{0x177, 0x37, 0},
12421 	{0x178, 0x3, 0},
12422 	{0x179, 0, 0},
12423 	{0x17B, 0x21, 0},
12424 	{0x17C, 0, 0},
12425 	{0x17D, 0xaa, 0},
12426 	{0x17E, 0, 0},
12427 	{0x190, 0, 0},
12428 	{0x191, 0x77, 0},
12429 	{0x192, 0x77, 0},
12430 	{0x193, 0x77, 0},
12431 	{0x194, 0x77, 0},
12432 	{0x195, 0, 0},
12433 	{0x196, 0x3, 0},
12434 	{0x197, 0x37, 0},
12435 	{0x198, 0x3, 0},
12436 	{0x199, 0, 0},
12437 	{0x19B, 0x21, 0},
12438 	{0x19C, 0, 0},
12439 	{0x19D, 0xaa, 0},
12440 	{0x19E, 0, 0},
12441 	{0x1A1, 0x2, 0},
12442 	{0x1A2, 0xf, 0},
12443 	{0x1A3, 0xf, 0},
12444 	{0x1A4, 0, 1},
12445 	{0x1A5, 0, 1},
12446 	{0x1A6, 0, 1},
12447 	{0x1A7, 0x2, 0},
12448 	{0x1A8, 0xf, 0},
12449 	{0x1A9, 0xf, 0},
12450 	{0x1AA, 0, 1},
12451 	{0x1AB, 0, 1},
12452 	{0x1AC, 0, 1},
12453 	{0x1AD, 0x84, 0},
12454 	{0x1AE, 0x60, 0},
12455 	{0x1AF, 0x47, 0},
12456 	{0x1B0, 0x47, 0},
12457 	{0x1B1, 0, 0},
12458 	{0x1B2, 0, 0},
12459 	{0x1B3, 0, 0},
12460 	{0x1B4, 0, 0},
12461 	{0x1B5, 0, 0},
12462 	{0x1B6, 0, 0},
12463 	{0x1B7, 0xc, 1},
12464 	{0x1B8, 0, 0},
12465 	{0x1B9, 0, 0},
12466 	{0x1BA, 0, 0},
12467 	{0x1BB, 0, 0},
12468 	{0x1BC, 0, 0},
12469 	{0x1BD, 0, 0},
12470 	{0x1BE, 0, 0},
12471 	{0x1BF, 0, 0},
12472 	{0x1C0, 0, 0},
12473 	{0x1C1, 0x1, 1},
12474 	{0x1C2, 0x80, 1},
12475 	{0x1C3, 0, 0},
12476 	{0x1C4, 0, 0},
12477 	{0x1C5, 0, 0},
12478 	{0x1C6, 0, 0},
12479 	{0x1C7, 0, 0},
12480 	{0x1C8, 0, 0},
12481 	{0x1C9, 0, 0},
12482 	{0x1CA, 0, 0},
12483 	{0xFFFF, 0, 0}
12484 };
12485 
12486 static struct radio_20xx_regs regs_2057_rev7[] = {
12487 	{0x00, 0, 1},
12488 	{0x01, 0x57, 1},
12489 	{0x02, 0x20, 1},
12490 	{0x03, 0x1f, 0},
12491 	{0x04, 0x4, 0},
12492 	{0x05, 0x2, 0},
12493 	{0x06, 0x1, 0},
12494 	{0x07, 0x1, 0},
12495 	{0x08, 0x1, 0},
12496 	{0x09, 0x69, 0},
12497 	{0x0A, 0x66, 0},
12498 	{0x0B, 0x6, 0},
12499 	{0x0C, 0x18, 0},
12500 	{0x0D, 0x3, 0},
12501 	{0x0E, 0x20, 0},
12502 	{0x0F, 0x20, 0},
12503 	{0x10, 0, 0},
12504 	{0x11, 0x7c, 0},
12505 	{0x12, 0x42, 0},
12506 	{0x13, 0xbd, 0},
12507 	{0x14, 0x7, 0},
12508 	{0x15, 0x87, 0},
12509 	{0x16, 0x8, 0},
12510 	{0x17, 0x17, 0},
12511 	{0x18, 0x7, 0},
12512 	{0x19, 0, 0},
12513 	{0x1A, 0x2, 0},
12514 	{0x1B, 0x13, 0},
12515 	{0x1C, 0x3e, 0},
12516 	{0x1D, 0x3e, 0},
12517 	{0x1E, 0x96, 0},
12518 	{0x1F, 0x4, 0},
12519 	{0x20, 0, 0},
12520 	{0x21, 0, 0},
12521 	{0x22, 0x17, 0},
12522 	{0x23, 0x6, 0},
12523 	{0x24, 0x1, 0},
12524 	{0x25, 0x6, 0},
12525 	{0x26, 0x4, 0},
12526 	{0x27, 0xd, 0},
12527 	{0x28, 0xd, 0},
12528 	{0x29, 0x30, 0},
12529 	{0x2A, 0x32, 0},
12530 	{0x2B, 0x8, 0},
12531 	{0x2C, 0x1c, 0},
12532 	{0x2D, 0x2, 0},
12533 	{0x2E, 0x4, 0},
12534 	{0x2F, 0x7f, 0},
12535 	{0x30, 0x27, 0},
12536 	{0x31, 0, 1},
12537 	{0x32, 0, 1},
12538 	{0x33, 0, 1},
12539 	{0x34, 0, 0},
12540 	{0x35, 0x20, 0},
12541 	{0x36, 0x18, 0},
12542 	{0x37, 0x7, 0},
12543 	{0x38, 0x66, 0},
12544 	{0x39, 0x66, 0},
12545 	{0x3A, 0x66, 0},
12546 	{0x3B, 0x66, 0},
12547 	{0x3C, 0xff, 0},
12548 	{0x3D, 0xff, 0},
12549 	{0x3E, 0xff, 0},
12550 	{0x3F, 0xff, 0},
12551 	{0x40, 0x16, 0},
12552 	{0x41, 0x7, 0},
12553 	{0x42, 0x19, 0},
12554 	{0x43, 0x7, 0},
12555 	{0x44, 0x6, 0},
12556 	{0x45, 0x3, 0},
12557 	{0x46, 0x1, 0},
12558 	{0x47, 0x7, 0},
12559 	{0x48, 0x33, 0},
12560 	{0x49, 0x5, 0},
12561 	{0x4A, 0x77, 0},
12562 	{0x4B, 0x66, 0},
12563 	{0x4C, 0x66, 0},
12564 	{0x4D, 0, 0},
12565 	{0x4E, 0x4, 0},
12566 	{0x4F, 0xc, 0},
12567 	{0x50, 0, 0},
12568 	{0x51, 0x70, 1},
12569 	{0x56, 0x7, 0},
12570 	{0x57, 0, 0},
12571 	{0x58, 0, 0},
12572 	{0x59, 0x88, 1},
12573 	{0x5A, 0, 0},
12574 	{0x5B, 0x1f, 0},
12575 	{0x5C, 0x20, 1},
12576 	{0x5D, 0x1, 0},
12577 	{0x5E, 0x30, 0},
12578 	{0x5F, 0x70, 0},
12579 	{0x60, 0, 0},
12580 	{0x61, 0, 0},
12581 	{0x62, 0x33, 1},
12582 	{0x63, 0xf, 1},
12583 	{0x64, 0x13, 1},
12584 	{0x65, 0, 0},
12585 	{0x66, 0xee, 1},
12586 	{0x69, 0, 0},
12587 	{0x6A, 0x7e, 0},
12588 	{0x6B, 0x3f, 0},
12589 	{0x6C, 0x7f, 0},
12590 	{0x6D, 0x78, 0},
12591 	{0x6E, 0x58, 1},
12592 	{0x6F, 0x88, 0},
12593 	{0x70, 0x8, 0},
12594 	{0x71, 0xf, 0},
12595 	{0x72, 0xbc, 0},
12596 	{0x73, 0x8, 0},
12597 	{0x74, 0x60, 0},
12598 	{0x75, 0x13, 1},
12599 	{0x76, 0x70, 0},
12600 	{0x77, 0, 0},
12601 	{0x78, 0, 0},
12602 	{0x79, 0, 0},
12603 	{0x7A, 0x33, 0},
12604 	{0x7B, 0x13, 1},
12605 	{0x7C, 0x14, 1},
12606 	{0x7D, 0xee, 1},
12607 	{0x80, 0x3c, 0},
12608 	{0x81, 0x1, 1},
12609 	{0x82, 0xa, 0},
12610 	{0x83, 0x9d, 0},
12611 	{0x84, 0xa, 0},
12612 	{0x85, 0, 0},
12613 	{0x86, 0x40, 0},
12614 	{0x87, 0x40, 0},
12615 	{0x88, 0x88, 0},
12616 	{0x89, 0x10, 0},
12617 	{0x8A, 0xf0, 0},
12618 	{0x8B, 0x10, 0},
12619 	{0x8C, 0xf0, 0},
12620 	{0x8D, 0, 0},
12621 	{0x8E, 0, 0},
12622 	{0x8F, 0x10, 0},
12623 	{0x90, 0x55, 0},
12624 	{0x91, 0x3f, 1},
12625 	{0x92, 0x36, 1},
12626 	{0x93, 0, 0},
12627 	{0x94, 0, 0},
12628 	{0x95, 0, 0},
12629 	{0x96, 0x87, 0},
12630 	{0x97, 0x11, 0},
12631 	{0x98, 0, 0},
12632 	{0x99, 0x33, 0},
12633 	{0x9A, 0x88, 0},
12634 	{0x9B, 0, 0},
12635 	{0x9C, 0x87, 0},
12636 	{0x9D, 0x11, 0},
12637 	{0x9E, 0, 0},
12638 	{0x9F, 0x33, 0},
12639 	{0xA0, 0x88, 0},
12640 	{0xA1, 0x20, 1},
12641 	{0xA2, 0x3f, 0},
12642 	{0xA3, 0x44, 0},
12643 	{0xA4, 0x8c, 0},
12644 	{0xA5, 0x6c, 0},
12645 	{0xA6, 0x22, 0},
12646 	{0xA7, 0xbe, 0},
12647 	{0xA8, 0x55, 0},
12648 	{0xAA, 0xc, 0},
12649 	{0xAB, 0xaa, 0},
12650 	{0xAC, 0x2, 0},
12651 	{0xAD, 0, 0},
12652 	{0xAE, 0x10, 0},
12653 	{0xAF, 0x1, 0},
12654 	{0xB0, 0, 0},
12655 	{0xB1, 0, 0},
12656 	{0xB2, 0x80, 0},
12657 	{0xB3, 0x60, 0},
12658 	{0xB4, 0x44, 0},
12659 	{0xB5, 0x55, 0},
12660 	{0xB6, 0x1, 0},
12661 	{0xB7, 0x55, 0},
12662 	{0xB8, 0x1, 0},
12663 	{0xB9, 0x5, 0},
12664 	{0xBA, 0x55, 0},
12665 	{0xBB, 0x55, 0},
12666 	{0xC1, 0, 0},
12667 	{0xC2, 0, 0},
12668 	{0xC3, 0, 0},
12669 	{0xC4, 0, 0},
12670 	{0xC5, 0, 0},
12671 	{0xC6, 0, 0},
12672 	{0xC7, 0, 0},
12673 	{0xC8, 0, 0},
12674 	{0xC9, 0, 0},
12675 	{0xCA, 0, 0},
12676 	{0xCB, 0, 0},
12677 	{0xCC, 0, 0},
12678 	{0xCD, 0, 0},
12679 	{0xCE, 0x5e, 0},
12680 	{0xCF, 0xc, 0},
12681 	{0xD0, 0xc, 0},
12682 	{0xD1, 0xc, 0},
12683 	{0xD2, 0, 0},
12684 	{0xD3, 0x2b, 0},
12685 	{0xD4, 0xc, 0},
12686 	{0xD5, 0, 0},
12687 	{0xD6, 0x70, 1},
12688 	{0xDB, 0x7, 0},
12689 	{0xDC, 0, 0},
12690 	{0xDD, 0, 0},
12691 	{0xDE, 0x88, 1},
12692 	{0xDF, 0, 0},
12693 	{0xE0, 0x1f, 0},
12694 	{0xE1, 0x20, 1},
12695 	{0xE2, 0x1, 0},
12696 	{0xE3, 0x30, 0},
12697 	{0xE4, 0x70, 0},
12698 	{0xE5, 0, 0},
12699 	{0xE6, 0, 0},
12700 	{0xE7, 0x33, 0},
12701 	{0xE8, 0xf, 1},
12702 	{0xE9, 0x13, 1},
12703 	{0xEA, 0, 0},
12704 	{0xEB, 0xee, 1},
12705 	{0xEE, 0, 0},
12706 	{0xEF, 0x7e, 0},
12707 	{0xF0, 0x3f, 0},
12708 	{0xF1, 0x7f, 0},
12709 	{0xF2, 0x78, 0},
12710 	{0xF3, 0x58, 1},
12711 	{0xF4, 0x88, 0},
12712 	{0xF5, 0x8, 0},
12713 	{0xF6, 0xf, 0},
12714 	{0xF7, 0xbc, 0},
12715 	{0xF8, 0x8, 0},
12716 	{0xF9, 0x60, 0},
12717 	{0xFA, 0x13, 1},
12718 	{0xFB, 0x70, 0},
12719 	{0xFC, 0, 0},
12720 	{0xFD, 0, 0},
12721 	{0xFE, 0, 0},
12722 	{0xFF, 0x33, 0},
12723 	{0x100, 0x13, 1},
12724 	{0x101, 0x14, 1},
12725 	{0x102, 0xee, 1},
12726 	{0x105, 0x3c, 0},
12727 	{0x106, 0x1, 1},
12728 	{0x107, 0xa, 0},
12729 	{0x108, 0x9d, 0},
12730 	{0x109, 0xa, 0},
12731 	{0x10A, 0, 0},
12732 	{0x10B, 0x40, 0},
12733 	{0x10C, 0x40, 0},
12734 	{0x10D, 0x88, 0},
12735 	{0x10E, 0x10, 0},
12736 	{0x10F, 0xf0, 0},
12737 	{0x110, 0x10, 0},
12738 	{0x111, 0xf0, 0},
12739 	{0x112, 0, 0},
12740 	{0x113, 0, 0},
12741 	{0x114, 0x10, 0},
12742 	{0x115, 0x55, 0},
12743 	{0x116, 0x3f, 1},
12744 	{0x117, 0x36, 1},
12745 	{0x118, 0, 0},
12746 	{0x119, 0, 0},
12747 	{0x11A, 0, 0},
12748 	{0x11B, 0x87, 0},
12749 	{0x11C, 0x11, 0},
12750 	{0x11D, 0, 0},
12751 	{0x11E, 0x33, 0},
12752 	{0x11F, 0x88, 0},
12753 	{0x120, 0, 0},
12754 	{0x121, 0x87, 0},
12755 	{0x122, 0x11, 0},
12756 	{0x123, 0, 0},
12757 	{0x124, 0x33, 0},
12758 	{0x125, 0x88, 0},
12759 	{0x126, 0x20, 1},
12760 	{0x127, 0x3f, 0},
12761 	{0x128, 0x44, 0},
12762 	{0x129, 0x8c, 0},
12763 	{0x12A, 0x6c, 0},
12764 	{0x12B, 0x22, 0},
12765 	{0x12C, 0xbe, 0},
12766 	{0x12D, 0x55, 0},
12767 	{0x12F, 0xc, 0},
12768 	{0x130, 0xaa, 0},
12769 	{0x131, 0x2, 0},
12770 	{0x132, 0, 0},
12771 	{0x133, 0x10, 0},
12772 	{0x134, 0x1, 0},
12773 	{0x135, 0, 0},
12774 	{0x136, 0, 0},
12775 	{0x137, 0x80, 0},
12776 	{0x138, 0x60, 0},
12777 	{0x139, 0x44, 0},
12778 	{0x13A, 0x55, 0},
12779 	{0x13B, 0x1, 0},
12780 	{0x13C, 0x55, 0},
12781 	{0x13D, 0x1, 0},
12782 	{0x13E, 0x5, 0},
12783 	{0x13F, 0x55, 0},
12784 	{0x140, 0x55, 0},
12785 	{0x146, 0, 0},
12786 	{0x147, 0, 0},
12787 	{0x148, 0, 0},
12788 	{0x149, 0, 0},
12789 	{0x14A, 0, 0},
12790 	{0x14B, 0, 0},
12791 	{0x14C, 0, 0},
12792 	{0x14D, 0, 0},
12793 	{0x14E, 0, 0},
12794 	{0x14F, 0, 0},
12795 	{0x150, 0, 0},
12796 	{0x151, 0, 0},
12797 	{0x154, 0xc, 0},
12798 	{0x155, 0xc, 0},
12799 	{0x156, 0xc, 0},
12800 	{0x157, 0, 0},
12801 	{0x158, 0x2b, 0},
12802 	{0x159, 0x84, 0},
12803 	{0x15A, 0x15, 0},
12804 	{0x15B, 0xf, 0},
12805 	{0x15C, 0, 0},
12806 	{0x15D, 0, 0},
12807 	{0x15E, 0, 1},
12808 	{0x15F, 0, 1},
12809 	{0x160, 0, 1},
12810 	{0x161, 0, 1},
12811 	{0x162, 0, 1},
12812 	{0x163, 0, 1},
12813 	{0x164, 0, 0},
12814 	{0x165, 0, 0},
12815 	{0x166, 0, 0},
12816 	{0x167, 0, 0},
12817 	{0x168, 0, 0},
12818 	{0x169, 0, 0},
12819 	{0x16A, 0, 1},
12820 	{0x16B, 0, 1},
12821 	{0x16C, 0, 1},
12822 	{0x16D, 0, 0},
12823 	{0x170, 0, 0},
12824 	{0x171, 0x77, 0},
12825 	{0x172, 0x77, 0},
12826 	{0x173, 0x77, 0},
12827 	{0x174, 0x77, 0},
12828 	{0x175, 0, 0},
12829 	{0x176, 0x3, 0},
12830 	{0x177, 0x37, 0},
12831 	{0x178, 0x3, 0},
12832 	{0x179, 0, 0},
12833 	{0x17A, 0x21, 0},
12834 	{0x17B, 0x21, 0},
12835 	{0x17C, 0, 0},
12836 	{0x17D, 0xaa, 0},
12837 	{0x17E, 0, 0},
12838 	{0x17F, 0xaa, 0},
12839 	{0x180, 0, 0},
12840 	{0x190, 0, 0},
12841 	{0x191, 0x77, 0},
12842 	{0x192, 0x77, 0},
12843 	{0x193, 0x77, 0},
12844 	{0x194, 0x77, 0},
12845 	{0x195, 0, 0},
12846 	{0x196, 0x3, 0},
12847 	{0x197, 0x37, 0},
12848 	{0x198, 0x3, 0},
12849 	{0x199, 0, 0},
12850 	{0x19A, 0x21, 0},
12851 	{0x19B, 0x21, 0},
12852 	{0x19C, 0, 0},
12853 	{0x19D, 0xaa, 0},
12854 	{0x19E, 0, 0},
12855 	{0x19F, 0xaa, 0},
12856 	{0x1A0, 0, 0},
12857 	{0x1A1, 0x2, 0},
12858 	{0x1A2, 0xf, 0},
12859 	{0x1A3, 0xf, 0},
12860 	{0x1A4, 0, 1},
12861 	{0x1A5, 0, 1},
12862 	{0x1A6, 0, 1},
12863 	{0x1A7, 0x2, 0},
12864 	{0x1A8, 0xf, 0},
12865 	{0x1A9, 0xf, 0},
12866 	{0x1AA, 0, 1},
12867 	{0x1AB, 0, 1},
12868 	{0x1AC, 0, 1},
12869 	{0x1AD, 0x84, 0},
12870 	{0x1AE, 0x60, 0},
12871 	{0x1AF, 0x47, 0},
12872 	{0x1B0, 0x47, 0},
12873 	{0x1B1, 0, 0},
12874 	{0x1B2, 0, 0},
12875 	{0x1B3, 0, 0},
12876 	{0x1B4, 0, 0},
12877 	{0x1B5, 0, 0},
12878 	{0x1B6, 0, 0},
12879 	{0x1B7, 0x5, 1},
12880 	{0x1B8, 0, 0},
12881 	{0x1B9, 0, 0},
12882 	{0x1BA, 0, 0},
12883 	{0x1BB, 0, 0},
12884 	{0x1BC, 0, 0},
12885 	{0x1BD, 0, 0},
12886 	{0x1BE, 0, 0},
12887 	{0x1BF, 0, 0},
12888 	{0x1C0, 0, 0},
12889 	{0x1C1, 0, 0},
12890 	{0x1C2, 0xa0, 1},
12891 	{0x1C3, 0, 0},
12892 	{0x1C4, 0, 0},
12893 	{0x1C5, 0, 0},
12894 	{0x1C6, 0, 0},
12895 	{0x1C7, 0, 0},
12896 	{0x1C8, 0, 0},
12897 	{0x1C9, 0, 0},
12898 	{0x1CA, 0, 0},
12899 	{0xFFFF, 0, 0}
12900 };
12901 
12902 static struct radio_20xx_regs regs_2057_rev8[] = {
12903 	{0x00, 0x8, 1},
12904 	{0x01, 0x57, 1},
12905 	{0x02, 0x20, 1},
12906 	{0x03, 0x1f, 0},
12907 	{0x04, 0x4, 0},
12908 	{0x05, 0x2, 0},
12909 	{0x06, 0x1, 0},
12910 	{0x07, 0x1, 0},
12911 	{0x08, 0x1, 0},
12912 	{0x09, 0x69, 0},
12913 	{0x0A, 0x66, 0},
12914 	{0x0B, 0x6, 0},
12915 	{0x0C, 0x18, 0},
12916 	{0x0D, 0x3, 0},
12917 	{0x0E, 0x20, 0},
12918 	{0x0F, 0x20, 0},
12919 	{0x10, 0, 0},
12920 	{0x11, 0x7c, 0},
12921 	{0x12, 0x42, 0},
12922 	{0x13, 0xbd, 0},
12923 	{0x14, 0x7, 0},
12924 	{0x15, 0x87, 0},
12925 	{0x16, 0x8, 0},
12926 	{0x17, 0x17, 0},
12927 	{0x18, 0x7, 0},
12928 	{0x19, 0, 0},
12929 	{0x1A, 0x2, 0},
12930 	{0x1B, 0x13, 0},
12931 	{0x1C, 0x3e, 0},
12932 	{0x1D, 0x3e, 0},
12933 	{0x1E, 0x96, 0},
12934 	{0x1F, 0x4, 0},
12935 	{0x20, 0, 0},
12936 	{0x21, 0, 0},
12937 	{0x22, 0x17, 0},
12938 	{0x23, 0x6, 0},
12939 	{0x24, 0x1, 0},
12940 	{0x25, 0x6, 0},
12941 	{0x26, 0x4, 0},
12942 	{0x27, 0xd, 0},
12943 	{0x28, 0xd, 0},
12944 	{0x29, 0x30, 0},
12945 	{0x2A, 0x32, 0},
12946 	{0x2B, 0x8, 0},
12947 	{0x2C, 0x1c, 0},
12948 	{0x2D, 0x2, 0},
12949 	{0x2E, 0x4, 0},
12950 	{0x2F, 0x7f, 0},
12951 	{0x30, 0x27, 0},
12952 	{0x31, 0, 1},
12953 	{0x32, 0, 1},
12954 	{0x33, 0, 1},
12955 	{0x34, 0, 0},
12956 	{0x35, 0x20, 0},
12957 	{0x36, 0x18, 0},
12958 	{0x37, 0x7, 0},
12959 	{0x38, 0x66, 0},
12960 	{0x39, 0x66, 0},
12961 	{0x3A, 0x66, 0},
12962 	{0x3B, 0x66, 0},
12963 	{0x3C, 0xff, 0},
12964 	{0x3D, 0xff, 0},
12965 	{0x3E, 0xff, 0},
12966 	{0x3F, 0xff, 0},
12967 	{0x40, 0x16, 0},
12968 	{0x41, 0x7, 0},
12969 	{0x42, 0x19, 0},
12970 	{0x43, 0x7, 0},
12971 	{0x44, 0x6, 0},
12972 	{0x45, 0x3, 0},
12973 	{0x46, 0x1, 0},
12974 	{0x47, 0x7, 0},
12975 	{0x48, 0x33, 0},
12976 	{0x49, 0x5, 0},
12977 	{0x4A, 0x77, 0},
12978 	{0x4B, 0x66, 0},
12979 	{0x4C, 0x66, 0},
12980 	{0x4D, 0, 0},
12981 	{0x4E, 0x4, 0},
12982 	{0x4F, 0xc, 0},
12983 	{0x50, 0, 0},
12984 	{0x51, 0x70, 1},
12985 	{0x56, 0x7, 0},
12986 	{0x57, 0, 0},
12987 	{0x58, 0, 0},
12988 	{0x59, 0x88, 1},
12989 	{0x5A, 0, 0},
12990 	{0x5B, 0x1f, 0},
12991 	{0x5C, 0x20, 1},
12992 	{0x5D, 0x1, 0},
12993 	{0x5E, 0x30, 0},
12994 	{0x5F, 0x70, 0},
12995 	{0x60, 0, 0},
12996 	{0x61, 0, 0},
12997 	{0x62, 0x33, 1},
12998 	{0x63, 0xf, 1},
12999 	{0x64, 0xf, 1},
13000 	{0x65, 0, 0},
13001 	{0x66, 0x11, 0},
13002 	{0x69, 0, 0},
13003 	{0x6A, 0x7e, 0},
13004 	{0x6B, 0x3f, 0},
13005 	{0x6C, 0x7f, 0},
13006 	{0x6D, 0x78, 0},
13007 	{0x6E, 0x58, 1},
13008 	{0x6F, 0x88, 0},
13009 	{0x70, 0x8, 0},
13010 	{0x71, 0xf, 0},
13011 	{0x72, 0xbc, 0},
13012 	{0x73, 0x8, 0},
13013 	{0x74, 0x60, 0},
13014 	{0x75, 0x13, 1},
13015 	{0x76, 0x70, 0},
13016 	{0x77, 0, 0},
13017 	{0x78, 0, 0},
13018 	{0x79, 0, 0},
13019 	{0x7A, 0x33, 0},
13020 	{0x7B, 0x13, 1},
13021 	{0x7C, 0xf, 1},
13022 	{0x7D, 0xee, 1},
13023 	{0x80, 0x3c, 0},
13024 	{0x81, 0x1, 1},
13025 	{0x82, 0xa, 0},
13026 	{0x83, 0x9d, 0},
13027 	{0x84, 0xa, 0},
13028 	{0x85, 0, 0},
13029 	{0x86, 0x40, 0},
13030 	{0x87, 0x40, 0},
13031 	{0x88, 0x88, 0},
13032 	{0x89, 0x10, 0},
13033 	{0x8A, 0xf0, 0},
13034 	{0x8B, 0x10, 0},
13035 	{0x8C, 0xf0, 0},
13036 	{0x8D, 0, 0},
13037 	{0x8E, 0, 0},
13038 	{0x8F, 0x10, 0},
13039 	{0x90, 0x55, 0},
13040 	{0x91, 0x3f, 1},
13041 	{0x92, 0x36, 1},
13042 	{0x93, 0, 0},
13043 	{0x94, 0, 0},
13044 	{0x95, 0, 0},
13045 	{0x96, 0x87, 0},
13046 	{0x97, 0x11, 0},
13047 	{0x98, 0, 0},
13048 	{0x99, 0x33, 0},
13049 	{0x9A, 0x88, 0},
13050 	{0x9B, 0, 0},
13051 	{0x9C, 0x87, 0},
13052 	{0x9D, 0x11, 0},
13053 	{0x9E, 0, 0},
13054 	{0x9F, 0x33, 0},
13055 	{0xA0, 0x88, 0},
13056 	{0xA1, 0x20, 1},
13057 	{0xA2, 0x3f, 0},
13058 	{0xA3, 0x44, 0},
13059 	{0xA4, 0x8c, 0},
13060 	{0xA5, 0x6c, 0},
13061 	{0xA6, 0x22, 0},
13062 	{0xA7, 0xbe, 0},
13063 	{0xA8, 0x55, 0},
13064 	{0xAA, 0xc, 0},
13065 	{0xAB, 0xaa, 0},
13066 	{0xAC, 0x2, 0},
13067 	{0xAD, 0, 0},
13068 	{0xAE, 0x10, 0},
13069 	{0xAF, 0x1, 0},
13070 	{0xB0, 0, 0},
13071 	{0xB1, 0, 0},
13072 	{0xB2, 0x80, 0},
13073 	{0xB3, 0x60, 0},
13074 	{0xB4, 0x44, 0},
13075 	{0xB5, 0x55, 0},
13076 	{0xB6, 0x1, 0},
13077 	{0xB7, 0x55, 0},
13078 	{0xB8, 0x1, 0},
13079 	{0xB9, 0x5, 0},
13080 	{0xBA, 0x55, 0},
13081 	{0xBB, 0x55, 0},
13082 	{0xC1, 0, 0},
13083 	{0xC2, 0, 0},
13084 	{0xC3, 0, 0},
13085 	{0xC4, 0, 0},
13086 	{0xC5, 0, 0},
13087 	{0xC6, 0, 0},
13088 	{0xC7, 0, 0},
13089 	{0xC8, 0, 0},
13090 	{0xC9, 0x1, 1},
13091 	{0xCA, 0, 0},
13092 	{0xCB, 0, 0},
13093 	{0xCC, 0, 0},
13094 	{0xCD, 0, 0},
13095 	{0xCE, 0x5e, 0},
13096 	{0xCF, 0xc, 0},
13097 	{0xD0, 0xc, 0},
13098 	{0xD1, 0xc, 0},
13099 	{0xD2, 0, 0},
13100 	{0xD3, 0x2b, 0},
13101 	{0xD4, 0xc, 0},
13102 	{0xD5, 0, 0},
13103 	{0xD6, 0x70, 1},
13104 	{0xDB, 0x7, 0},
13105 	{0xDC, 0, 0},
13106 	{0xDD, 0, 0},
13107 	{0xDE, 0x88, 1},
13108 	{0xDF, 0, 0},
13109 	{0xE0, 0x1f, 0},
13110 	{0xE1, 0x20, 1},
13111 	{0xE2, 0x1, 0},
13112 	{0xE3, 0x30, 0},
13113 	{0xE4, 0x70, 0},
13114 	{0xE5, 0, 0},
13115 	{0xE6, 0, 0},
13116 	{0xE7, 0x33, 0},
13117 	{0xE8, 0xf, 1},
13118 	{0xE9, 0xf, 1},
13119 	{0xEA, 0, 0},
13120 	{0xEB, 0x11, 0},
13121 	{0xEE, 0, 0},
13122 	{0xEF, 0x7e, 0},
13123 	{0xF0, 0x3f, 0},
13124 	{0xF1, 0x7f, 0},
13125 	{0xF2, 0x78, 0},
13126 	{0xF3, 0x58, 1},
13127 	{0xF4, 0x88, 0},
13128 	{0xF5, 0x8, 0},
13129 	{0xF6, 0xf, 0},
13130 	{0xF7, 0xbc, 0},
13131 	{0xF8, 0x8, 0},
13132 	{0xF9, 0x60, 0},
13133 	{0xFA, 0x13, 1},
13134 	{0xFB, 0x70, 0},
13135 	{0xFC, 0, 0},
13136 	{0xFD, 0, 0},
13137 	{0xFE, 0, 0},
13138 	{0xFF, 0x33, 0},
13139 	{0x100, 0x13, 1},
13140 	{0x101, 0xf, 1},
13141 	{0x102, 0xee, 1},
13142 	{0x105, 0x3c, 0},
13143 	{0x106, 0x1, 1},
13144 	{0x107, 0xa, 0},
13145 	{0x108, 0x9d, 0},
13146 	{0x109, 0xa, 0},
13147 	{0x10A, 0, 0},
13148 	{0x10B, 0x40, 0},
13149 	{0x10C, 0x40, 0},
13150 	{0x10D, 0x88, 0},
13151 	{0x10E, 0x10, 0},
13152 	{0x10F, 0xf0, 0},
13153 	{0x110, 0x10, 0},
13154 	{0x111, 0xf0, 0},
13155 	{0x112, 0, 0},
13156 	{0x113, 0, 0},
13157 	{0x114, 0x10, 0},
13158 	{0x115, 0x55, 0},
13159 	{0x116, 0x3f, 1},
13160 	{0x117, 0x36, 1},
13161 	{0x118, 0, 0},
13162 	{0x119, 0, 0},
13163 	{0x11A, 0, 0},
13164 	{0x11B, 0x87, 0},
13165 	{0x11C, 0x11, 0},
13166 	{0x11D, 0, 0},
13167 	{0x11E, 0x33, 0},
13168 	{0x11F, 0x88, 0},
13169 	{0x120, 0, 0},
13170 	{0x121, 0x87, 0},
13171 	{0x122, 0x11, 0},
13172 	{0x123, 0, 0},
13173 	{0x124, 0x33, 0},
13174 	{0x125, 0x88, 0},
13175 	{0x126, 0x20, 1},
13176 	{0x127, 0x3f, 0},
13177 	{0x128, 0x44, 0},
13178 	{0x129, 0x8c, 0},
13179 	{0x12A, 0x6c, 0},
13180 	{0x12B, 0x22, 0},
13181 	{0x12C, 0xbe, 0},
13182 	{0x12D, 0x55, 0},
13183 	{0x12F, 0xc, 0},
13184 	{0x130, 0xaa, 0},
13185 	{0x131, 0x2, 0},
13186 	{0x132, 0, 0},
13187 	{0x133, 0x10, 0},
13188 	{0x134, 0x1, 0},
13189 	{0x135, 0, 0},
13190 	{0x136, 0, 0},
13191 	{0x137, 0x80, 0},
13192 	{0x138, 0x60, 0},
13193 	{0x139, 0x44, 0},
13194 	{0x13A, 0x55, 0},
13195 	{0x13B, 0x1, 0},
13196 	{0x13C, 0x55, 0},
13197 	{0x13D, 0x1, 0},
13198 	{0x13E, 0x5, 0},
13199 	{0x13F, 0x55, 0},
13200 	{0x140, 0x55, 0},
13201 	{0x146, 0, 0},
13202 	{0x147, 0, 0},
13203 	{0x148, 0, 0},
13204 	{0x149, 0, 0},
13205 	{0x14A, 0, 0},
13206 	{0x14B, 0, 0},
13207 	{0x14C, 0, 0},
13208 	{0x14D, 0, 0},
13209 	{0x14E, 0x1, 1},
13210 	{0x14F, 0, 0},
13211 	{0x150, 0, 0},
13212 	{0x151, 0, 0},
13213 	{0x154, 0xc, 0},
13214 	{0x155, 0xc, 0},
13215 	{0x156, 0xc, 0},
13216 	{0x157, 0, 0},
13217 	{0x158, 0x2b, 0},
13218 	{0x159, 0x84, 0},
13219 	{0x15A, 0x15, 0},
13220 	{0x15B, 0xf, 0},
13221 	{0x15C, 0, 0},
13222 	{0x15D, 0, 0},
13223 	{0x15E, 0, 1},
13224 	{0x15F, 0, 1},
13225 	{0x160, 0, 1},
13226 	{0x161, 0, 1},
13227 	{0x162, 0, 1},
13228 	{0x163, 0, 1},
13229 	{0x164, 0, 0},
13230 	{0x165, 0, 0},
13231 	{0x166, 0, 0},
13232 	{0x167, 0, 0},
13233 	{0x168, 0, 0},
13234 	{0x169, 0, 0},
13235 	{0x16A, 0, 1},
13236 	{0x16B, 0, 1},
13237 	{0x16C, 0, 1},
13238 	{0x16D, 0, 0},
13239 	{0x170, 0, 0},
13240 	{0x171, 0x77, 0},
13241 	{0x172, 0x77, 0},
13242 	{0x173, 0x77, 0},
13243 	{0x174, 0x77, 0},
13244 	{0x175, 0, 0},
13245 	{0x176, 0x3, 0},
13246 	{0x177, 0x37, 0},
13247 	{0x178, 0x3, 0},
13248 	{0x179, 0, 0},
13249 	{0x17A, 0x21, 0},
13250 	{0x17B, 0x21, 0},
13251 	{0x17C, 0, 0},
13252 	{0x17D, 0xaa, 0},
13253 	{0x17E, 0, 0},
13254 	{0x17F, 0xaa, 0},
13255 	{0x180, 0, 0},
13256 	{0x190, 0, 0},
13257 	{0x191, 0x77, 0},
13258 	{0x192, 0x77, 0},
13259 	{0x193, 0x77, 0},
13260 	{0x194, 0x77, 0},
13261 	{0x195, 0, 0},
13262 	{0x196, 0x3, 0},
13263 	{0x197, 0x37, 0},
13264 	{0x198, 0x3, 0},
13265 	{0x199, 0, 0},
13266 	{0x19A, 0x21, 0},
13267 	{0x19B, 0x21, 0},
13268 	{0x19C, 0, 0},
13269 	{0x19D, 0xaa, 0},
13270 	{0x19E, 0, 0},
13271 	{0x19F, 0xaa, 0},
13272 	{0x1A0, 0, 0},
13273 	{0x1A1, 0x2, 0},
13274 	{0x1A2, 0xf, 0},
13275 	{0x1A3, 0xf, 0},
13276 	{0x1A4, 0, 1},
13277 	{0x1A5, 0, 1},
13278 	{0x1A6, 0, 1},
13279 	{0x1A7, 0x2, 0},
13280 	{0x1A8, 0xf, 0},
13281 	{0x1A9, 0xf, 0},
13282 	{0x1AA, 0, 1},
13283 	{0x1AB, 0, 1},
13284 	{0x1AC, 0, 1},
13285 	{0x1AD, 0x84, 0},
13286 	{0x1AE, 0x60, 0},
13287 	{0x1AF, 0x47, 0},
13288 	{0x1B0, 0x47, 0},
13289 	{0x1B1, 0, 0},
13290 	{0x1B2, 0, 0},
13291 	{0x1B3, 0, 0},
13292 	{0x1B4, 0, 0},
13293 	{0x1B5, 0, 0},
13294 	{0x1B6, 0, 0},
13295 	{0x1B7, 0x5, 1},
13296 	{0x1B8, 0, 0},
13297 	{0x1B9, 0, 0},
13298 	{0x1BA, 0, 0},
13299 	{0x1BB, 0, 0},
13300 	{0x1BC, 0, 0},
13301 	{0x1BD, 0, 0},
13302 	{0x1BE, 0, 0},
13303 	{0x1BF, 0, 0},
13304 	{0x1C0, 0, 0},
13305 	{0x1C1, 0, 0},
13306 	{0x1C2, 0xa0, 1},
13307 	{0x1C3, 0, 0},
13308 	{0x1C4, 0, 0},
13309 	{0x1C5, 0, 0},
13310 	{0x1C6, 0, 0},
13311 	{0x1C7, 0, 0},
13312 	{0x1C8, 0, 0},
13313 	{0x1C9, 0, 0},
13314 	{0x1CA, 0, 0},
13315 	{0xFFFF, 0, 0}
13316 };
13317 
13318 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13319 
13320 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13321 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13322 
13323 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13324 	{
13325 		{0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13326 		{0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13327 		{0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13328 		{0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13329 		{0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13330 		{0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13331 		{0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13332 		{0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13333 		{0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13334 	},
13335 	{
13336 		{0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13337 		{0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13338 		{0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13339 		{0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13340 		{0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13341 		{0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13342 		{0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13343 		{0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13344 		{0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13345 	}
13346 };
13347 
13348 static const u32 nphy_tpc_txgain[] = {
13349 	0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13350 	0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13351 	0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13352 	0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13353 	0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13354 	0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13355 	0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13356 	0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13357 	0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13358 	0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13359 	0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13360 	0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13361 	0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13362 	0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13363 	0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13364 	0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13365 	0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13366 	0x03902942, 0x03902844, 0x03902842, 0x03902744,
13367 	0x03902742, 0x03902644, 0x03902642, 0x03902544,
13368 	0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13369 	0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13370 	0x03802842, 0x03802744, 0x03802742, 0x03802644,
13371 	0x03802642, 0x03802544, 0x03802542, 0x03802444,
13372 	0x03802442, 0x03802344, 0x03802342, 0x03802244,
13373 	0x03802242, 0x03802144, 0x03802142, 0x03802044,
13374 	0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13375 	0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13376 	0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13377 	0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13378 	0x03801842, 0x03801744, 0x03801742, 0x03801644,
13379 	0x03801642, 0x03801544, 0x03801542, 0x03801444,
13380 	0x03801442, 0x03801344, 0x03801342, 0x00002b00
13381 };
13382 
13383 static const u16 nphy_tpc_loscale[] = {
13384 	256, 256, 271, 271, 287, 256, 256, 271,
13385 	271, 287, 287, 304, 304, 256, 256, 271,
13386 	271, 287, 287, 304, 304, 322, 322, 341,
13387 	341, 362, 362, 383, 383, 256, 256, 271,
13388 	271, 287, 287, 304, 304, 322, 322, 256,
13389 	256, 271, 271, 287, 287, 304, 304, 322,
13390 	322, 341, 341, 362, 362, 256, 256, 271,
13391 	271, 287, 287, 304, 304, 322, 322, 256,
13392 	256, 271, 271, 287, 287, 304, 304, 322,
13393 	322, 341, 341, 362, 362, 256, 256, 271,
13394 	271, 287, 287, 304, 304, 322, 322, 341,
13395 	341, 362, 362, 383, 383, 406, 406, 430,
13396 	430, 455, 455, 482, 482, 511, 511, 541,
13397 	541, 573, 573, 607, 607, 643, 643, 681,
13398 	681, 722, 722, 764, 764, 810, 810, 858,
13399 	858, 908, 908, 962, 962, 1019, 1019, 256
13400 };
13401 
13402 static u32 nphy_tpc_txgain_ipa[] = {
13403 	0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13404 	0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13405 	0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13406 	0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13407 	0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13408 	0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13409 	0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13410 	0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13411 	0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13412 	0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13413 	0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13414 	0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13415 	0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13416 	0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13417 	0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13418 	0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13419 	0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13420 	0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13421 	0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13422 	0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13423 	0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13424 	0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13425 	0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13426 	0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13427 	0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13428 	0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13429 	0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13430 	0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13431 	0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13432 	0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13433 	0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13434 	0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13435 };
13436 
13437 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13438 	0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13439 	0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13440 	0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13441 	0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13442 	0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13443 	0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13444 	0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13445 	0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13446 	0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13447 	0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13448 	0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13449 	0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13450 	0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13451 	0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13452 	0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13453 	0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13454 	0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13455 	0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13456 	0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13457 	0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13458 	0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13459 	0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13460 	0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13461 	0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13462 	0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13463 	0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13464 	0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13465 	0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13466 	0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13467 	0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13468 	0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13469 	0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13470 };
13471 
13472 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13473 	0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13474 	0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13475 	0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13476 	0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13477 	0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13478 	0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13479 	0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13480 	0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13481 	0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13482 	0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13483 	0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13484 	0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13485 	0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13486 	0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13487 	0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13488 	0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13489 	0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13490 	0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13491 	0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13492 	0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13493 	0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13494 	0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13495 	0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13496 	0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13497 	0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13498 	0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13499 	0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13500 	0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13501 	0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13502 	0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13503 	0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13504 	0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13505 };
13506 
13507 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13508 	0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13509 	0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13510 	0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13511 	0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13512 	0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13513 	0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13514 	0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13515 	0x70470028, 0x70470026, 0x70470024, 0x70470022,
13516 	0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13517 	0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13518 	0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13519 	0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13520 	0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13521 	0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13522 	0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13523 	0x70170019, 0x70170018, 0x70170016, 0x70170015,
13524 	0x70170014, 0x70170013, 0x70170012, 0x70170010,
13525 	0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13526 	0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13527 	0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13528 	0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13529 	0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13530 	0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13531 	0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13532 	0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13533 	0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13534 	0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13535 	0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13536 	0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13537 	0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13538 	0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13539 	0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13540 };
13541 
13542 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13543 	0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13544 	0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13545 	0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13546 	0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13547 	0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13548 	0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13549 	0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13550 	0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13551 	0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13552 	0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13553 	0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13554 	0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13555 	0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13556 	0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13557 	0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13558 	0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13559 	0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13560 	0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13561 	0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13562 	0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13563 	0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13564 	0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13565 	0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13566 	0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13567 	0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13568 	0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13569 	0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13570 	0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13571 	0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13572 	0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13573 	0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13574 	0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13575 };
13576 
13577 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13578 	0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13579 	0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13580 	0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13581 	0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13582 	0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13583 	0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13584 	0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13585 	0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13586 	0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13587 	0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13588 	0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13589 	0x30170028, 0x30170026, 0x30170024, 0x30170022,
13590 	0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13591 	0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13592 	0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13593 	0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13594 	0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13595 	0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13596 	0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13597 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13598 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13599 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13609 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13610 };
13611 
13612 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13613 	0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13614 	0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13615 	0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13616 	0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13617 	0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13618 	0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13619 	0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13620 	0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13621 	0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13622 	0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13623 	0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13624 	0x30170028, 0x30170026, 0x30170024, 0x30170022,
13625 	0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13626 	0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13627 	0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13628 	0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13629 	0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13630 	0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13631 	0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13632 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13633 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13634 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13635 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13636 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13637 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13638 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13639 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13640 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13641 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13642 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13643 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13644 	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13645 };
13646 
13647 static u32 nphy_tpc_txgain_ipa_5g[] = {
13648 	0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13649 	0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13650 	0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13651 	0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13652 	0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13653 	0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13654 	0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13655 	0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13656 	0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13657 	0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13658 	0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13659 	0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13660 	0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13661 	0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13662 	0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13663 	0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13664 	0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13665 	0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13666 	0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13667 	0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13668 	0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13669 	0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13670 	0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13671 	0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13672 	0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13673 	0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13674 	0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13675 	0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13676 	0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13677 	0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13678 	0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13679 	0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13680 };
13681 
13682 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13683 	0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13684 	0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13685 	0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13686 	0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13687 	0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13688 	0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13689 	0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13690 	0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13691 	0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13692 	0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13693 	0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13694 	0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13695 	0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13696 	0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13697 	0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13698 	0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13699 	0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13700 	0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13701 	0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13702 	0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13703 	0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13704 	0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13705 	0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13706 	0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13707 	0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13708 	0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13709 	0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13710 	0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13711 	0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13712 	0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13713 	0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13714 	0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13715 };
13716 
13717 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13718 	0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13719 	0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13720 	0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13721 	0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13722 	0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13723 	0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13724 	0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13725 	0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13726 	0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13727 	0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13728 	0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13729 	0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13730 	0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13731 	0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13732 	0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13733 	0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13734 	0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13735 	0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13736 	0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13737 	0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13738 	0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13739 	0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13740 	0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13741 	0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13742 	0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13743 	0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13744 	0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13745 	0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13746 	0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13747 	0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13748 	0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13749 	0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13750 };
13751 
13752 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13753 	-114, -108, -98, -91, -84, -78, -70, -62,
13754 	-54, -46, -39, -31, -23, -15, -8, 0
13755 };
13756 
13757 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13758 	-100, -95, -89, -83, -77, -70, -63, -56,
13759 	-48, -41, -33, -25, -19, -12, -6, 0
13760 };
13761 
13762 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13763 	-159, -113, -86, -72, -62, -54, -48, -43,
13764 	-39, -35, -31, -28, -25, -23, -20, -18,
13765 	-17, -15, -13, -11, -10, -8, -7, -6,
13766 	-5, -4, -3, -3, -2, -1, -1, 0
13767 };
13768 
13769 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13770 	-109, -109, -82, -68, -58, -50, -44, -39,
13771 	-35, -31, -28, -26, -23, -21, -19, -17,
13772 	-16, -14, -13, -11, -10, -9, -8, -7,
13773 	-5, -5, -4, -3, -2, -1, -1, 0
13774 };
13775 
13776 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13777 	-122, -122, -95, -80, -69, -61, -54, -49,
13778 	-43, -39, -35, -32, -28, -26, -23, -21,
13779 	-18, -16, -15, -13, -11, -10, -8, -7,
13780 	-6, -5, -4, -3, -2, -1, -1, 0
13781 };
13782 
13783 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13784 	-107, -101, -92, -85, -78, -71, -62, -55,
13785 	-47, -39, -32, -24, -19, -12, -6, 0
13786 };
13787 
13788 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13789 	-110, -104, -95, -88, -81, -74, -66, -58,
13790 	-50, -44, -36, -28, -23, -15, -8, 0
13791 };
13792 
13793 static u8 pad_gain_codes_used_2057rev5[] = {
13794 	20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13795 	10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13796 };
13797 
13798 static u8 pad_gain_codes_used_2057rev7[] = {
13799 	15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13800 	5, 4, 3, 2, 1
13801 };
13802 
13803 static u8 pad_all_gain_codes_2057[] = {
13804 	31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13805 	21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13806 	11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13807 	1, 0
13808 };
13809 
13810 static u8 pga_all_gain_codes_2057[] = {
13811 	15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13812 };
13813 
13814 static u32 nphy_papd_scaltbl[] = {
13815 	0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13816 	0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13817 	0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13818 	0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13819 	0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13820 	0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13821 	0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13822 	0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13823 	0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13824 	0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13825 	0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13826 	0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13827 	0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13828 	0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13829 	0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13830 	0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13831 };
13832 
13833 static u32 nphy_tpc_txgain_rev3[] = {
13834 	0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13835 	0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13836 	0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13837 	0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13838 	0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13839 	0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13840 	0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13841 	0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13842 	0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13843 	0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13844 	0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13845 	0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13846 	0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13847 	0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13848 	0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13849 	0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13850 	0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13851 	0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13852 	0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13853 	0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13854 	0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13855 	0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13856 	0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13857 	0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13858 	0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13859 	0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13860 	0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13861 	0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13862 	0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13863 	0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13864 	0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13865 	0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13866 };
13867 
13868 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13869 	0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13870 	0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13871 	0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13872 	0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13873 	0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13874 	0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13875 	0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13876 	0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13877 	0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13878 	0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13879 	0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13880 	0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13881 	0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13882 	0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13883 	0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13884 	0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13885 	0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13886 	0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13887 	0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13888 	0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13889 	0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13890 	0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13891 	0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13892 	0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13893 	0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13894 	0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13895 	0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13896 	0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13897 	0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13898 	0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13899 	0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13900 	0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13901 };
13902 
13903 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13904 	0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13905 	0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13906 	0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13907 	0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13908 	0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13909 	0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13910 	0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13911 	0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13912 	0x80290031, 0x80210039, 0x80210036, 0x80210033,
13913 	0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13914 	0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13915 	0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13916 	0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13917 	0x80110027, 0x80110024, 0x80110022, 0x80110020,
13918 	0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13919 	0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13920 	0x80090029, 0x80090027, 0x80090025, 0x80090023,
13921 	0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13922 	0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13923 	0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13924 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13925 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13926 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13927 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13928 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13929 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13930 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13931 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13932 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13933 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13934 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13935 	0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13936 };
13937 
13938 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13939 	0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13940 	0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13941 	0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13942 	0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13943 	0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13944 	0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13945 	0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13946 	0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13947 	0x10290031, 0x10210039, 0x10210036, 0x10210033,
13948 	0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13949 	0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13950 	0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13951 	0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13952 	0x10110027, 0x10110024, 0x10110022, 0x10110020,
13953 	0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13954 	0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13955 	0x10090029, 0x10090027, 0x10090025, 0x10090023,
13956 	0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13957 	0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13958 	0x10090015, 0x10090013, 0x10090012, 0x10090011,
13959 	0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13960 	0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13961 	0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13962 	0x10090008, 0x10090008, 0x10090007, 0x10090007,
13963 	0x10090007, 0x10090006, 0x10090006, 0x10090005,
13964 	0x10090005, 0x10090005, 0x10090005, 0x10090004,
13965 	0x10090004, 0x10090004, 0x10090004, 0x10090003,
13966 	0x10090003, 0x10090003, 0x10090003, 0x10090003,
13967 	0x10090003, 0x10090002, 0x10090002, 0x10090002,
13968 	0x10090002, 0x10090002, 0x10090002, 0x10090002,
13969 	0x10090002, 0x10090002, 0x10090001, 0x10090001,
13970 	0x10090001, 0x10090001, 0x10090001, 0x10090001
13971 };
13972 
13973 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13974 	0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13975 	0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13976 	0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13977 	0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13978 	0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13979 	0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13980 	0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13981 	0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13982 	0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13983 	0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13984 	0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13985 	0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13986 	0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13987 	0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13988 	0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13989 	0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13990 	0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13991 	0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13992 	0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13993 	0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13994 	0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13995 	0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13996 	0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13997 	0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13998 	0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13999 	0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
14000 	0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
14001 	0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
14002 	0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
14003 	0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
14004 	0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
14005 	0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
14006 };
14007 
14008 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
14009 	0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
14010 	0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
14011 	0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14012 	0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14013 	0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14014 	0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14015 	0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14016 	0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14017 	0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14018 	0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14019 	0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14020 	0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14021 	0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14022 	0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14023 	0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14024 	0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14025 	0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14026 	0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14027 	0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14028 	0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14029 	0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14030 	0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14031 	0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14032 	0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14033 	0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14034 	0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14035 	0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14036 	0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14037 	0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14038 	0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14039 	0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14040 	0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14041 };
14042 
14043 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14044 	0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14045 	0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14046 	0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14047 	0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14048 	0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14049 	0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14050 	0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14051 	0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14052 	0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14053 	0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14054 	0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14055 	0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14056 	0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14057 	0x09620039, 0x09620037, 0x09620035, 0x09620033,
14058 	0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14059 	0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14060 	0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14061 	0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14062 	0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14063 	0x06620039, 0x06620037, 0x06620035, 0x06620033,
14064 	0x05620046, 0x05620044, 0x05620042, 0x05620040,
14065 	0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14066 	0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14067 	0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14068 	0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14069 	0x03620038, 0x03620037, 0x03620035, 0x03620033,
14070 	0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14071 	0x02620046, 0x02620044, 0x02620043, 0x02620042,
14072 	0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14073 	0x01620043, 0x01620042, 0x01620041, 0x01620040,
14074 	0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14075 	0x0062003b, 0x00620039, 0x00620037, 0x00620035
14076 };
14077 
14078 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14079 	0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14080 	0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14081 	0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14082 	0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14083 	0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14084 	0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14085 	0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14086 	0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14087 	0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14088 	0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14089 	0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14090 	0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14091 	0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14092 	0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14093 	0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14094 	0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14095 	0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14096 	0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14097 	0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14098 	0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14099 	0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14100 	0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14101 	0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14102 	0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14103 	0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14104 	0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14105 	0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14106 	0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14107 	0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14108 	0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14109 	0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14110 	0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14111 };
14112 
14113 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14114 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14115 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14116 	0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14117 };
14118 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14119 	0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14120 };
14121 
14122 bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
14123 {
14124 	struct brcms_phy *pi = container_of(pih, struct brcms_phy, pubpi_ro);
14125 	u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14126 
14127 	if (NREV_GE(pi->pubpi.phy_rev, 16))
14128 		return true;
14129 
14130 	phybist0 = read_phy_reg(pi, 0x0e);
14131 	phybist1 = read_phy_reg(pi, 0x0f);
14132 	phybist2 = read_phy_reg(pi, 0xea);
14133 	phybist3 = read_phy_reg(pi, 0xeb);
14134 	phybist4 = read_phy_reg(pi, 0x156);
14135 
14136 	if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14137 	    (phybist3 == 0) && (phybist4 == 0))
14138 		return true;
14139 
14140 	return false;
14141 }
14142 
14143 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14144 {
14145 	u16 addr, val;
14146 
14147 	val = 0x1e1f;
14148 	for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14149 	     addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14150 		write_phy_reg(pi, addr, val);
14151 		if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14152 			val = 0x3e3f;
14153 		else
14154 			val -= 0x0202;
14155 	}
14156 
14157 	write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14158 }
14159 
14160 void
14161 wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14162 			 u32 width, const void *data)
14163 {
14164 	struct phytbl_info tbl;
14165 
14166 	tbl.tbl_id = id;
14167 	tbl.tbl_len = len;
14168 	tbl.tbl_offset = offset;
14169 	tbl.tbl_width = width;
14170 	tbl.tbl_ptr = data;
14171 	wlc_phy_write_table_nphy(pi, &tbl);
14172 }
14173 
14174 void
14175 wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14176 			u32 width, void *data)
14177 {
14178 	struct phytbl_info tbl;
14179 
14180 	tbl.tbl_id = id;
14181 	tbl.tbl_len = len;
14182 	tbl.tbl_offset = offset;
14183 	tbl.tbl_width = width;
14184 	tbl.tbl_ptr = data;
14185 	wlc_phy_read_table_nphy(pi, &tbl);
14186 }
14187 
14188 static void
14189 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14190 {
14191 	uint idx;
14192 
14193 	if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14194 		for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14195 			wlc_phy_write_table_nphy(pi,
14196 						 &mimophytbl_info_rev16[idx]);
14197 	} else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14198 		for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14199 			wlc_phy_write_table_nphy(pi,
14200 						 &mimophytbl_info_rev7[idx]);
14201 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14202 		for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14203 			wlc_phy_write_table_nphy(pi,
14204 						 &mimophytbl_info_rev3[idx]);
14205 	} else {
14206 		for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14207 			wlc_phy_write_table_nphy(pi,
14208 						 &mimophytbl_info_rev0[idx]);
14209 	}
14210 }
14211 
14212 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14213 {
14214 	uint idx = 0;
14215 	u8 antswctrllut;
14216 
14217 	if (pi->phy_init_por)
14218 		wlc_phy_static_table_download_nphy(pi);
14219 
14220 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14221 
14222 		antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14223 			       pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14224 			       antswctrllut;
14225 
14226 		switch (antswctrllut) {
14227 		case 0:
14228 
14229 			break;
14230 
14231 		case 1:
14232 
14233 			if (pi->aa2g == 7)
14234 				wlc_phy_table_write_nphy(
14235 					pi,
14236 					NPHY_TBL_ID_ANTSWCTRLLUT,
14237 					2, 0x21, 8,
14238 					&ant_sw_ctrl_tbl_rev8_2o3[0]);
14239 			else
14240 				wlc_phy_table_write_nphy(
14241 					pi,
14242 					NPHY_TBL_ID_ANTSWCTRLLUT,
14243 					2, 0x21, 8,
14244 					&ant_sw_ctrl_tbl_rev8
14245 					[0]);
14246 
14247 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14248 						 2, 0x25, 8,
14249 						 &ant_sw_ctrl_tbl_rev8[2]);
14250 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14251 						 2, 0x29, 8,
14252 						 &ant_sw_ctrl_tbl_rev8[4]);
14253 			break;
14254 
14255 		case 2:
14256 
14257 			wlc_phy_table_write_nphy(
14258 				pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14259 				2, 0x1, 8,
14260 				&ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14261 			wlc_phy_table_write_nphy(
14262 				pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14263 				2, 0x5, 8,
14264 				&ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14265 			wlc_phy_table_write_nphy(
14266 				pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14267 				2, 0x9, 8,
14268 				&ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14269 
14270 			wlc_phy_table_write_nphy(
14271 				pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14272 				2, 0x21, 8,
14273 				&ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14274 			wlc_phy_table_write_nphy(
14275 				pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14276 				2, 0x25, 8,
14277 				&ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14278 			wlc_phy_table_write_nphy(
14279 				pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14280 				2, 0x29, 8,
14281 				&ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14282 			break;
14283 
14284 		default:
14285 			break;
14286 		}
14287 
14288 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14289 		for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14290 
14291 			if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14292 				antswctrllut =
14293 					CHSPEC_IS2G(pi->radio_chanspec) ?
14294 					pi->srom_fem2g.antswctrllut :
14295 					pi->srom_fem5g.antswctrllut;
14296 				switch (antswctrllut) {
14297 				case 0:
14298 					wlc_phy_write_table_nphy(
14299 						pi,
14300 						&mimophytbl_info_rev3_volatile
14301 						[idx]);
14302 					break;
14303 				case 1:
14304 					wlc_phy_write_table_nphy(
14305 						pi,
14306 						&mimophytbl_info_rev3_volatile1
14307 						[idx]);
14308 					break;
14309 				case 2:
14310 					wlc_phy_write_table_nphy(
14311 						pi,
14312 						&mimophytbl_info_rev3_volatile2
14313 						[idx]);
14314 					break;
14315 				case 3:
14316 					wlc_phy_write_table_nphy(
14317 						pi,
14318 						&mimophytbl_info_rev3_volatile3
14319 						[idx]);
14320 					break;
14321 				default:
14322 					break;
14323 				}
14324 			} else {
14325 				wlc_phy_write_table_nphy(
14326 					pi,
14327 					&mimophytbl_info_rev3_volatile[idx]);
14328 			}
14329 		}
14330 	} else {
14331 		for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14332 			wlc_phy_write_table_nphy(pi,
14333 						 &mimophytbl_info_rev0_volatile
14334 						 [idx]);
14335 	}
14336 }
14337 
14338 static void
14339 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14340 {
14341 	write_phy_reg(pi, 0x77, holdoff);
14342 	write_phy_reg(pi, 0xb4, delay);
14343 }
14344 
14345 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
14346 {
14347 	u16 holdoff, delay;
14348 
14349 	if (rifs) {
14350 
14351 		holdoff = 0x10;
14352 		delay = 0x258;
14353 	} else {
14354 
14355 		holdoff = 0x15;
14356 		delay = 0x320;
14357 	}
14358 
14359 	wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14360 
14361 	if (pi->sh && (pi->sh->_rifs_phy != rifs))
14362 		pi->sh->_rifs_phy = rifs;
14363 }
14364 
14365 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14366 {
14367 
14368 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14369 		pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14370 		pi->phy_5g_pwrgain = true;
14371 		return;
14372 	}
14373 
14374 	pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14375 	pi->phy_5g_pwrgain = false;
14376 
14377 	if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14378 	    NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14379 		pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14380 	else if ((pi->sh->sromrev >= 4)
14381 		 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14382 		pi->phy_5g_pwrgain = true;
14383 }
14384 
14385 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
14386 {
14387 	u16 bw40po, cddpo, stbcpo, bwduppo;
14388 	uint band_num;
14389 	struct ssb_sprom *sprom = &pi->d11core->bus->sprom;
14390 
14391 	if (pi->sh->sromrev >= 9)
14392 		return;
14393 
14394 	bw40po = sprom->bw40po;
14395 	pi->bw402gpo = bw40po & 0xf;
14396 	pi->bw405gpo = (bw40po & 0xf0) >> 4;
14397 	pi->bw405glpo = (bw40po & 0xf00) >> 8;
14398 	pi->bw405ghpo = (bw40po & 0xf000) >> 12;
14399 
14400 	cddpo = sprom->cddpo;
14401 	pi->cdd2gpo = cddpo & 0xf;
14402 	pi->cdd5gpo = (cddpo & 0xf0) >> 4;
14403 	pi->cdd5glpo = (cddpo & 0xf00) >> 8;
14404 	pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
14405 
14406 	stbcpo = sprom->stbcpo;
14407 	pi->stbc2gpo = stbcpo & 0xf;
14408 	pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
14409 	pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
14410 	pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
14411 
14412 	bwduppo = sprom->bwduppo;
14413 	pi->bwdup2gpo = bwduppo & 0xf;
14414 	pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
14415 	pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
14416 	pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
14417 
14418 	for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
14419 	     band_num++) {
14420 		switch (band_num) {
14421 		case 0:
14422 			pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
14423 				sprom->core_pwr_info[0].maxpwr_2g;
14424 			pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
14425 				sprom->core_pwr_info[1].maxpwr_2g;
14426 			pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
14427 				sprom->core_pwr_info[0].pa_2g[0];
14428 			pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
14429 				sprom->core_pwr_info[1].pa_2g[0];
14430 			pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
14431 				sprom->core_pwr_info[0].pa_2g[1];
14432 			pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
14433 				sprom->core_pwr_info[1].pa_2g[1];
14434 			pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
14435 				sprom->core_pwr_info[0].pa_2g[2];
14436 			pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
14437 				sprom->core_pwr_info[1].pa_2g[2];
14438 			pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
14439 				sprom->core_pwr_info[0].itssi_2g;
14440 			pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
14441 				sprom->core_pwr_info[1].itssi_2g;
14442 
14443 			pi->cck2gpo = sprom->cck2gpo;
14444 
14445 			pi->ofdm2gpo = sprom->ofdm2gpo;
14446 
14447 			pi->mcs2gpo[0] = sprom->mcs2gpo[0];
14448 			pi->mcs2gpo[1] = sprom->mcs2gpo[1];
14449 			pi->mcs2gpo[2] = sprom->mcs2gpo[2];
14450 			pi->mcs2gpo[3] = sprom->mcs2gpo[3];
14451 			pi->mcs2gpo[4] = sprom->mcs2gpo[4];
14452 			pi->mcs2gpo[5] = sprom->mcs2gpo[5];
14453 			pi->mcs2gpo[6] = sprom->mcs2gpo[6];
14454 			pi->mcs2gpo[7] = sprom->mcs2gpo[7];
14455 			break;
14456 		case 1:
14457 
14458 			pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
14459 				sprom->core_pwr_info[0].maxpwr_5g;
14460 			pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
14461 				sprom->core_pwr_info[1].maxpwr_5g;
14462 			pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
14463 				sprom->core_pwr_info[0].pa_5g[0];
14464 			pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
14465 				sprom->core_pwr_info[1].pa_5g[0];
14466 			pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
14467 				sprom->core_pwr_info[0].pa_5g[1];
14468 			pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
14469 				sprom->core_pwr_info[1].pa_5g[1];
14470 			pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
14471 				sprom->core_pwr_info[0].pa_5g[2];
14472 			pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
14473 				sprom->core_pwr_info[1].pa_5g[2];
14474 			pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
14475 				sprom->core_pwr_info[0].itssi_5g;
14476 			pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
14477 				sprom->core_pwr_info[1].itssi_5g;
14478 
14479 			pi->ofdm5gpo = sprom->ofdm5gpo;
14480 
14481 			pi->mcs5gpo[0] = sprom->mcs5gpo[0];
14482 			pi->mcs5gpo[1] = sprom->mcs5gpo[1];
14483 			pi->mcs5gpo[2] = sprom->mcs5gpo[2];
14484 			pi->mcs5gpo[3] = sprom->mcs5gpo[3];
14485 			pi->mcs5gpo[4] = sprom->mcs5gpo[4];
14486 			pi->mcs5gpo[5] = sprom->mcs5gpo[5];
14487 			pi->mcs5gpo[6] = sprom->mcs5gpo[6];
14488 			pi->mcs5gpo[7] = sprom->mcs5gpo[7];
14489 			break;
14490 		case 2:
14491 
14492 			pi->nphy_pwrctrl_info[0].max_pwr_5gl =
14493 				sprom->core_pwr_info[0].maxpwr_5gl;
14494 			pi->nphy_pwrctrl_info[1].max_pwr_5gl =
14495 				sprom->core_pwr_info[1].maxpwr_5gl;
14496 			pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
14497 				sprom->core_pwr_info[0].pa_5gl[0];
14498 			pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
14499 				sprom->core_pwr_info[1].pa_5gl[0];
14500 			pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
14501 				sprom->core_pwr_info[0].pa_5gl[1];
14502 			pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
14503 				sprom->core_pwr_info[1].pa_5gl[1];
14504 			pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
14505 				sprom->core_pwr_info[0].pa_5gl[2];
14506 			pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
14507 				sprom->core_pwr_info[1].pa_5gl[2];
14508 			pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
14509 			pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
14510 
14511 			pi->ofdm5glpo = sprom->ofdm5glpo;
14512 
14513 			pi->mcs5glpo[0] = sprom->mcs5glpo[0];
14514 			pi->mcs5glpo[1] = sprom->mcs5glpo[1];
14515 			pi->mcs5glpo[2] = sprom->mcs5glpo[2];
14516 			pi->mcs5glpo[3] = sprom->mcs5glpo[3];
14517 			pi->mcs5glpo[4] = sprom->mcs5glpo[4];
14518 			pi->mcs5glpo[5] = sprom->mcs5glpo[5];
14519 			pi->mcs5glpo[6] = sprom->mcs5glpo[6];
14520 			pi->mcs5glpo[7] = sprom->mcs5glpo[7];
14521 			break;
14522 		case 3:
14523 
14524 			pi->nphy_pwrctrl_info[0].max_pwr_5gh =
14525 				sprom->core_pwr_info[0].maxpwr_5gh;
14526 			pi->nphy_pwrctrl_info[1].max_pwr_5gh =
14527 				sprom->core_pwr_info[1].maxpwr_5gh;
14528 			pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
14529 				sprom->core_pwr_info[0].pa_5gh[0];
14530 			pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
14531 				sprom->core_pwr_info[1].pa_5gh[0];
14532 			pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
14533 				sprom->core_pwr_info[0].pa_5gh[1];
14534 			pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
14535 				sprom->core_pwr_info[1].pa_5gh[1];
14536 			pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
14537 				sprom->core_pwr_info[0].pa_5gh[2];
14538 			pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
14539 				sprom->core_pwr_info[1].pa_5gh[2];
14540 			pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
14541 			pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
14542 
14543 			pi->ofdm5ghpo = sprom->ofdm5ghpo;
14544 
14545 			pi->mcs5ghpo[0] = sprom->mcs5ghpo[0];
14546 			pi->mcs5ghpo[1] = sprom->mcs5ghpo[1];
14547 			pi->mcs5ghpo[2] = sprom->mcs5ghpo[2];
14548 			pi->mcs5ghpo[3] = sprom->mcs5ghpo[3];
14549 			pi->mcs5ghpo[4] = sprom->mcs5ghpo[4];
14550 			pi->mcs5ghpo[5] = sprom->mcs5ghpo[5];
14551 			pi->mcs5ghpo[6] = sprom->mcs5ghpo[6];
14552 			pi->mcs5ghpo[7] = sprom->mcs5ghpo[7];
14553 			break;
14554 		}
14555 	}
14556 
14557 	wlc_phy_txpwr_apply_nphy(pi);
14558 }
14559 
14560 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
14561 {
14562 	struct ssb_sprom *sprom = &pi->d11core->bus->sprom;
14563 
14564 	pi->antswitch = sprom->antswitch;
14565 	pi->aa2g = sprom->ant_available_bg;
14566 	pi->aa5g = sprom->ant_available_a;
14567 
14568 	pi->srom_fem2g.tssipos = sprom->fem.ghz2.tssipos;
14569 	pi->srom_fem2g.extpagain = sprom->fem.ghz2.extpa_gain;
14570 	pi->srom_fem2g.pdetrange = sprom->fem.ghz2.pdet_range;
14571 	pi->srom_fem2g.triso = sprom->fem.ghz2.tr_iso;
14572 	pi->srom_fem2g.antswctrllut = sprom->fem.ghz2.antswlut;
14573 
14574 	pi->srom_fem5g.tssipos = sprom->fem.ghz5.tssipos;
14575 	pi->srom_fem5g.extpagain = sprom->fem.ghz5.extpa_gain;
14576 	pi->srom_fem5g.pdetrange = sprom->fem.ghz5.pdet_range;
14577 	pi->srom_fem5g.triso = sprom->fem.ghz5.tr_iso;
14578 	if (sprom->fem.ghz5.antswlut)
14579 		pi->srom_fem5g.antswctrllut = sprom->fem.ghz5.antswlut;
14580 	else
14581 		pi->srom_fem5g.antswctrllut = sprom->fem.ghz2.antswlut;
14582 
14583 	wlc_phy_txpower_ipa_upd(pi);
14584 
14585 	pi->phy_txcore_disable_temp = sprom->tempthresh;
14586 	if (pi->phy_txcore_disable_temp == 0)
14587 		pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
14588 
14589 	pi->phy_tempsense_offset = sprom->tempoffset;
14590 	if (pi->phy_tempsense_offset != 0) {
14591 		if (pi->phy_tempsense_offset >
14592 		    (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
14593 			pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
14594 		else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
14595 						     NPHY_SROM_MINTEMPOFFSET))
14596 			pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
14597 		else
14598 			pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
14599 	}
14600 
14601 	pi->phy_txcore_enable_temp =
14602 		pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
14603 
14604 	pi->phycal_tempdelta = sprom->phycal_tempdelta;
14605 	if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
14606 		pi->phycal_tempdelta = 0;
14607 
14608 	wlc_phy_txpwr_srom_read_ppr_nphy(pi);
14609 
14610 	return true;
14611 }
14612 
14613 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14614 {
14615 	uint i;
14616 
14617 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14618 		pi->phyhang_avoid = true;
14619 
14620 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14621 		pi->nphy_gband_spurwar_en = true;
14622 		if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14623 			pi->nphy_aband_spurwar_en = true;
14624 	}
14625 	if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14626 		if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14627 			pi->nphy_gband_spurwar2_en = true;
14628 	}
14629 
14630 	pi->n_preamble_override = AUTO;
14631 	if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14632 		pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14633 
14634 	pi->nphy_txrx_chain = AUTO;
14635 	pi->phy_scraminit = AUTO;
14636 
14637 	pi->nphy_rxcalparams = 0x010100B5;
14638 
14639 	pi->nphy_perical = PHY_PERICAL_MPHASE;
14640 	pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14641 	pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14642 
14643 	pi->nphy_gain_boost = true;
14644 	pi->nphy_elna_gain_config = false;
14645 	pi->radio_is_on = false;
14646 
14647 	for (i = 0; i < pi->pubpi.phy_corenum; i++)
14648 		pi->nphy_txpwrindex[i].index = AUTO;
14649 
14650 	wlc_phy_txpwrctrl_config_nphy(pi);
14651 	if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14652 		pi->hwpwrctrl_capable = true;
14653 
14654 	pi->pi_fptr.init = wlc_phy_init_nphy;
14655 	pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14656 	pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14657 	pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14658 
14659 	if (!wlc_phy_txpwr_srom_read_nphy(pi))
14660 		return false;
14661 
14662 	return true;
14663 }
14664 
14665 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14666 {
14667 	s32 rfpwr_offset = 0;
14668 
14669 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
14670 		if ((pi->pubpi.radiorev == 3) ||
14671 		    (pi->pubpi.radiorev == 4) ||
14672 		    (pi->pubpi.radiorev == 6))
14673 			rfpwr_offset = (s16)
14674 				       nphy_papd_padgain_dlt_2g_2057rev3n4
14675 				       [pad_gn];
14676 		else if (pi->pubpi.radiorev == 5)
14677 			rfpwr_offset = (s16)
14678 				       nphy_papd_padgain_dlt_2g_2057rev5
14679 				       [pad_gn];
14680 		else if ((pi->pubpi.radiorev == 7)
14681 			 || (pi->pubpi.radiorev ==
14682 			     8))
14683 			rfpwr_offset = (s16)
14684 				       nphy_papd_padgain_dlt_2g_2057rev7
14685 				       [pad_gn];
14686 	} else {
14687 		if ((pi->pubpi.radiorev == 3) ||
14688 		    (pi->pubpi.radiorev == 4) ||
14689 		    (pi->pubpi.radiorev == 6))
14690 			rfpwr_offset = (s16)
14691 				       nphy_papd_pgagain_dlt_5g_2057
14692 				       [pga_gn];
14693 		else if ((pi->pubpi.radiorev == 7)
14694 			 || (pi->pubpi.radiorev ==
14695 			     8))
14696 			rfpwr_offset = (s16)
14697 				       nphy_papd_pgagain_dlt_5g_2057rev7
14698 				       [pga_gn];
14699 	}
14700 	return rfpwr_offset;
14701 }
14702 
14703 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14704 {
14705 	bool gf_preamble = false;
14706 	u16 val;
14707 
14708 	if (preamble == BRCMS_N_PREAMBLE_GF)
14709 		gf_preamble = true;
14710 
14711 	val = read_phy_reg(pi, 0xed);
14712 
14713 	val |= RX_GF_MM_AUTO;
14714 	val &= ~RX_GF_OR_MM;
14715 	if (gf_preamble)
14716 		val |= RX_GF_OR_MM;
14717 
14718 	write_phy_reg(pi, 0xed, val);
14719 }
14720 
14721 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
14722 {
14723 	int j, type;
14724 	u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
14725 
14726 	for (type = 0; type < 3; type++) {
14727 		for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14728 			write_phy_reg(pi, addr_offset[type] + j,
14729 				      NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
14730 	}
14731 
14732 	if (pi->bw == WL_CHANSPEC_BW_40) {
14733 		for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14734 			write_phy_reg(pi, 0x186 + j,
14735 				      NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14736 	} else {
14737 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
14738 			for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14739 				write_phy_reg(pi, 0x186 + j,
14740 					NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
14741 		}
14742 
14743 		if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
14744 			for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14745 				write_phy_reg(pi, 0x2c5 + j,
14746 					NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
14747 		}
14748 	}
14749 }
14750 
14751 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
14752 {
14753 	int j;
14754 
14755 	if (pi->bw == WL_CHANSPEC_BW_40) {
14756 		for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14757 			write_phy_reg(pi, 0x195 + j,
14758 				      NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
14759 	} else {
14760 		for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14761 			write_phy_reg(pi, 0x186 + j,
14762 				      NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14763 	}
14764 }
14765 
14766 static void
14767 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, const u8 *events,
14768 		       const u8 *dlys, u8 len)
14769 {
14770 	u32 t1_offset, t2_offset;
14771 	u8 ctr;
14772 	u8 end_event =
14773 		NREV_GE(pi->pubpi.phy_rev,
14774 			3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
14775 	u8 end_dly = 1;
14776 
14777 	if (pi->phyhang_avoid)
14778 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
14779 
14780 	t1_offset = cmd << 4;
14781 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
14782 				 events);
14783 	t2_offset = t1_offset + 0x080;
14784 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
14785 				 dlys);
14786 
14787 	for (ctr = len; ctr < 16; ctr++) {
14788 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14789 					 t1_offset + ctr, 8, &end_event);
14790 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14791 					 t2_offset + ctr, 8, &end_dly);
14792 	}
14793 
14794 	if (pi->phyhang_avoid)
14795 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
14796 }
14797 
14798 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
14799 {
14800 	u16 lpf_bw_ctl_val = 0;
14801 	u16 rx2tx_lpf_rc_lut_offset = 0;
14802 
14803 	if (offset == 0) {
14804 		if (CHSPEC_IS40(pi->radio_chanspec))
14805 			rx2tx_lpf_rc_lut_offset = 0x159;
14806 		else
14807 			rx2tx_lpf_rc_lut_offset = 0x154;
14808 	} else {
14809 		rx2tx_lpf_rc_lut_offset = offset;
14810 	}
14811 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14812 				(u32) rx2tx_lpf_rc_lut_offset, 16,
14813 				&lpf_bw_ctl_val);
14814 
14815 	lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
14816 
14817 	return lpf_bw_ctl_val;
14818 }
14819 
14820 static void
14821 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14822 				  u8 core_mask, u8 off, u8 override_id)
14823 {
14824 	u8 core_num;
14825 	u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
14826 	u8 val_shift = 0;
14827 
14828 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14829 		en_mask = field;
14830 		for (core_num = 0; core_num < 2; core_num++) {
14831 			if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
14832 
14833 				switch (field) {
14834 				case (0x1 << 2):
14835 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14836 					val_addr = (core_num == 0) ? 0x7a :
14837 						   0x7d;
14838 					val_mask = (0x1 << 1);
14839 					val_shift = 1;
14840 					break;
14841 				case (0x1 << 3):
14842 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14843 					val_addr = (core_num == 0) ? 0x7a :
14844 						   0x7d;
14845 					val_mask = (0x1 << 2);
14846 					val_shift = 2;
14847 					break;
14848 				case (0x1 << 4):
14849 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14850 					val_addr = (core_num == 0) ? 0x7a :
14851 						   0x7d;
14852 					val_mask = (0x1 << 4);
14853 					val_shift = 4;
14854 					break;
14855 				case (0x1 << 5):
14856 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14857 					val_addr = (core_num == 0) ? 0x7a :
14858 						   0x7d;
14859 					val_mask = (0x1 << 5);
14860 					val_shift = 5;
14861 					break;
14862 				case (0x1 << 6):
14863 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14864 					val_addr = (core_num == 0) ? 0x7a :
14865 						   0x7d;
14866 					val_mask = (0x1 << 6);
14867 					val_shift = 6;
14868 					break;
14869 				case (0x1 << 7):
14870 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14871 					val_addr = (core_num == 0) ? 0x7a :
14872 						   0x7d;
14873 					val_mask = (0x1 << 7);
14874 					val_shift = 7;
14875 					break;
14876 				case (0x1 << 10):
14877 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14878 					val_addr = (core_num == 0) ? 0xf8 :
14879 						   0xfa;
14880 					val_mask = (0x7 << 4);
14881 					val_shift = 4;
14882 					break;
14883 				case (0x1 << 11):
14884 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14885 					val_addr = (core_num == 0) ? 0x7b :
14886 						   0x7e;
14887 					val_mask = (0xffff << 0);
14888 					val_shift = 0;
14889 					break;
14890 				case (0x1 << 12):
14891 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14892 					val_addr = (core_num == 0) ? 0x7c :
14893 						   0x7f;
14894 					val_mask = (0xffff << 0);
14895 					val_shift = 0;
14896 					break;
14897 				case (0x3 << 13):
14898 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14899 					val_addr = (core_num == 0) ? 0x348 :
14900 						   0x349;
14901 					val_mask = (0xff << 0);
14902 					val_shift = 0;
14903 					break;
14904 				case (0x1 << 13):
14905 					en_addr = (core_num == 0) ? 0xe7 : 0xec;
14906 					val_addr = (core_num == 0) ? 0x348 :
14907 						   0x349;
14908 					val_mask = (0xf << 0);
14909 					val_shift = 0;
14910 					break;
14911 				default:
14912 					addr = 0xffff;
14913 					break;
14914 				}
14915 			} else if (override_id ==
14916 				   NPHY_REV7_RFCTRLOVERRIDE_ID1) {
14917 
14918 				switch (field) {
14919 				case (0x1 << 1):
14920 					en_addr = (core_num == 0) ? 0x342 :
14921 						  0x343;
14922 					val_addr = (core_num == 0) ? 0x340 :
14923 						   0x341;
14924 					val_mask = (0x1 << 1);
14925 					val_shift = 1;
14926 					break;
14927 				case (0x1 << 3):
14928 					en_addr = (core_num == 0) ? 0x342 :
14929 						  0x343;
14930 					val_addr = (core_num == 0) ? 0x340 :
14931 						   0x341;
14932 					val_mask = (0x1 << 3);
14933 					val_shift = 3;
14934 					break;
14935 				case (0x1 << 5):
14936 					en_addr = (core_num == 0) ? 0x342 :
14937 						  0x343;
14938 					val_addr = (core_num == 0) ? 0x340 :
14939 						   0x341;
14940 					val_mask = (0x1 << 5);
14941 					val_shift = 5;
14942 					break;
14943 				case (0x1 << 4):
14944 					en_addr = (core_num == 0) ? 0x342 :
14945 						  0x343;
14946 					val_addr = (core_num == 0) ? 0x340 :
14947 						   0x341;
14948 					val_mask = (0x1 << 4);
14949 					val_shift = 4;
14950 					break;
14951 				case (0x1 << 2):
14952 
14953 					en_addr = (core_num == 0) ? 0x342 :
14954 						  0x343;
14955 					val_addr = (core_num == 0) ? 0x340 :
14956 						   0x341;
14957 					val_mask = (0x1 << 2);
14958 					val_shift = 2;
14959 					break;
14960 				case (0x1 << 7):
14961 
14962 					en_addr = (core_num == 0) ? 0x342 :
14963 						  0x343;
14964 					val_addr = (core_num == 0) ? 0x340 :
14965 						   0x341;
14966 					val_mask = (0x7 << 8);
14967 					val_shift = 8;
14968 					break;
14969 				case (0x1 << 11):
14970 					en_addr = (core_num == 0) ? 0x342 :
14971 						  0x343;
14972 					val_addr = (core_num == 0) ? 0x340 :
14973 						   0x341;
14974 					val_mask = (0x1 << 14);
14975 					val_shift = 14;
14976 					break;
14977 				case (0x1 << 10):
14978 					en_addr = (core_num == 0) ? 0x342 :
14979 						  0x343;
14980 					val_addr = (core_num == 0) ? 0x340 :
14981 						   0x341;
14982 					val_mask = (0x1 << 13);
14983 					val_shift = 13;
14984 					break;
14985 				case (0x1 << 9):
14986 					en_addr = (core_num == 0) ? 0x342 :
14987 						  0x343;
14988 					val_addr = (core_num == 0) ? 0x340 :
14989 						   0x341;
14990 					val_mask = (0x1 << 12);
14991 					val_shift = 12;
14992 					break;
14993 				case (0x1 << 8):
14994 					en_addr = (core_num == 0) ? 0x342 :
14995 						  0x343;
14996 					val_addr = (core_num == 0) ? 0x340 :
14997 						   0x341;
14998 					val_mask = (0x1 << 11);
14999 					val_shift = 11;
15000 					break;
15001 				case (0x1 << 6):
15002 					en_addr = (core_num == 0) ? 0x342 :
15003 						  0x343;
15004 					val_addr = (core_num == 0) ? 0x340 :
15005 						   0x341;
15006 					val_mask = (0x1 << 6);
15007 					val_shift = 6;
15008 					break;
15009 				case (0x1 << 0):
15010 					en_addr = (core_num == 0) ? 0x342 :
15011 						  0x343;
15012 					val_addr = (core_num == 0) ? 0x340 :
15013 						   0x341;
15014 					val_mask = (0x1 << 0);
15015 					val_shift = 0;
15016 					break;
15017 				default:
15018 					addr = 0xffff;
15019 					break;
15020 				}
15021 			} else if (override_id ==
15022 				   NPHY_REV7_RFCTRLOVERRIDE_ID2) {
15023 
15024 				switch (field) {
15025 				case (0x1 << 3):
15026 					en_addr = (core_num == 0) ? 0x346 :
15027 						  0x347;
15028 					val_addr = (core_num == 0) ? 0x344 :
15029 						   0x345;
15030 					val_mask = (0x1 << 3);
15031 					val_shift = 3;
15032 					break;
15033 				case (0x1 << 1):
15034 					en_addr = (core_num == 0) ? 0x346 :
15035 						  0x347;
15036 					val_addr = (core_num == 0) ? 0x344 :
15037 						   0x345;
15038 					val_mask = (0x1 << 1);
15039 					val_shift = 1;
15040 					break;
15041 				case (0x1 << 0):
15042 					en_addr = (core_num == 0) ? 0x346 :
15043 						  0x347;
15044 					val_addr = (core_num == 0) ? 0x344 :
15045 						   0x345;
15046 					val_mask = (0x1 << 0);
15047 					val_shift = 0;
15048 					break;
15049 				case (0x1 << 2):
15050 					en_addr = (core_num == 0) ? 0x346 :
15051 						  0x347;
15052 					val_addr = (core_num == 0) ? 0x344 :
15053 						   0x345;
15054 					val_mask = (0x1 << 2);
15055 					val_shift = 2;
15056 					break;
15057 				case (0x1 << 4):
15058 					en_addr = (core_num == 0) ? 0x346 :
15059 						  0x347;
15060 					val_addr = (core_num == 0) ? 0x344 :
15061 						   0x345;
15062 					val_mask = (0x1 << 4);
15063 					val_shift = 4;
15064 					break;
15065 				default:
15066 					addr = 0xffff;
15067 					break;
15068 				}
15069 			}
15070 
15071 			if (off) {
15072 				and_phy_reg(pi, en_addr, ~en_mask);
15073 				and_phy_reg(pi, val_addr, ~val_mask);
15074 			} else {
15075 
15076 				if ((core_mask == 0)
15077 				    || (core_mask & (1 << core_num))) {
15078 					or_phy_reg(pi, en_addr, en_mask);
15079 
15080 					if (addr != 0xffff)
15081 						mod_phy_reg(pi, val_addr,
15082 							    val_mask,
15083 							    (value <<
15084 							     val_shift));
15085 				}
15086 			}
15087 		}
15088 	}
15089 }
15090 
15091 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
15092 {
15093 	uint core;
15094 	int ctr;
15095 	s16 gain_delta[2];
15096 	u8 curr_channel;
15097 	u16 minmax_gain[2];
15098 	u16 regval[4];
15099 
15100 	if (pi->phyhang_avoid)
15101 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
15102 
15103 	if (pi->nphy_gain_boost) {
15104 		if ((CHSPEC_IS2G(pi->radio_chanspec))) {
15105 
15106 			gain_delta[0] = 6;
15107 			gain_delta[1] = 6;
15108 		} else {
15109 
15110 			curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
15111 			gain_delta[0] =
15112 				(s16)
15113 				PHY_HW_ROUND(((nphy_lnagain_est0[0] *
15114 					       curr_channel) +
15115 					      nphy_lnagain_est0[1]), 13);
15116 			gain_delta[1] =
15117 				(s16)
15118 				PHY_HW_ROUND(((nphy_lnagain_est1[0] *
15119 					       curr_channel) +
15120 					      nphy_lnagain_est1[1]), 13);
15121 		}
15122 	} else {
15123 
15124 		gain_delta[0] = 0;
15125 		gain_delta[1] = 0;
15126 	}
15127 
15128 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
15129 		if (pi->nphy_elna_gain_config) {
15130 
15131 			regval[0] = nphy_def_lnagains[2] + gain_delta[core];
15132 			regval[1] = nphy_def_lnagains[3] + gain_delta[core];
15133 			regval[2] = nphy_def_lnagains[3] + gain_delta[core];
15134 			regval[3] = nphy_def_lnagains[3] + gain_delta[core];
15135 		} else {
15136 			for (ctr = 0; ctr < 4; ctr++)
15137 				regval[ctr] =
15138 					nphy_def_lnagains[ctr] +
15139 					gain_delta[core];
15140 		}
15141 		wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
15142 
15143 		minmax_gain[core] =
15144 			(u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
15145 	}
15146 
15147 	mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
15148 	mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
15149 
15150 	if (pi->phyhang_avoid)
15151 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
15152 }
15153 
15154 static void
15155 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15156 {
15157 	if (core == PHY_CORE_0) {
15158 		write_phy_reg(pi, 0x38, 0x4);
15159 		if (CHSPEC_IS2G(pi->radio_chanspec))
15160 			write_phy_reg(pi, 0x37, 0x0060);
15161 		else
15162 			write_phy_reg(pi, 0x37, 0x1080);
15163 	} else if (core == PHY_CORE_1) {
15164 		write_phy_reg(pi, 0x2ae, 0x4);
15165 		if (CHSPEC_IS2G(pi->radio_chanspec))
15166 			write_phy_reg(pi, 0x2ad, 0x0060);
15167 		else
15168 			write_phy_reg(pi, 0x2ad, 0x1080);
15169 	}
15170 }
15171 
15172 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15173 {
15174 	u8 txchain0, txchain1;
15175 
15176 	txchain0 = txchain & 0x1;
15177 	txchain1 = (txchain & 0x2) >> 1;
15178 	if (!txchain0)
15179 		wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15180 
15181 	if (!txchain1)
15182 		wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15183 }
15184 
15185 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
15186 {
15187 	s8 lna1_gain_db[] = { 8, 13, 17, 22 };
15188 	s8 lna2_gain_db[] = { -2, 7, 11, 15 };
15189 	s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15190 	s8 tia_gainbits[] = {
15191 		0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15192 
15193 	mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15194 	mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15195 
15196 	mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15197 
15198 	mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
15199 	mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
15200 
15201 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
15202 				 lna1_gain_db);
15203 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
15204 				 lna1_gain_db);
15205 
15206 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
15207 				 lna2_gain_db);
15208 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
15209 				 lna2_gain_db);
15210 
15211 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15212 				 tia_gain_db);
15213 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15214 				 tia_gain_db);
15215 
15216 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15217 				 tia_gainbits);
15218 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15219 				 tia_gainbits);
15220 
15221 	write_phy_reg(pi, 0x37, 0x74);
15222 	write_phy_reg(pi, 0x2ad, 0x74);
15223 	write_phy_reg(pi, 0x38, 0x18);
15224 	write_phy_reg(pi, 0x2ae, 0x18);
15225 
15226 	write_phy_reg(pi, 0x2b, 0xe8);
15227 	write_phy_reg(pi, 0x41, 0xe8);
15228 
15229 	if (CHSPEC_IS20(pi->radio_chanspec)) {
15230 
15231 		mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
15232 		mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
15233 	} else {
15234 
15235 		mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
15236 		mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
15237 	}
15238 }
15239 
15240 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
15241 {
15242 	u16 currband;
15243 	static const s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
15244 	const s8 *lna1_gain_db = NULL;
15245 	const s8 *lna1_gain_db_2 = NULL;
15246 	const s8 *lna2_gain_db = NULL;
15247 	static const s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15248 	const s8 *tia_gain_db;
15249 	static const s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15250 	const s8 *tia_gainbits;
15251 	static const u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
15252 	const u16 *rfseq_init_gain;
15253 	u16 init_gaincode;
15254 	u16 clip1hi_gaincode;
15255 	u16 clip1md_gaincode = 0;
15256 	u16 clip1md_gaincode_B;
15257 	u16 clip1lo_gaincode;
15258 	u16 clip1lo_gaincode_B;
15259 	u8 crsminl_th = 0;
15260 	u8 crsminu_th;
15261 	u16 nbclip_th = 0;
15262 	u8 w1clip_th;
15263 	u16 freq;
15264 	s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
15265 	u8 chg_nbclip_th = 0;
15266 
15267 	mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15268 	mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15269 
15270 	currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15271 	if (currband == 0) {
15272 
15273 		lna1_gain_db = lna1G_gain_db_rev7;
15274 
15275 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15276 					 lna1_gain_db);
15277 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15278 					 lna1_gain_db);
15279 
15280 		mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
15281 
15282 		if (CHSPEC_IS40(pi->radio_chanspec)) {
15283 			mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
15284 			mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
15285 		}
15286 
15287 		mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15288 
15289 		if (CHSPEC_IS20(pi->radio_chanspec)) {
15290 			mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
15291 			mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
15292 		}
15293 	} else {
15294 
15295 		init_gaincode = 0x9e;
15296 		clip1hi_gaincode = 0x9e;
15297 		clip1md_gaincode_B = 0x24;
15298 		clip1lo_gaincode = 0x8a;
15299 		clip1lo_gaincode_B = 8;
15300 		rfseq_init_gain = rfseqA_init_gain_rev7;
15301 
15302 		tia_gain_db = tiaA_gain_db_rev7;
15303 		tia_gainbits = tiaA_gainbits_rev7;
15304 
15305 		freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
15306 		if (CHSPEC_IS20(pi->radio_chanspec)) {
15307 
15308 			w1clip_th = 25;
15309 			clip1md_gaincode = 0x82;
15310 
15311 			if ((freq <= 5080) || (freq == 5825)) {
15312 
15313 				static const s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
15314 				static const s8 lna1A_gain_db_2_rev7[] = { 11, 17, 22, 25};
15315 				static const s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15316 
15317 				crsminu_th = 0x3e;
15318 				lna1_gain_db = lna1A_gain_db_rev7;
15319 				lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15320 				lna2_gain_db = lna2A_gain_db_rev7;
15321 			} else if ((freq >= 5500) && (freq <= 5700)) {
15322 
15323 				static const s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
15324 				static const s8 lna1A_gain_db_2_rev7[] = { 12, 18, 22, 26};
15325 				static const s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
15326 
15327 				crsminu_th = 0x45;
15328 				clip1md_gaincode_B = 0x14;
15329 				nbclip_th = 0xff;
15330 				chg_nbclip_th = 1;
15331 				lna1_gain_db = lna1A_gain_db_rev7;
15332 				lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15333 				lna2_gain_db = lna2A_gain_db_rev7;
15334 			} else {
15335 
15336 				static const s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
15337 				static const s8 lna1A_gain_db_2_rev7[] = { 12, 18, 22, 26};
15338 				static const s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15339 
15340 				crsminu_th = 0x41;
15341 				lna1_gain_db = lna1A_gain_db_rev7;
15342 				lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15343 				lna2_gain_db = lna2A_gain_db_rev7;
15344 			}
15345 
15346 			if (freq <= 4920) {
15347 				nvar_baseline_offset0 = 5;
15348 				nvar_baseline_offset1 = 5;
15349 			} else if ((freq > 4920) && (freq <= 5320)) {
15350 				nvar_baseline_offset0 = 3;
15351 				nvar_baseline_offset1 = 5;
15352 			} else if ((freq > 5320) && (freq <= 5700)) {
15353 				nvar_baseline_offset0 = 3;
15354 				nvar_baseline_offset1 = 2;
15355 			} else {
15356 				nvar_baseline_offset0 = 4;
15357 				nvar_baseline_offset1 = 0;
15358 			}
15359 		} else {
15360 
15361 			crsminu_th = 0x3a;
15362 			crsminl_th = 0x3a;
15363 			w1clip_th = 20;
15364 
15365 			if ((freq >= 4920) && (freq <= 5320)) {
15366 				nvar_baseline_offset0 = 4;
15367 				nvar_baseline_offset1 = 5;
15368 			} else if ((freq > 5320) && (freq <= 5550)) {
15369 				nvar_baseline_offset0 = 4;
15370 				nvar_baseline_offset1 = 2;
15371 			} else {
15372 				nvar_baseline_offset0 = 5;
15373 				nvar_baseline_offset1 = 3;
15374 			}
15375 		}
15376 
15377 		write_phy_reg(pi, 0x20, init_gaincode);
15378 		write_phy_reg(pi, 0x2a7, init_gaincode);
15379 
15380 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15381 					 pi->pubpi.phy_corenum, 0x106, 16,
15382 					 rfseq_init_gain);
15383 
15384 		write_phy_reg(pi, 0x22, clip1hi_gaincode);
15385 		write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15386 
15387 		write_phy_reg(pi, 0x36, clip1md_gaincode_B);
15388 		write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
15389 
15390 		write_phy_reg(pi, 0x37, clip1lo_gaincode);
15391 		write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15392 		write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
15393 		write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
15394 
15395 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15396 					 tia_gain_db);
15397 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15398 					 tia_gain_db);
15399 
15400 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15401 					 tia_gainbits);
15402 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15403 					 tia_gainbits);
15404 
15405 		mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15406 
15407 		if (chg_nbclip_th == 1) {
15408 			write_phy_reg(pi, 0x2b, nbclip_th);
15409 			write_phy_reg(pi, 0x41, nbclip_th);
15410 		}
15411 
15412 		mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
15413 		mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
15414 
15415 		mod_phy_reg(pi, 0x2e4,
15416 			    (0x3f << 0), (nvar_baseline_offset0 << 0));
15417 
15418 		mod_phy_reg(pi, 0x2e4,
15419 			    (0x3f << 6), (nvar_baseline_offset1 << 6));
15420 
15421 		if (CHSPEC_IS20(pi->radio_chanspec)) {
15422 
15423 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15424 						 lna1_gain_db);
15425 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15426 						 lna1_gain_db_2);
15427 
15428 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15429 						 8, lna2_gain_db);
15430 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15431 						 8, lna2_gain_db);
15432 
15433 			write_phy_reg(pi, 0x24, clip1md_gaincode);
15434 			write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15435 		} else {
15436 			mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15437 		}
15438 	}
15439 }
15440 
15441 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
15442 {
15443 	u16 w1th, hpf_code, currband;
15444 	int ctr;
15445 	u8 rfseq_updategainu_events[] = {
15446 		NPHY_RFSEQ_CMD_RX_GAIN,
15447 		NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15448 		NPHY_RFSEQ_CMD_SET_HPF_BW
15449 	};
15450 	static const u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
15451 	static const s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
15452 	static const s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
15453 	static const s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
15454 	static const s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
15455 	static const s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
15456 	static const s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
15457 	static const s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
15458 	static const s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
15459 	static const s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
15460 	const s8 *lna1_gain_db = NULL;
15461 	static const s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
15462 	static const s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
15463 	static const s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
15464 	static const s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
15465 	static const s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
15466 	static const s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
15467 	static const s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
15468 	static const s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
15469 	const s8 *lna2_gain_db = NULL;
15470 	static const s8 tiaG_gain_db[] = {
15471 		0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15472 	static const s8 tiaA_gain_db[] = {
15473 		0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15474 	static const s8 tiaA_gain_db_rev4[] = {
15475 		0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15476 	static const s8 tiaA_gain_db_rev5[] = {
15477 		0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15478 	static const s8 tiaA_gain_db_rev6[] = {
15479 		0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15480 	const s8 *tia_gain_db;
15481 	static const s8 tiaG_gainbits[] = {
15482 		0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15483 	static const s8 tiaA_gainbits[] = {
15484 		0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15485 	static const s8 tiaA_gainbits_rev4[] = {
15486 		0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15487 	static const s8 tiaA_gainbits_rev5[] = {
15488 		0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15489 	static const s8 tiaA_gainbits_rev6[] = {
15490 		0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15491 	const s8 *tia_gainbits;
15492 	static const s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15493 	static const s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15494 	static const u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15495 	static const u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15496 	static const u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15497 	static const u16 rfseqG_init_gain_rev5_elna[] = {
15498 		0x013f, 0x013f, 0x013f, 0x013f };
15499 	static const u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
15500 	static const u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
15501 	static const u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
15502 	static const u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15503 	static const u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15504 	static const u16 rfseqA_init_gain_rev4_elna[] = {
15505 		0x314f, 0x314f, 0x314f, 0x314f };
15506 	static const u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15507 	static const u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
15508 	const u16 *rfseq_init_gain;
15509 	u16 initG_gaincode = 0x627e;
15510 	u16 initG_gaincode_rev4 = 0x527e;
15511 	u16 initG_gaincode_rev5 = 0x427e;
15512 	u16 initG_gaincode_rev5_elna = 0x027e;
15513 	u16 initG_gaincode_rev6 = 0x527e;
15514 	u16 initG_gaincode_rev6_224B0 = 0x427e;
15515 	u16 initG_gaincode_rev6_elna = 0x127e;
15516 	u16 initA_gaincode = 0x52de;
15517 	u16 initA_gaincode_rev4 = 0x629e;
15518 	u16 initA_gaincode_rev4_elna = 0x329e;
15519 	u16 initA_gaincode_rev5 = 0x729e;
15520 	u16 initA_gaincode_rev6 = 0x729e;
15521 	u16 init_gaincode;
15522 	u16 clip1hiG_gaincode = 0x107e;
15523 	u16 clip1hiG_gaincode_rev4 = 0x007e;
15524 	u16 clip1hiG_gaincode_rev5 = 0x1076;
15525 	u16 clip1hiG_gaincode_rev6 = 0x007e;
15526 	u16 clip1hiA_gaincode = 0x00de;
15527 	u16 clip1hiA_gaincode_rev4 = 0x029e;
15528 	u16 clip1hiA_gaincode_rev5 = 0x029e;
15529 	u16 clip1hiA_gaincode_rev6 = 0x029e;
15530 	u16 clip1hi_gaincode;
15531 	u16 clip1mdG_gaincode = 0x0066;
15532 	u16 clip1mdA_gaincode = 0x00ca;
15533 	u16 clip1mdA_gaincode_rev4 = 0x1084;
15534 	u16 clip1mdA_gaincode_rev5 = 0x2084;
15535 	u16 clip1mdA_gaincode_rev6 = 0x2084;
15536 	u16 clip1md_gaincode = 0;
15537 	u16 clip1loG_gaincode = 0x0074;
15538 	static const u16 clip1loG_gaincode_rev5[] = {
15539 		0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15540 	};
15541 	static const u16 clip1loG_gaincode_rev6[] = {
15542 		0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15543 	};
15544 	u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
15545 	u16 clip1loA_gaincode = 0x00cc;
15546 	u16 clip1loA_gaincode_rev4 = 0x0086;
15547 	u16 clip1loA_gaincode_rev5 = 0x2086;
15548 	u16 clip1loA_gaincode_rev6 = 0x2086;
15549 	u16 clip1lo_gaincode;
15550 	u8 crsminG_th = 0x18;
15551 	u8 crsminG_th_rev5 = 0x18;
15552 	u8 crsminG_th_rev6 = 0x18;
15553 	u8 crsminA_th = 0x1e;
15554 	u8 crsminA_th_rev4 = 0x24;
15555 	u8 crsminA_th_rev5 = 0x24;
15556 	u8 crsminA_th_rev6 = 0x24;
15557 	u8 crsmin_th;
15558 	u8 crsminlG_th = 0x18;
15559 	u8 crsminlG_th_rev5 = 0x18;
15560 	u8 crsminlG_th_rev6 = 0x18;
15561 	u8 crsminlA_th = 0x1e;
15562 	u8 crsminlA_th_rev4 = 0x24;
15563 	u8 crsminlA_th_rev5 = 0x24;
15564 	u8 crsminlA_th_rev6 = 0x24;
15565 	u8 crsminl_th = 0;
15566 	u8 crsminuG_th = 0x18;
15567 	u8 crsminuG_th_rev5 = 0x18;
15568 	u8 crsminuG_th_rev6 = 0x18;
15569 	u8 crsminuA_th = 0x1e;
15570 	u8 crsminuA_th_rev4 = 0x24;
15571 	u8 crsminuA_th_rev5 = 0x24;
15572 	u8 crsminuA_th_rev6 = 0x24;
15573 	u8 crsminuA_th_rev6_224B0 = 0x2d;
15574 	u8 crsminu_th;
15575 	u16 nbclipG_th = 0x20d;
15576 	u16 nbclipG_th_rev4 = 0x1a1;
15577 	u16 nbclipG_th_rev5 = 0x1d0;
15578 	u16 nbclipG_th_rev6 = 0x1d0;
15579 	u16 nbclipA_th = 0x1a1;
15580 	u16 nbclipA_th_rev4 = 0x107;
15581 	u16 nbclipA_th_rev5 = 0x0a9;
15582 	u16 nbclipA_th_rev6 = 0x0f0;
15583 	u16 nbclip_th = 0;
15584 	u8 w1clipG_th = 5;
15585 	u8 w1clipG_th_rev5 = 9;
15586 	u8 w1clipG_th_rev6 = 5;
15587 	u8 w1clipA_th = 25, w1clip_th;
15588 	u8 rssi_gain_default = 0x50;
15589 	u8 rssiG_gain_rev6_224B0 = 0x50;
15590 	u8 rssiA_gain_rev5 = 0x90;
15591 	u8 rssiA_gain_rev6 = 0x90;
15592 	u8 rssi_gain;
15593 	u16 regval[21];
15594 	u8 triso;
15595 
15596 	triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
15597 		pi->srom_fem2g.triso;
15598 
15599 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15600 		if (pi->pubpi.radiorev == 5) {
15601 			wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
15602 		} else if (pi->pubpi.radiorev == 7) {
15603 			wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15604 
15605 			mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
15606 			mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
15607 
15608 		} else if ((pi->pubpi.radiorev == 3)
15609 			   || (pi->pubpi.radiorev == 8)) {
15610 			wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15611 
15612 			if (pi->pubpi.radiorev == 8) {
15613 				mod_phy_reg(pi, 0x283,
15614 					    (0xff << 0), (0x44 << 0));
15615 				mod_phy_reg(pi, 0x280,
15616 					    (0xff << 0), (0x44 << 0));
15617 			}
15618 		} else {
15619 			wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15620 		}
15621 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15622 
15623 		mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
15624 
15625 		mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15626 		mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15627 
15628 		currband =
15629 			read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15630 		if (currband == 0) {
15631 			if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15632 				if (pi->pubpi.radiorev == 11) {
15633 					lna1_gain_db = lna1G_gain_db_rev6_224B0;
15634 					lna2_gain_db = lna2G_gain_db_rev6_224B0;
15635 					rfseq_init_gain =
15636 						rfseqG_init_gain_rev6_224B0;
15637 					init_gaincode =
15638 						initG_gaincode_rev6_224B0;
15639 					clip1hi_gaincode =
15640 						clip1hiG_gaincode_rev6;
15641 					clip1lo_gaincode =
15642 						clip1loG_gaincode_rev6_224B0;
15643 					nbclip_th = nbclipG_th_rev6;
15644 					w1clip_th = w1clipG_th_rev6;
15645 					crsmin_th = crsminG_th_rev6;
15646 					crsminl_th = crsminlG_th_rev6;
15647 					crsminu_th = crsminuG_th_rev6;
15648 					rssi_gain = rssiG_gain_rev6_224B0;
15649 				} else {
15650 					lna1_gain_db = lna1G_gain_db_rev6;
15651 					lna2_gain_db = lna2G_gain_db_rev6;
15652 					if (pi->sh->boardflags & BFL_EXTLNA) {
15653 
15654 						rfseq_init_gain =
15655 						     rfseqG_init_gain_rev6_elna;
15656 						init_gaincode =
15657 						       initG_gaincode_rev6_elna;
15658 					} else {
15659 						rfseq_init_gain =
15660 							rfseqG_init_gain_rev6;
15661 						init_gaincode =
15662 							initG_gaincode_rev6;
15663 					}
15664 					clip1hi_gaincode =
15665 						clip1hiG_gaincode_rev6;
15666 					switch (triso) {
15667 					case 0:
15668 						clip1lo_gaincode =
15669 							clip1loG_gaincode_rev6
15670 							[0];
15671 						break;
15672 					case 1:
15673 						clip1lo_gaincode =
15674 							clip1loG_gaincode_rev6
15675 							[1];
15676 						break;
15677 					case 2:
15678 						clip1lo_gaincode =
15679 							clip1loG_gaincode_rev6
15680 							[2];
15681 						break;
15682 					case 3:
15683 					default:
15684 
15685 						clip1lo_gaincode =
15686 							clip1loG_gaincode_rev6
15687 							[3];
15688 						break;
15689 					case 4:
15690 						clip1lo_gaincode =
15691 							clip1loG_gaincode_rev6
15692 							[4];
15693 						break;
15694 					case 5:
15695 						clip1lo_gaincode =
15696 							clip1loG_gaincode_rev6
15697 							[5];
15698 						break;
15699 					case 6:
15700 						clip1lo_gaincode =
15701 							clip1loG_gaincode_rev6
15702 							[6];
15703 						break;
15704 					case 7:
15705 						clip1lo_gaincode =
15706 							clip1loG_gaincode_rev6
15707 							[7];
15708 						break;
15709 					}
15710 					nbclip_th = nbclipG_th_rev6;
15711 					w1clip_th = w1clipG_th_rev6;
15712 					crsmin_th = crsminG_th_rev6;
15713 					crsminl_th = crsminlG_th_rev6;
15714 					crsminu_th = crsminuG_th_rev6;
15715 					rssi_gain = rssi_gain_default;
15716 				}
15717 			} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15718 				lna1_gain_db = lna1G_gain_db_rev5;
15719 				lna2_gain_db = lna2G_gain_db_rev5;
15720 				if (pi->sh->boardflags & BFL_EXTLNA) {
15721 
15722 					rfseq_init_gain =
15723 						rfseqG_init_gain_rev5_elna;
15724 					init_gaincode =
15725 						initG_gaincode_rev5_elna;
15726 				} else {
15727 					rfseq_init_gain = rfseqG_init_gain_rev5;
15728 					init_gaincode = initG_gaincode_rev5;
15729 				}
15730 				clip1hi_gaincode = clip1hiG_gaincode_rev5;
15731 				switch (triso) {
15732 				case 0:
15733 					clip1lo_gaincode =
15734 						clip1loG_gaincode_rev5[0];
15735 					break;
15736 				case 1:
15737 					clip1lo_gaincode =
15738 						clip1loG_gaincode_rev5[1];
15739 					break;
15740 				case 2:
15741 					clip1lo_gaincode =
15742 						clip1loG_gaincode_rev5[2];
15743 					break;
15744 				case 3:
15745 
15746 					clip1lo_gaincode =
15747 						clip1loG_gaincode_rev5[3];
15748 					break;
15749 				case 4:
15750 					clip1lo_gaincode =
15751 						clip1loG_gaincode_rev5[4];
15752 					break;
15753 				case 5:
15754 					clip1lo_gaincode =
15755 						clip1loG_gaincode_rev5[5];
15756 					break;
15757 				case 6:
15758 					clip1lo_gaincode =
15759 						clip1loG_gaincode_rev5[6];
15760 					break;
15761 				case 7:
15762 					clip1lo_gaincode =
15763 						clip1loG_gaincode_rev5[7];
15764 					break;
15765 				default:
15766 					clip1lo_gaincode =
15767 						clip1loG_gaincode_rev5[3];
15768 					break;
15769 				}
15770 				nbclip_th = nbclipG_th_rev5;
15771 				w1clip_th = w1clipG_th_rev5;
15772 				crsmin_th = crsminG_th_rev5;
15773 				crsminl_th = crsminlG_th_rev5;
15774 				crsminu_th = crsminuG_th_rev5;
15775 				rssi_gain = rssi_gain_default;
15776 			} else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15777 				lna1_gain_db = lna1G_gain_db_rev4;
15778 				lna2_gain_db = lna2G_gain_db;
15779 				rfseq_init_gain = rfseqG_init_gain_rev4;
15780 				init_gaincode = initG_gaincode_rev4;
15781 				clip1hi_gaincode = clip1hiG_gaincode_rev4;
15782 				clip1lo_gaincode = clip1loG_gaincode;
15783 				nbclip_th = nbclipG_th_rev4;
15784 				w1clip_th = w1clipG_th;
15785 				crsmin_th = crsminG_th;
15786 				crsminl_th = crsminlG_th;
15787 				crsminu_th = crsminuG_th;
15788 				rssi_gain = rssi_gain_default;
15789 			} else {
15790 				lna1_gain_db = lna1G_gain_db;
15791 				lna2_gain_db = lna2G_gain_db;
15792 				rfseq_init_gain = rfseqG_init_gain;
15793 				init_gaincode = initG_gaincode;
15794 				clip1hi_gaincode = clip1hiG_gaincode;
15795 				clip1lo_gaincode = clip1loG_gaincode;
15796 				nbclip_th = nbclipG_th;
15797 				w1clip_th = w1clipG_th;
15798 				crsmin_th = crsminG_th;
15799 				crsminl_th = crsminlG_th;
15800 				crsminu_th = crsminuG_th;
15801 				rssi_gain = rssi_gain_default;
15802 			}
15803 			tia_gain_db = tiaG_gain_db;
15804 			tia_gainbits = tiaG_gainbits;
15805 			clip1md_gaincode = clip1mdG_gaincode;
15806 		} else {
15807 			if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15808 				lna1_gain_db = lna1A_gain_db_rev6;
15809 				lna2_gain_db = lna2A_gain_db_rev6;
15810 				tia_gain_db = tiaA_gain_db_rev6;
15811 				tia_gainbits = tiaA_gainbits_rev6;
15812 				rfseq_init_gain = rfseqA_init_gain_rev6;
15813 				init_gaincode = initA_gaincode_rev6;
15814 				clip1hi_gaincode = clip1hiA_gaincode_rev6;
15815 				clip1md_gaincode = clip1mdA_gaincode_rev6;
15816 				clip1lo_gaincode = clip1loA_gaincode_rev6;
15817 				crsmin_th = crsminA_th_rev6;
15818 				crsminl_th = crsminlA_th_rev6;
15819 				if ((pi->pubpi.radiorev == 11) &&
15820 				    (CHSPEC_IS40(pi->radio_chanspec) == 0))
15821 					crsminu_th = crsminuA_th_rev6_224B0;
15822 				else
15823 					crsminu_th = crsminuA_th_rev6;
15824 
15825 				nbclip_th = nbclipA_th_rev6;
15826 				rssi_gain = rssiA_gain_rev6;
15827 			} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15828 				lna1_gain_db = lna1A_gain_db_rev5;
15829 				lna2_gain_db = lna2A_gain_db_rev5;
15830 				tia_gain_db = tiaA_gain_db_rev5;
15831 				tia_gainbits = tiaA_gainbits_rev5;
15832 				rfseq_init_gain = rfseqA_init_gain_rev5;
15833 				init_gaincode = initA_gaincode_rev5;
15834 				clip1hi_gaincode = clip1hiA_gaincode_rev5;
15835 				clip1md_gaincode = clip1mdA_gaincode_rev5;
15836 				clip1lo_gaincode = clip1loA_gaincode_rev5;
15837 				crsmin_th = crsminA_th_rev5;
15838 				crsminl_th = crsminlA_th_rev5;
15839 				crsminu_th = crsminuA_th_rev5;
15840 				nbclip_th = nbclipA_th_rev5;
15841 				rssi_gain = rssiA_gain_rev5;
15842 			} else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15843 				lna1_gain_db = lna1A_gain_db_rev4;
15844 				lna2_gain_db = lna2A_gain_db_rev4;
15845 				tia_gain_db = tiaA_gain_db_rev4;
15846 				tia_gainbits = tiaA_gainbits_rev4;
15847 				if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
15848 
15849 					rfseq_init_gain =
15850 						rfseqA_init_gain_rev4_elna;
15851 					init_gaincode =
15852 						initA_gaincode_rev4_elna;
15853 				} else {
15854 					rfseq_init_gain = rfseqA_init_gain_rev4;
15855 					init_gaincode = initA_gaincode_rev4;
15856 				}
15857 				clip1hi_gaincode = clip1hiA_gaincode_rev4;
15858 				clip1md_gaincode = clip1mdA_gaincode_rev4;
15859 				clip1lo_gaincode = clip1loA_gaincode_rev4;
15860 				crsmin_th = crsminA_th_rev4;
15861 				crsminl_th = crsminlA_th_rev4;
15862 				crsminu_th = crsminuA_th_rev4;
15863 				nbclip_th = nbclipA_th_rev4;
15864 				rssi_gain = rssi_gain_default;
15865 			} else {
15866 				lna1_gain_db = lna1A_gain_db;
15867 				lna2_gain_db = lna2A_gain_db;
15868 				tia_gain_db = tiaA_gain_db;
15869 				tia_gainbits = tiaA_gainbits;
15870 				rfseq_init_gain = rfseqA_init_gain;
15871 				init_gaincode = initA_gaincode;
15872 				clip1hi_gaincode = clip1hiA_gaincode;
15873 				clip1md_gaincode = clip1mdA_gaincode;
15874 				clip1lo_gaincode = clip1loA_gaincode;
15875 				crsmin_th = crsminA_th;
15876 				crsminl_th = crsminlA_th;
15877 				crsminu_th = crsminuA_th;
15878 				nbclip_th = nbclipA_th;
15879 				rssi_gain = rssi_gain_default;
15880 			}
15881 			w1clip_th = w1clipA_th;
15882 		}
15883 
15884 		write_radio_reg(pi,
15885 				(RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
15886 				 RADIO_2056_RX0), 0x17);
15887 		write_radio_reg(pi,
15888 				(RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
15889 				 RADIO_2056_RX1), 0x17);
15890 
15891 		write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
15892 				0xf0);
15893 		write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
15894 				0xf0);
15895 
15896 		write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
15897 				0x0);
15898 		write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
15899 				0x0);
15900 
15901 		write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
15902 				rssi_gain);
15903 		write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
15904 				rssi_gain);
15905 
15906 		write_radio_reg(pi,
15907 				(RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
15908 				 RADIO_2056_RX0), 0x17);
15909 		write_radio_reg(pi,
15910 				(RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
15911 				 RADIO_2056_RX1), 0x17);
15912 
15913 		write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
15914 				0xFF);
15915 		write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
15916 				0xFF);
15917 
15918 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
15919 					 8, lna1_gain_db);
15920 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
15921 					 8, lna1_gain_db);
15922 
15923 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15924 					 8, lna2_gain_db);
15925 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15926 					 8, lna2_gain_db);
15927 
15928 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
15929 					 8, tia_gain_db);
15930 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
15931 					 8, tia_gain_db);
15932 
15933 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
15934 					 8, tia_gainbits);
15935 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
15936 					 8, tia_gainbits);
15937 
15938 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
15939 					 8, &lpf_gain_db);
15940 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
15941 					 8, &lpf_gain_db);
15942 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
15943 					 8, &lpf_gainbits);
15944 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
15945 					 8, &lpf_gainbits);
15946 
15947 		write_phy_reg(pi, 0x20, init_gaincode);
15948 		write_phy_reg(pi, 0x2a7, init_gaincode);
15949 
15950 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15951 					 pi->pubpi.phy_corenum, 0x106, 16,
15952 					 rfseq_init_gain);
15953 
15954 		write_phy_reg(pi, 0x22, clip1hi_gaincode);
15955 		write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15956 
15957 		write_phy_reg(pi, 0x24, clip1md_gaincode);
15958 		write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15959 
15960 		write_phy_reg(pi, 0x37, clip1lo_gaincode);
15961 		write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15962 
15963 		mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
15964 		mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15965 		mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15966 
15967 		write_phy_reg(pi, 0x2b, nbclip_th);
15968 		write_phy_reg(pi, 0x41, nbclip_th);
15969 
15970 		mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
15971 		mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
15972 
15973 		write_phy_reg(pi, 0x150, 0x809c);
15974 
15975 	} else {
15976 
15977 		mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15978 		mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15979 
15980 		write_phy_reg(pi, 0x2b, 0x84);
15981 		write_phy_reg(pi, 0x41, 0x84);
15982 
15983 		if (CHSPEC_IS20(pi->radio_chanspec)) {
15984 			write_phy_reg(pi, 0x6b, 0x2b);
15985 			write_phy_reg(pi, 0x6c, 0x2b);
15986 			write_phy_reg(pi, 0x6d, 0x9);
15987 			write_phy_reg(pi, 0x6e, 0x9);
15988 		}
15989 
15990 		w1th = NPHY_RSSICAL_W1_TARGET - 4;
15991 		mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
15992 		mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
15993 
15994 		if (CHSPEC_IS20(pi->radio_chanspec)) {
15995 			mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
15996 			mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
15997 
15998 			mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
15999 			mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16000 		}
16001 
16002 		write_phy_reg(pi, 0x150, 0x809c);
16003 
16004 		if (pi->nphy_gain_boost)
16005 			if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16006 			    (CHSPEC_IS40(pi->radio_chanspec)))
16007 				hpf_code = 4;
16008 			else
16009 				hpf_code = 5;
16010 		else if (CHSPEC_IS40(pi->radio_chanspec))
16011 			hpf_code = 6;
16012 		else
16013 			hpf_code = 7;
16014 
16015 		mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16016 		mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16017 
16018 		for (ctr = 0; ctr < 4; ctr++)
16019 			regval[ctr] = (hpf_code << 8) | 0x7c;
16020 		wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16021 
16022 		wlc_phy_adjust_lnagaintbl_nphy(pi);
16023 
16024 		if (pi->nphy_elna_gain_config) {
16025 			regval[0] = 0;
16026 			regval[1] = 1;
16027 			regval[2] = 1;
16028 			regval[3] = 1;
16029 			wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16030 			wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16031 
16032 			for (ctr = 0; ctr < 4; ctr++)
16033 				regval[ctr] = (hpf_code << 8) | 0x74;
16034 			wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16035 		}
16036 
16037 		if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16038 			for (ctr = 0; ctr < 21; ctr++)
16039 				regval[ctr] = 3 * ctr;
16040 			wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16041 			wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16042 
16043 			for (ctr = 0; ctr < 21; ctr++)
16044 				regval[ctr] = (u16) ctr;
16045 			wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16046 			wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16047 		}
16048 
16049 		wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16050 				       rfseq_updategainu_events,
16051 				       rfseq_updategainu_dlys,
16052 				       sizeof(rfseq_updategainu_events) /
16053 				       sizeof(rfseq_updategainu_events[0]));
16054 
16055 		mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16056 
16057 		if (CHSPEC_IS2G(pi->radio_chanspec))
16058 			mod_phy_reg(pi,
16059 				    (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16060 				    0x7f, 0x4);
16061 	}
16062 }
16063 
16064 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
16065 {
16066 	static const u8 rfseq_rx2tx_events[] = {
16067 		NPHY_RFSEQ_CMD_NOP,
16068 		NPHY_RFSEQ_CMD_RXG_FBW,
16069 		NPHY_RFSEQ_CMD_TR_SWITCH,
16070 		NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16071 		NPHY_RFSEQ_CMD_RXPD_TXPD,
16072 		NPHY_RFSEQ_CMD_TX_GAIN,
16073 		NPHY_RFSEQ_CMD_EXT_PA
16074 	};
16075 	u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16076 	static const u8 rfseq_tx2rx_events[] = {
16077 		NPHY_RFSEQ_CMD_NOP,
16078 		NPHY_RFSEQ_CMD_EXT_PA,
16079 		NPHY_RFSEQ_CMD_TX_GAIN,
16080 		NPHY_RFSEQ_CMD_RXPD_TXPD,
16081 		NPHY_RFSEQ_CMD_TR_SWITCH,
16082 		NPHY_RFSEQ_CMD_RXG_FBW,
16083 		NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16084 	};
16085 	static const u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16086 	static const u8 rfseq_tx2rx_events_rev3[] = {
16087 		NPHY_REV3_RFSEQ_CMD_EXT_PA,
16088 		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16089 		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16090 		NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16091 		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16092 		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16093 		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16094 		NPHY_REV3_RFSEQ_CMD_END
16095 	};
16096 	static const u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16097 	u8 rfseq_rx2tx_events_rev3[] = {
16098 		NPHY_REV3_RFSEQ_CMD_NOP,
16099 		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16100 		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16101 		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16102 		NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16103 		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16104 		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16105 		NPHY_REV3_RFSEQ_CMD_EXT_PA,
16106 		NPHY_REV3_RFSEQ_CMD_END
16107 	};
16108 	u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16109 
16110 	static const u8 rfseq_rx2tx_events_rev3_ipa[] = {
16111 		NPHY_REV3_RFSEQ_CMD_NOP,
16112 		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16113 		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16114 		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16115 		NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16116 		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16117 		NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16118 		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16119 		NPHY_REV3_RFSEQ_CMD_END
16120 	};
16121 	static const u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16122 	static const u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16123 
16124 	s16 alpha0, alpha1, alpha2;
16125 	s16 beta0, beta1, beta2;
16126 	u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16127 	    stbc_data_weights;
16128 	u8 chan_freq_range = 0;
16129 	static const u16 dac_control = 0x0002;
16130 	u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16131 	u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16132 	u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16133 	u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16134 	u16 *aux_adc_vmid;
16135 	u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16136 	u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16137 	u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16138 	u16 *aux_adc_gain;
16139 	static const u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16140 	static const u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16141 	s32 min_nvar_val = 0x18d;
16142 	s32 min_nvar_offset_6mbps = 20;
16143 	u8 pdetrange;
16144 	u8 triso;
16145 	u16 regval;
16146 	u16 afectrl_adc_ctrl1_rev7 = 0x20;
16147 	u16 afectrl_adc_ctrl2_rev7 = 0x0;
16148 	u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16149 	u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16150 	u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16151 	static const u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16152 	static const u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16153 	static const u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16154 	u16 ipalvlshift_3p3_war_en = 0;
16155 	u16 rccal_bcap_val, rccal_scap_val;
16156 	u16 rccal_tx20_11b_bcap = 0;
16157 	u16 rccal_tx20_11b_scap = 0;
16158 	u16 rccal_tx20_11n_bcap = 0;
16159 	u16 rccal_tx20_11n_scap = 0;
16160 	u16 rccal_tx40_11n_bcap = 0;
16161 	u16 rccal_tx40_11n_scap = 0;
16162 	u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16163 	u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16164 	u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16165 	u16 tx_lpf_bw_ofdm_20mhz = 0;
16166 	u16 tx_lpf_bw_ofdm_40mhz = 0;
16167 	u16 tx_lpf_bw_11b = 0;
16168 	u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16169 	u16 txgm_idac_bleed = 0;
16170 	bool rccal_ovrd = false;
16171 	u16 freq;
16172 	int coreNum;
16173 
16174 	if (CHSPEC_IS5G(pi->radio_chanspec))
16175 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
16176 	else
16177 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
16178 
16179 	if (pi->phyhang_avoid)
16180 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
16181 
16182 	or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
16183 
16184 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16185 
16186 		if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16187 			mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16188 
16189 			mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16190 			mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16191 			mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16192 			mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16193 			mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16194 			mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16195 			mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16196 			mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16197 			mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16198 			mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16199 			mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16200 			mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16201 			mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16202 			mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16203 			mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16204 			mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16205 		}
16206 
16207 		if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16208 			write_phy_reg(pi, 0x23f, 0x1b0);
16209 			write_phy_reg(pi, 0x240, 0x1b0);
16210 		}
16211 
16212 		if (NREV_GE(pi->pubpi.phy_rev, 8))
16213 			mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16214 
16215 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16216 					 &dac_control);
16217 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16218 					 &dac_control);
16219 
16220 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16221 					1, 0, 32, &leg_data_weights);
16222 		leg_data_weights = leg_data_weights & 0xffffff;
16223 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16224 					 1, 0, 32, &leg_data_weights);
16225 
16226 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16227 					 2, 0x15e, 16,
16228 					 rfseq_rx2tx_dacbufpu_rev7);
16229 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16230 					 rfseq_rx2tx_dacbufpu_rev7);
16231 
16232 		if (PHY_IPA(pi))
16233 			wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16234 					       rfseq_rx2tx_events_rev3_ipa,
16235 					       rfseq_rx2tx_dlys_rev3_ipa,
16236 					       ARRAY_SIZE(rfseq_rx2tx_events_rev3_ipa));
16237 
16238 		mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16239 		mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16240 
16241 		tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16242 		tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16243 		tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16244 
16245 		if (PHY_IPA(pi)) {
16246 
16247 			if (((pi->pubpi.radiorev == 5)
16248 			     && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16249 			    || (pi->pubpi.radiorev == 7)
16250 			    || (pi->pubpi.radiorev == 8)) {
16251 
16252 				rccal_bcap_val =
16253 					read_radio_reg(
16254 						pi,
16255 						RADIO_2057_RCCAL_BCAP_VAL);
16256 				rccal_scap_val =
16257 					read_radio_reg(
16258 						pi,
16259 						RADIO_2057_RCCAL_SCAP_VAL);
16260 
16261 				rccal_tx20_11b_bcap = rccal_bcap_val;
16262 				rccal_tx20_11b_scap = rccal_scap_val;
16263 
16264 				if ((pi->pubpi.radiorev == 5) &&
16265 				    (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16266 
16267 					rccal_tx20_11n_bcap = rccal_bcap_val;
16268 					rccal_tx20_11n_scap = rccal_scap_val;
16269 					rccal_tx40_11n_bcap = 0xc;
16270 					rccal_tx40_11n_scap = 0xc;
16271 
16272 					rccal_ovrd = true;
16273 
16274 				} else if ((pi->pubpi.radiorev == 7)
16275 					   || (pi->pubpi.radiorev == 8)) {
16276 
16277 					tx_lpf_bw_ofdm_20mhz = 4;
16278 					tx_lpf_bw_11b = 1;
16279 
16280 					if (CHSPEC_IS2G(pi->radio_chanspec)) {
16281 						rccal_tx20_11n_bcap = 0xc;
16282 						rccal_tx20_11n_scap = 0xc;
16283 						rccal_tx40_11n_bcap = 0xa;
16284 						rccal_tx40_11n_scap = 0xa;
16285 					} else {
16286 						rccal_tx20_11n_bcap = 0x14;
16287 						rccal_tx20_11n_scap = 0x14;
16288 						rccal_tx40_11n_bcap = 0xf;
16289 						rccal_tx40_11n_scap = 0xf;
16290 					}
16291 
16292 					rccal_ovrd = true;
16293 				}
16294 			}
16295 
16296 		} else {
16297 
16298 			if (pi->pubpi.radiorev == 5) {
16299 
16300 				tx_lpf_bw_ofdm_20mhz = 1;
16301 				tx_lpf_bw_ofdm_40mhz = 3;
16302 
16303 				rccal_bcap_val =
16304 					read_radio_reg(
16305 						pi,
16306 						RADIO_2057_RCCAL_BCAP_VAL);
16307 				rccal_scap_val =
16308 					read_radio_reg(
16309 						pi,
16310 						RADIO_2057_RCCAL_SCAP_VAL);
16311 
16312 				rccal_tx20_11b_bcap = rccal_bcap_val;
16313 				rccal_tx20_11b_scap = rccal_scap_val;
16314 
16315 				rccal_tx20_11n_bcap = 0x13;
16316 				rccal_tx20_11n_scap = 0x11;
16317 				rccal_tx40_11n_bcap = 0x13;
16318 				rccal_tx40_11n_scap = 0x11;
16319 
16320 				rccal_ovrd = true;
16321 			}
16322 		}
16323 
16324 		if (rccal_ovrd) {
16325 
16326 			rx2tx_lpf_rc_lut_tx20_11b =
16327 				(rccal_tx20_11b_bcap << 8) |
16328 				(rccal_tx20_11b_scap << 3) |
16329 				tx_lpf_bw_11b;
16330 			rx2tx_lpf_rc_lut_tx20_11n =
16331 				(rccal_tx20_11n_bcap << 8) |
16332 				(rccal_tx20_11n_scap << 3) |
16333 				tx_lpf_bw_ofdm_20mhz;
16334 			rx2tx_lpf_rc_lut_tx40_11n =
16335 				(rccal_tx40_11n_bcap << 8) |
16336 				(rccal_tx40_11n_scap << 3) |
16337 				tx_lpf_bw_ofdm_40mhz;
16338 
16339 			for (coreNum = 0; coreNum <= 1; coreNum++) {
16340 				wlc_phy_table_write_nphy(
16341 					pi, NPHY_TBL_ID_RFSEQ,
16342 					1,
16343 					0x152 + coreNum * 0x10,
16344 					16,
16345 					&rx2tx_lpf_rc_lut_tx20_11b);
16346 				wlc_phy_table_write_nphy(
16347 					pi, NPHY_TBL_ID_RFSEQ,
16348 					1,
16349 					0x153 + coreNum * 0x10,
16350 					16,
16351 					&rx2tx_lpf_rc_lut_tx20_11n);
16352 				wlc_phy_table_write_nphy(
16353 					pi, NPHY_TBL_ID_RFSEQ,
16354 					1,
16355 					0x154 + coreNum * 0x10,
16356 					16,
16357 					&rx2tx_lpf_rc_lut_tx20_11n);
16358 				wlc_phy_table_write_nphy(
16359 					pi, NPHY_TBL_ID_RFSEQ,
16360 					1,
16361 					0x155 + coreNum * 0x10,
16362 					16,
16363 					&rx2tx_lpf_rc_lut_tx40_11n);
16364 				wlc_phy_table_write_nphy(
16365 					pi, NPHY_TBL_ID_RFSEQ,
16366 					1,
16367 					0x156 + coreNum * 0x10,
16368 					16,
16369 					&rx2tx_lpf_rc_lut_tx40_11n);
16370 				wlc_phy_table_write_nphy(
16371 					pi, NPHY_TBL_ID_RFSEQ,
16372 					1,
16373 					0x157 + coreNum * 0x10,
16374 					16,
16375 					&rx2tx_lpf_rc_lut_tx40_11n);
16376 				wlc_phy_table_write_nphy(
16377 					pi, NPHY_TBL_ID_RFSEQ,
16378 					1,
16379 					0x158 + coreNum * 0x10,
16380 					16,
16381 					&rx2tx_lpf_rc_lut_tx40_11n);
16382 				wlc_phy_table_write_nphy(
16383 					pi, NPHY_TBL_ID_RFSEQ,
16384 					1,
16385 					0x159 + coreNum * 0x10,
16386 					16,
16387 					&rx2tx_lpf_rc_lut_tx40_11n);
16388 			}
16389 
16390 			wlc_phy_rfctrl_override_nphy_rev7(
16391 				pi, (0x1 << 4),
16392 				1, 0x3, 0,
16393 				NPHY_REV7_RFCTRLOVERRIDE_ID2);
16394 		}
16395 
16396 		write_phy_reg(pi, 0x32f, 0x3);
16397 
16398 		if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16399 			wlc_phy_rfctrl_override_nphy_rev7(
16400 				pi, (0x1 << 2),
16401 				1, 0x3, 0,
16402 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
16403 
16404 		if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16405 		    (pi->pubpi.radiorev == 6)) {
16406 			if ((pi->sh->sromrev >= 8)
16407 			    && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16408 				ipalvlshift_3p3_war_en = 1;
16409 
16410 			if (ipalvlshift_3p3_war_en) {
16411 				write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
16412 						0x5);
16413 				write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
16414 						0x30);
16415 				write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
16416 				or_radio_reg(pi,
16417 					     RADIO_2057_RXTXBIAS_CONFIG_CORE0,
16418 					     0x1);
16419 				or_radio_reg(pi,
16420 					     RADIO_2057_RXTXBIAS_CONFIG_CORE1,
16421 					     0x1);
16422 
16423 				ipa2g_mainbias = 0x1f;
16424 
16425 				ipa2g_casconv = 0x6f;
16426 
16427 				ipa2g_biasfilt = 0xaa;
16428 			} else {
16429 
16430 				ipa2g_mainbias = 0x2b;
16431 
16432 				ipa2g_casconv = 0x7f;
16433 
16434 				ipa2g_biasfilt = 0xee;
16435 			}
16436 
16437 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
16438 				for (coreNum = 0; coreNum <= 1; coreNum++) {
16439 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16440 							 coreNum, IPA2G_IMAIN,
16441 							 ipa2g_mainbias);
16442 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16443 							 coreNum, IPA2G_CASCONV,
16444 							 ipa2g_casconv);
16445 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16446 							 coreNum,
16447 							 IPA2G_BIAS_FILTER,
16448 							 ipa2g_biasfilt);
16449 				}
16450 			}
16451 		}
16452 
16453 		if (PHY_IPA(pi)) {
16454 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
16455 				if ((pi->pubpi.radiorev == 3)
16456 				    || (pi->pubpi.radiorev == 4)
16457 				    || (pi->pubpi.radiorev == 6))
16458 					txgm_idac_bleed = 0x7f;
16459 
16460 				for (coreNum = 0; coreNum <= 1; coreNum++) {
16461 					if (txgm_idac_bleed != 0)
16462 						WRITE_RADIO_REG4(
16463 							pi, RADIO_2057,
16464 							CORE, coreNum,
16465 							TXGM_IDAC_BLEED,
16466 							txgm_idac_bleed);
16467 				}
16468 
16469 				if (pi->pubpi.radiorev == 5) {
16470 
16471 					for (coreNum = 0; coreNum <= 1;
16472 					     coreNum++) {
16473 						WRITE_RADIO_REG4(pi, RADIO_2057,
16474 								 CORE, coreNum,
16475 								 IPA2G_CASCONV,
16476 								 0x13);
16477 						WRITE_RADIO_REG4(pi, RADIO_2057,
16478 								 CORE, coreNum,
16479 								 IPA2G_IMAIN,
16480 								 0x1f);
16481 						WRITE_RADIO_REG4(
16482 							pi, RADIO_2057,
16483 							CORE, coreNum,
16484 							IPA2G_BIAS_FILTER,
16485 							0xee);
16486 						WRITE_RADIO_REG4(pi, RADIO_2057,
16487 								 CORE, coreNum,
16488 								 PAD2G_IDACS,
16489 								 0x8a);
16490 						WRITE_RADIO_REG4(
16491 							pi, RADIO_2057,
16492 							CORE, coreNum,
16493 							PAD_BIAS_FILTER_BWS,
16494 							0x3e);
16495 					}
16496 
16497 				} else if ((pi->pubpi.radiorev == 7)
16498 					   || (pi->pubpi.radiorev == 8)) {
16499 
16500 					if (CHSPEC_IS40(pi->radio_chanspec) ==
16501 					    0) {
16502 						WRITE_RADIO_REG4(pi, RADIO_2057,
16503 								 CORE, 0,
16504 								 IPA2G_IMAIN,
16505 								 0x14);
16506 						WRITE_RADIO_REG4(pi, RADIO_2057,
16507 								 CORE, 1,
16508 								 IPA2G_IMAIN,
16509 								 0x12);
16510 					} else {
16511 						WRITE_RADIO_REG4(pi, RADIO_2057,
16512 								 CORE, 0,
16513 								 IPA2G_IMAIN,
16514 								 0x16);
16515 						WRITE_RADIO_REG4(pi, RADIO_2057,
16516 								 CORE, 1,
16517 								 IPA2G_IMAIN,
16518 								 0x16);
16519 					}
16520 				}
16521 
16522 			} else {
16523 				freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
16524 							pi->radio_chanspec));
16525 				if (((freq >= 5180) && (freq <= 5230))
16526 				    || ((freq >= 5745) && (freq <= 5805))) {
16527 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16528 							 0, IPA5G_BIAS_FILTER,
16529 							 0xff);
16530 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16531 							 1, IPA5G_BIAS_FILTER,
16532 							 0xff);
16533 				}
16534 			}
16535 		} else {
16536 
16537 			if (pi->pubpi.radiorev != 5) {
16538 				for (coreNum = 0; coreNum <= 1; coreNum++) {
16539 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16540 							 coreNum,
16541 							 TXMIX2G_TUNE_BOOST_PU,
16542 							 0x61);
16543 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16544 							 coreNum,
16545 							 TXGM_IDAC_BLEED, 0x70);
16546 				}
16547 			}
16548 		}
16549 
16550 		if (pi->pubpi.radiorev == 4) {
16551 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16552 						 0x05, 16,
16553 						 &afectrl_adc_ctrl1_rev7);
16554 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16555 						 0x15, 16,
16556 						 &afectrl_adc_ctrl1_rev7);
16557 
16558 			for (coreNum = 0; coreNum <= 1; coreNum++) {
16559 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16560 						 AFE_VCM_CAL_MASTER, 0x0);
16561 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16562 						 AFE_SET_VCM_I, 0x3f);
16563 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16564 						 AFE_SET_VCM_Q, 0x3f);
16565 			}
16566 		} else {
16567 			mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16568 			mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16569 			mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16570 			mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16571 
16572 			mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16573 			mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16574 			mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16575 			mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16576 
16577 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16578 						 0x05, 16,
16579 						 &afectrl_adc_ctrl2_rev7);
16580 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16581 						 0x15, 16,
16582 						 &afectrl_adc_ctrl2_rev7);
16583 
16584 			mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16585 			mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16586 			mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16587 			mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16588 		}
16589 
16590 		write_phy_reg(pi, 0x6a, 0x2);
16591 
16592 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
16593 					 &min_nvar_offset_6mbps);
16594 
16595 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16596 					 &rfseq_pktgn_lpf_hpc_rev7);
16597 
16598 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16599 					 &rfseq_pktgn_lpf_h_hpc_rev7);
16600 
16601 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16602 					 &rfseq_htpktgn_lpf_hpc_rev7);
16603 
16604 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16605 					 &rfseq_cckpktgn_lpf_hpc_rev7);
16606 
16607 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16608 					 &rfseq_tx2rx_lpf_h_hpc_rev7);
16609 
16610 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16611 					 &rfseq_rx2tx_lpf_h_hpc_rev7);
16612 
16613 		if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16614 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16615 						 32, &min_nvar_val);
16616 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16617 						 127, 32, &min_nvar_val);
16618 		} else {
16619 			min_nvar_val = noise_var_tbl_rev7[3];
16620 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16621 						 32, &min_nvar_val);
16622 
16623 			min_nvar_val = noise_var_tbl_rev7[127];
16624 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16625 						 127, 32, &min_nvar_val);
16626 		}
16627 
16628 		wlc_phy_workarounds_nphy_gainctrl(pi);
16629 
16630 		pdetrange =
16631 			(CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16632 			pdetrange : pi->srom_fem2g.pdetrange;
16633 
16634 		if (pdetrange == 0) {
16635 			chan_freq_range =
16636 				wlc_phy_get_chan_freq_range_nphy(pi, 0);
16637 			if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16638 				aux_adc_vmid_rev7_core0[3] = 0x70;
16639 				aux_adc_vmid_rev7_core1[3] = 0x70;
16640 				aux_adc_gain_rev7[3] = 2;
16641 			} else {
16642 				aux_adc_vmid_rev7_core0[3] = 0x80;
16643 				aux_adc_vmid_rev7_core1[3] = 0x80;
16644 				aux_adc_gain_rev7[3] = 3;
16645 			}
16646 		} else if (pdetrange == 1) {
16647 			if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16648 				aux_adc_vmid_rev7_core0[3] = 0x7c;
16649 				aux_adc_vmid_rev7_core1[3] = 0x7c;
16650 				aux_adc_gain_rev7[3] = 2;
16651 			} else {
16652 				aux_adc_vmid_rev7_core0[3] = 0x8c;
16653 				aux_adc_vmid_rev7_core1[3] = 0x8c;
16654 				aux_adc_gain_rev7[3] = 1;
16655 			}
16656 		} else if (pdetrange == 2) {
16657 			if (pi->pubpi.radioid == BCM2057_ID) {
16658 				if ((pi->pubpi.radiorev == 5)
16659 				    || (pi->pubpi.radiorev == 7)
16660 				    || (pi->pubpi.radiorev == 8)) {
16661 					if (chan_freq_range ==
16662 					    WL_CHAN_FREQ_RANGE_2G) {
16663 						aux_adc_vmid_rev7_core0[3] =
16664 							0x8c;
16665 						aux_adc_vmid_rev7_core1[3] =
16666 							0x8c;
16667 						aux_adc_gain_rev7[3] = 0;
16668 					} else {
16669 						aux_adc_vmid_rev7_core0[3] =
16670 							0x96;
16671 						aux_adc_vmid_rev7_core1[3] =
16672 							0x96;
16673 						aux_adc_gain_rev7[3] = 0;
16674 					}
16675 				}
16676 			}
16677 
16678 		} else if (pdetrange == 3) {
16679 			if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16680 				aux_adc_vmid_rev7_core0[3] = 0x89;
16681 				aux_adc_vmid_rev7_core1[3] = 0x89;
16682 				aux_adc_gain_rev7[3] = 0;
16683 			}
16684 
16685 		} else if (pdetrange == 5) {
16686 
16687 			if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16688 				aux_adc_vmid_rev7_core0[3] = 0x80;
16689 				aux_adc_vmid_rev7_core1[3] = 0x80;
16690 				aux_adc_gain_rev7[3] = 3;
16691 			} else {
16692 				aux_adc_vmid_rev7_core0[3] = 0x70;
16693 				aux_adc_vmid_rev7_core1[3] = 0x70;
16694 				aux_adc_gain_rev7[3] = 2;
16695 			}
16696 		}
16697 
16698 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
16699 					 &aux_adc_vmid_rev7_core0);
16700 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
16701 					 &aux_adc_vmid_rev7_core1);
16702 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
16703 					 &aux_adc_gain_rev7);
16704 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
16705 					 &aux_adc_gain_rev7);
16706 
16707 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16708 
16709 		write_phy_reg(pi, 0x23f, 0x1f8);
16710 		write_phy_reg(pi, 0x240, 0x1f8);
16711 
16712 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16713 					1, 0, 32, &leg_data_weights);
16714 		leg_data_weights = leg_data_weights & 0xffffff;
16715 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16716 					 1, 0, 32, &leg_data_weights);
16717 
16718 		alpha0 = 293;
16719 		alpha1 = 435;
16720 		alpha2 = 261;
16721 		beta0 = 366;
16722 		beta1 = 205;
16723 		beta2 = 32;
16724 		write_phy_reg(pi, 0x145, alpha0);
16725 		write_phy_reg(pi, 0x146, alpha1);
16726 		write_phy_reg(pi, 0x147, alpha2);
16727 		write_phy_reg(pi, 0x148, beta0);
16728 		write_phy_reg(pi, 0x149, beta1);
16729 		write_phy_reg(pi, 0x14a, beta2);
16730 
16731 		write_phy_reg(pi, 0x38, 0xC);
16732 		write_phy_reg(pi, 0x2ae, 0xC);
16733 
16734 		wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16735 				       rfseq_tx2rx_events_rev3,
16736 				       rfseq_tx2rx_dlys_rev3,
16737 				       ARRAY_SIZE(rfseq_tx2rx_events_rev3));
16738 
16739 		if (PHY_IPA(pi))
16740 			wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16741 					       rfseq_rx2tx_events_rev3_ipa,
16742 					       rfseq_rx2tx_dlys_rev3_ipa,
16743 					       ARRAY_SIZE(rfseq_rx2tx_events_rev3_ipa));
16744 
16745 		if ((pi->sh->hw_phyrxchain != 0x3) &&
16746 		    (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16747 
16748 			if (PHY_IPA(pi)) {
16749 				rfseq_rx2tx_dlys_rev3[5] = 59;
16750 				rfseq_rx2tx_dlys_rev3[6] = 1;
16751 				rfseq_rx2tx_events_rev3[7] =
16752 					NPHY_REV3_RFSEQ_CMD_END;
16753 			}
16754 
16755 			wlc_phy_set_rfseq_nphy(
16756 				pi, NPHY_RFSEQ_RX2TX,
16757 				rfseq_rx2tx_events_rev3,
16758 				rfseq_rx2tx_dlys_rev3,
16759 				ARRAY_SIZE(rfseq_rx2tx_events_rev3));
16760 		}
16761 
16762 		if (CHSPEC_IS2G(pi->radio_chanspec))
16763 			write_phy_reg(pi, 0x6a, 0x2);
16764 		else
16765 			write_phy_reg(pi, 0x6a, 0x9c40);
16766 
16767 		mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16768 
16769 		if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16770 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16771 						 32, &min_nvar_val);
16772 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16773 						 127, 32, &min_nvar_val);
16774 		} else {
16775 			min_nvar_val = noise_var_tbl_rev3[3];
16776 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16777 						 32, &min_nvar_val);
16778 
16779 			min_nvar_val = noise_var_tbl_rev3[127];
16780 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16781 						 127, 32, &min_nvar_val);
16782 		}
16783 
16784 		wlc_phy_workarounds_nphy_gainctrl(pi);
16785 
16786 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16787 					 &dac_control);
16788 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16789 					 &dac_control);
16790 
16791 		pdetrange =
16792 			(CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16793 			pdetrange : pi->srom_fem2g.pdetrange;
16794 
16795 		if (pdetrange == 0) {
16796 			if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16797 				aux_adc_vmid = aux_adc_vmid_rev4;
16798 				aux_adc_gain = aux_adc_gain_rev4;
16799 			} else {
16800 				aux_adc_vmid = aux_adc_vmid_rev3;
16801 				aux_adc_gain = aux_adc_gain_rev3;
16802 			}
16803 			chan_freq_range =
16804 				wlc_phy_get_chan_freq_range_nphy(pi, 0);
16805 			if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16806 				switch (chan_freq_range) {
16807 				case WL_CHAN_FREQ_RANGE_5GL:
16808 					aux_adc_vmid[3] = 0x89;
16809 					aux_adc_gain[3] = 0;
16810 					break;
16811 				case WL_CHAN_FREQ_RANGE_5GM:
16812 					aux_adc_vmid[3] = 0x89;
16813 					aux_adc_gain[3] = 0;
16814 					break;
16815 				case WL_CHAN_FREQ_RANGE_5GH:
16816 					aux_adc_vmid[3] = 0x89;
16817 					aux_adc_gain[3] = 0;
16818 					break;
16819 				default:
16820 					break;
16821 				}
16822 			}
16823 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16824 						 0x08, 16, aux_adc_vmid);
16825 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16826 						 0x18, 16, aux_adc_vmid);
16827 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16828 						 0x0c, 16, aux_adc_gain);
16829 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16830 						 0x1c, 16, aux_adc_gain);
16831 		} else if (pdetrange == 1) {
16832 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16833 						 0x08, 16, sk_adc_vmid);
16834 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16835 						 0x18, 16, sk_adc_vmid);
16836 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16837 						 0x0c, 16, sk_adc_gain);
16838 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16839 						 0x1c, 16, sk_adc_gain);
16840 		} else if (pdetrange == 2) {
16841 
16842 			u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16843 			u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16844 
16845 			if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16846 				chan_freq_range =
16847 					wlc_phy_get_chan_freq_range_nphy(pi, 0);
16848 				if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16849 					bcm_adc_vmid[3] = 0x8e;
16850 					bcm_adc_gain[3] = 0x03;
16851 				} else {
16852 					bcm_adc_vmid[3] = 0x94;
16853 					bcm_adc_gain[3] = 0x03;
16854 				}
16855 			} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16856 				bcm_adc_vmid[3] = 0x84;
16857 				bcm_adc_gain[3] = 0x02;
16858 			}
16859 
16860 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16861 						 0x08, 16, bcm_adc_vmid);
16862 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16863 						 0x18, 16, bcm_adc_vmid);
16864 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16865 						 0x0c, 16, bcm_adc_gain);
16866 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16867 						 0x1c, 16, bcm_adc_gain);
16868 		} else if (pdetrange == 3) {
16869 			chan_freq_range =
16870 				wlc_phy_get_chan_freq_range_nphy(pi, 0);
16871 			if ((NREV_GE(pi->pubpi.phy_rev, 4))
16872 			    && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16873 
16874 				u16 auxadc_vmid[] = {
16875 					0xa2, 0xb4, 0xb4, 0x270
16876 				};
16877 				u16 auxadc_gain[] = {
16878 					0x02, 0x02, 0x02, 0x00
16879 				};
16880 
16881 				wlc_phy_table_write_nphy(pi,
16882 							 NPHY_TBL_ID_AFECTRL, 4,
16883 							 0x08, 16, auxadc_vmid);
16884 				wlc_phy_table_write_nphy(pi,
16885 							 NPHY_TBL_ID_AFECTRL, 4,
16886 							 0x18, 16, auxadc_vmid);
16887 				wlc_phy_table_write_nphy(pi,
16888 							 NPHY_TBL_ID_AFECTRL, 4,
16889 							 0x0c, 16, auxadc_gain);
16890 				wlc_phy_table_write_nphy(pi,
16891 							 NPHY_TBL_ID_AFECTRL, 4,
16892 							 0x1c, 16, auxadc_gain);
16893 			}
16894 		} else if ((pdetrange == 4) || (pdetrange == 5)) {
16895 			u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16896 			u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16897 			u16 Vmid[2], Av[2];
16898 
16899 			chan_freq_range =
16900 				wlc_phy_get_chan_freq_range_nphy(pi, 0);
16901 			if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16902 				Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16903 				Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16904 				Av[0] = (pdetrange == 4) ? 2 : 0;
16905 				Av[1] = (pdetrange == 4) ? 2 : 0;
16906 			} else {
16907 				Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16908 				Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16909 				Av[0] = (pdetrange == 4) ? 2 : 0;
16910 				Av[1] = (pdetrange == 4) ? 2 : 0;
16911 			}
16912 
16913 			bcm_adc_vmid[3] = Vmid[0];
16914 			bcm_adc_gain[3] = Av[0];
16915 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16916 						 0x08, 16, bcm_adc_vmid);
16917 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16918 						 0x0c, 16, bcm_adc_gain);
16919 
16920 			bcm_adc_vmid[3] = Vmid[1];
16921 			bcm_adc_gain[3] = Av[1];
16922 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16923 						 0x18, 16, bcm_adc_vmid);
16924 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16925 						 0x1c, 16, bcm_adc_gain);
16926 		}
16927 
16928 		write_radio_reg(pi,
16929 				(RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16930 				0x0);
16931 		write_radio_reg(pi,
16932 				(RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16933 				0x0);
16934 
16935 		write_radio_reg(pi,
16936 				(RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16937 				0x6);
16938 		write_radio_reg(pi,
16939 				(RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16940 				0x6);
16941 
16942 		write_radio_reg(pi,
16943 				(RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16944 				0x7);
16945 		write_radio_reg(pi,
16946 				(RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16947 				0x7);
16948 
16949 		write_radio_reg(pi,
16950 				(RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16951 				0x88);
16952 		write_radio_reg(pi,
16953 				(RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16954 				0x88);
16955 
16956 		write_radio_reg(pi,
16957 				(RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16958 				0x0);
16959 		write_radio_reg(pi,
16960 				(RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16961 				0x0);
16962 
16963 		write_radio_reg(pi,
16964 				(RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16965 				0x0);
16966 		write_radio_reg(pi,
16967 				(RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16968 				0x0);
16969 
16970 		triso =
16971 			(CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16972 			triso : pi->srom_fem2g.triso;
16973 		if (triso == 7) {
16974 			wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16975 			wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16976 		}
16977 
16978 		wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16979 
16980 		if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16981 		     (CHSPEC_IS5G(pi->radio_chanspec))) ||
16982 		    (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16983 		      (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16984 		     (CHSPEC_IS2G(pi->radio_chanspec)))) {
16985 			nss1_data_weights = 0x00088888;
16986 			ht_data_weights = 0x00088888;
16987 			stbc_data_weights = 0x00088888;
16988 		} else {
16989 			nss1_data_weights = 0x88888888;
16990 			ht_data_weights = 0x88888888;
16991 			stbc_data_weights = 0x88888888;
16992 		}
16993 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16994 					 1, 1, 32, &nss1_data_weights);
16995 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16996 					 1, 2, 32, &ht_data_weights);
16997 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16998 					 1, 3, 32, &stbc_data_weights);
16999 
17000 		if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17001 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
17002 				write_radio_reg(pi,
17003 						RADIO_2056_TX_GMBB_IDAC |
17004 						RADIO_2056_TX0, 0x70);
17005 				write_radio_reg(pi,
17006 						RADIO_2056_TX_GMBB_IDAC |
17007 						RADIO_2056_TX1, 0x70);
17008 			}
17009 		}
17010 
17011 		if (!pi->edcrs_threshold_lock) {
17012 			write_phy_reg(pi, 0x224, 0x3eb);
17013 			write_phy_reg(pi, 0x225, 0x3eb);
17014 			write_phy_reg(pi, 0x226, 0x341);
17015 			write_phy_reg(pi, 0x227, 0x341);
17016 			write_phy_reg(pi, 0x228, 0x42b);
17017 			write_phy_reg(pi, 0x229, 0x42b);
17018 			write_phy_reg(pi, 0x22a, 0x381);
17019 			write_phy_reg(pi, 0x22b, 0x381);
17020 			write_phy_reg(pi, 0x22c, 0x42b);
17021 			write_phy_reg(pi, 0x22d, 0x42b);
17022 			write_phy_reg(pi, 0x22e, 0x381);
17023 			write_phy_reg(pi, 0x22f, 0x381);
17024 		}
17025 
17026 		if (NREV_GE(pi->pubpi.phy_rev, 6)) {
17027 
17028 			if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
17029 				wlapi_bmac_mhf(pi->sh->physhim, MHF4,
17030 					      MHF4_BPHY_TXCORE0,
17031 					      MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
17032 		}
17033 	} else {
17034 
17035 		if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
17036 		    (pi->sh->boardtype == 0x8b)) {
17037 			uint i;
17038 			u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
17039 			for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
17040 				rfseq_rx2tx_dlys[i] = war_dlys[i];
17041 		}
17042 
17043 		if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
17044 			and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
17045 			and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
17046 		} else {
17047 			or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
17048 			or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
17049 		}
17050 
17051 		regval = 0x000a;
17052 		wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
17053 		wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
17054 
17055 		if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17056 			regval = 0xcdaa;
17057 			wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
17058 			wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
17059 		}
17060 
17061 		if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17062 			regval = 0x0000;
17063 			wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
17064 			wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
17065 
17066 			regval = 0x7aab;
17067 			wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
17068 			wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
17069 
17070 			regval = 0x0800;
17071 			wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
17072 			wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
17073 		}
17074 
17075 		write_phy_reg(pi, 0xf8, 0x02d8);
17076 		write_phy_reg(pi, 0xf9, 0x0301);
17077 		write_phy_reg(pi, 0xfa, 0x02d8);
17078 		write_phy_reg(pi, 0xfb, 0x0301);
17079 
17080 		wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
17081 				       rfseq_rx2tx_dlys,
17082 				       ARRAY_SIZE(rfseq_rx2tx_events));
17083 
17084 		wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
17085 				       rfseq_tx2rx_dlys,
17086 				       ARRAY_SIZE(rfseq_tx2rx_events));
17087 
17088 		wlc_phy_workarounds_nphy_gainctrl(pi);
17089 
17090 		if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17091 
17092 			if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
17093 				wlapi_bmac_mhf(pi->sh->physhim, MHF3,
17094 					       MHF3_NPHY_MLADV_WAR,
17095 					       MHF3_NPHY_MLADV_WAR,
17096 					       BRCM_BAND_ALL);
17097 
17098 		} else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
17099 			write_phy_reg(pi, 0x1e3, 0x0);
17100 			write_phy_reg(pi, 0x1e4, 0x0);
17101 		}
17102 
17103 		if (NREV_LT(pi->pubpi.phy_rev, 2))
17104 			mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17105 
17106 		alpha0 = 293;
17107 		alpha1 = 435;
17108 		alpha2 = 261;
17109 		beta0 = 366;
17110 		beta1 = 205;
17111 		beta2 = 32;
17112 		write_phy_reg(pi, 0x145, alpha0);
17113 		write_phy_reg(pi, 0x146, alpha1);
17114 		write_phy_reg(pi, 0x147, alpha2);
17115 		write_phy_reg(pi, 0x148, beta0);
17116 		write_phy_reg(pi, 0x149, beta1);
17117 		write_phy_reg(pi, 0x14a, beta2);
17118 
17119 		if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17120 			mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17121 
17122 			write_phy_reg(pi, 0x192, 0xb5);
17123 			write_phy_reg(pi, 0x193, 0xa4);
17124 			write_phy_reg(pi, 0x194, 0x0);
17125 		}
17126 
17127 		if (NREV_IS(pi->pubpi.phy_rev, 2))
17128 			mod_phy_reg(pi, 0x221,
17129 				    NPHY_FORCESIG_DECODEGATEDCLKS,
17130 				    NPHY_FORCESIG_DECODEGATEDCLKS);
17131 	}
17132 
17133 	if (pi->phyhang_avoid)
17134 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
17135 }
17136 
17137 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17138 {
17139 	int j, type = 2;
17140 	u16 addr_offset = 0x2c5;
17141 
17142 	for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17143 		write_phy_reg(pi, addr_offset + j,
17144 			      NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17145 }
17146 
17147 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17148 {
17149 
17150 	if (write == 0) {
17151 		vals[0] = read_phy_reg(pi, 0x2c);
17152 		vals[1] = read_phy_reg(pi, 0x42);
17153 	} else {
17154 		write_phy_reg(pi, 0x2c, vals[0]);
17155 		write_phy_reg(pi, 0x42, vals[1]);
17156 	}
17157 }
17158 
17159 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17160 {
17161 	u8 core;
17162 
17163 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17164 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17165 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
17166 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17167 						 TX_SSI_MASTER, 0x5);
17168 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17169 						 TX_SSI_MUX, 0xe);
17170 
17171 				if (pi->pubpi.radiorev != 5)
17172 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17173 							 core, TSSIA, 0);
17174 
17175 				if (!NREV_IS(pi->pubpi.phy_rev, 7))
17176 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17177 							 core, TSSIG, 0x1);
17178 				else
17179 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17180 							 core, TSSIG, 0x31);
17181 			} else {
17182 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17183 						 TX_SSI_MASTER, 0x9);
17184 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17185 						 TX_SSI_MUX, 0xc);
17186 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17187 						 TSSIG, 0);
17188 
17189 				if (pi->pubpi.radiorev != 5) {
17190 					if (!NREV_IS(pi->pubpi.phy_rev, 7))
17191 						WRITE_RADIO_REG3(pi, RADIO_2057,
17192 								 TX, core,
17193 								 TSSIA, 0x1);
17194 					else
17195 						WRITE_RADIO_REG3(pi, RADIO_2057,
17196 								 TX, core,
17197 								 TSSIA, 0x31);
17198 				}
17199 			}
17200 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17201 					 0);
17202 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17203 					 0);
17204 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17205 					 0x3);
17206 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17207 					 0x0);
17208 		}
17209 	} else {
17210 		WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17211 				(CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17212 				0x80);
17213 		WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17214 		WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17215 
17216 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17217 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17218 					 0x0);
17219 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17220 					 0x0);
17221 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17222 					 0x3);
17223 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17224 					 0x0);
17225 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17226 					 0x8);
17227 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17228 					 0x0);
17229 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17230 					 0x0);
17231 
17232 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
17233 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17234 						 TX_SSI_MASTER, 0x5);
17235 
17236 				if (pi->pubpi.radiorev != 5)
17237 					WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17238 							 core, TSSIA, 0x0);
17239 				if (NREV_GE(pi->pubpi.phy_rev, 5))
17240 					WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17241 							 core, TSSIG, 0x31);
17242 				else
17243 					WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17244 							 core, TSSIG, 0x11);
17245 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17246 						 TX_SSI_MUX, 0xe);
17247 			} else {
17248 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17249 						 TX_SSI_MASTER, 0x9);
17250 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17251 						 TSSIA, 0x31);
17252 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17253 						 TSSIG, 0x0);
17254 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17255 						 TX_SSI_MUX, 0xc);
17256 			}
17257 		}
17258 	}
17259 }
17260 
17261 static void
17262 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17263 			     u8 core_mask, u8 off)
17264 {
17265 	u8 core_num;
17266 	u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17267 		0, val_mask = 0;
17268 	u8 shift = 0, val_shift = 0;
17269 
17270 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17271 
17272 		en_mask = field;
17273 		for (core_num = 0; core_num < 2; core_num++) {
17274 
17275 			switch (field) {
17276 			case (0x1 << 1):
17277 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17278 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17279 				val_mask = (0x1 << 0);
17280 				val_shift = 0;
17281 				break;
17282 			case (0x1 << 2):
17283 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17284 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17285 				val_mask = (0x1 << 1);
17286 				val_shift = 1;
17287 				break;
17288 			case (0x1 << 3):
17289 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17290 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17291 				val_mask = (0x1 << 2);
17292 				val_shift = 2;
17293 				break;
17294 			case (0x1 << 4):
17295 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17296 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17297 				val_mask = (0x1 << 4);
17298 				val_shift = 4;
17299 				break;
17300 			case (0x1 << 5):
17301 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17302 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17303 				val_mask = (0x1 << 5);
17304 				val_shift = 5;
17305 				break;
17306 			case (0x1 << 6):
17307 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17308 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17309 				val_mask = (0x1 << 6);
17310 				val_shift = 6;
17311 				break;
17312 			case (0x1 << 7):
17313 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17314 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17315 				val_mask = (0x1 << 7);
17316 				val_shift = 7;
17317 				break;
17318 			case (0x1 << 8):
17319 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17320 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17321 				val_mask = (0x7 << 8);
17322 				val_shift = 8;
17323 				break;
17324 			case (0x1 << 11):
17325 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17326 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17327 				val_mask = (0x7 << 13);
17328 				val_shift = 13;
17329 				break;
17330 
17331 			case (0x1 << 9):
17332 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17333 				val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17334 				val_mask = (0x7 << 0);
17335 				val_shift = 0;
17336 				break;
17337 
17338 			case (0x1 << 10):
17339 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17340 				val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17341 				val_mask = (0x7 << 4);
17342 				val_shift = 4;
17343 				break;
17344 
17345 			case (0x1 << 12):
17346 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17347 				val_addr = (core_num == 0) ? 0x7b : 0x7e;
17348 				val_mask = (0xffff << 0);
17349 				val_shift = 0;
17350 				break;
17351 			case (0x1 << 13):
17352 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17353 				val_addr = (core_num == 0) ? 0x7c : 0x7f;
17354 				val_mask = (0xffff << 0);
17355 				val_shift = 0;
17356 				break;
17357 			case (0x1 << 14):
17358 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17359 				val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17360 				val_mask = (0x3 << 6);
17361 				val_shift = 6;
17362 				break;
17363 			case (0x1 << 0):
17364 				en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17365 				val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17366 				val_mask = (0x1 << 15);
17367 				val_shift = 15;
17368 				break;
17369 			default:
17370 				addr = 0xffff;
17371 				break;
17372 			}
17373 
17374 			if (off) {
17375 				and_phy_reg(pi, en_addr, ~en_mask);
17376 				and_phy_reg(pi, val_addr, ~val_mask);
17377 			} else {
17378 
17379 				if ((core_mask == 0)
17380 				    || (core_mask & (1 << core_num))) {
17381 					or_phy_reg(pi, en_addr, en_mask);
17382 
17383 					if (addr != 0xffff)
17384 						mod_phy_reg(pi, val_addr,
17385 							    val_mask,
17386 							    (value <<
17387 							     val_shift));
17388 				}
17389 			}
17390 		}
17391 	} else {
17392 
17393 		if (off) {
17394 			and_phy_reg(pi, 0xec, ~field);
17395 			value = 0x0;
17396 		} else {
17397 			or_phy_reg(pi, 0xec, field);
17398 		}
17399 
17400 		for (core_num = 0; core_num < 2; core_num++) {
17401 
17402 			switch (field) {
17403 			case (0x1 << 1):
17404 			case (0x1 << 9):
17405 			case (0x1 << 12):
17406 			case (0x1 << 13):
17407 			case (0x1 << 14):
17408 				addr = 0x78;
17409 
17410 				core_mask = 0x1;
17411 				break;
17412 			case (0x1 << 2):
17413 			case (0x1 << 3):
17414 			case (0x1 << 4):
17415 			case (0x1 << 5):
17416 			case (0x1 << 6):
17417 			case (0x1 << 7):
17418 			case (0x1 << 8):
17419 				addr = (core_num == 0) ? 0x7a : 0x7d;
17420 				break;
17421 			case (0x1 << 10):
17422 				addr = (core_num == 0) ? 0x7b : 0x7e;
17423 				break;
17424 			case (0x1 << 11):
17425 				addr = (core_num == 0) ? 0x7c : 0x7f;
17426 				break;
17427 			default:
17428 				addr = 0xffff;
17429 			}
17430 
17431 			switch (field) {
17432 			case (0x1 << 1):
17433 				mask = (0x7 << 3);
17434 				shift = 3;
17435 				break;
17436 			case (0x1 << 9):
17437 				mask = (0x1 << 2);
17438 				shift = 2;
17439 				break;
17440 			case (0x1 << 12):
17441 				mask = (0x1 << 8);
17442 				shift = 8;
17443 				break;
17444 			case (0x1 << 13):
17445 				mask = (0x1 << 9);
17446 				shift = 9;
17447 				break;
17448 			case (0x1 << 14):
17449 				mask = (0xf << 12);
17450 				shift = 12;
17451 				break;
17452 			case (0x1 << 2):
17453 				mask = (0x1 << 0);
17454 				shift = 0;
17455 				break;
17456 			case (0x1 << 3):
17457 				mask = (0x1 << 1);
17458 				shift = 1;
17459 				break;
17460 			case (0x1 << 4):
17461 				mask = (0x1 << 2);
17462 				shift = 2;
17463 				break;
17464 			case (0x1 << 5):
17465 				mask = (0x3 << 4);
17466 				shift = 4;
17467 				break;
17468 			case (0x1 << 6):
17469 				mask = (0x3 << 6);
17470 				shift = 6;
17471 				break;
17472 			case (0x1 << 7):
17473 				mask = (0x1 << 8);
17474 				shift = 8;
17475 				break;
17476 			case (0x1 << 8):
17477 				mask = (0x1 << 9);
17478 				shift = 9;
17479 				break;
17480 			case (0x1 << 10):
17481 				mask = 0x1fff;
17482 				shift = 0x0;
17483 				break;
17484 			case (0x1 << 11):
17485 				mask = 0x1fff;
17486 				shift = 0x0;
17487 				break;
17488 			default:
17489 				mask = 0x0;
17490 				shift = 0x0;
17491 				break;
17492 			}
17493 
17494 			if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17495 				mod_phy_reg(pi, addr, mask, (value << shift));
17496 		}
17497 
17498 		or_phy_reg(pi, 0xec, (0x1 << 0));
17499 		or_phy_reg(pi, 0x78, (0x1 << 0));
17500 		udelay(1);
17501 		and_phy_reg(pi, 0xec, ~(0x1 << 0));
17502 	}
17503 }
17504 
17505 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17506 {
17507 	s32 rssi_buf[4];
17508 	s32 int_val;
17509 
17510 	if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17511 
17512 		return;
17513 
17514 	if (PHY_IPA(pi))
17515 		wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17516 
17517 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17518 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17519 						  0, 0x3, 0,
17520 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
17521 	else if (NREV_GE(pi->pubpi.phy_rev, 3))
17522 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17523 
17524 	wlc_phy_stopplayback_nphy(pi);
17525 
17526 	wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17527 
17528 	udelay(20);
17529 	int_val =
17530 		wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
17531 				       1);
17532 	wlc_phy_stopplayback_nphy(pi);
17533 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
17534 
17535 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17536 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17537 						  0, 0x3, 1,
17538 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
17539 	else if (NREV_GE(pi->pubpi.phy_rev, 3))
17540 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17541 
17542 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17543 
17544 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17545 			(u8) ((int_val >> 24) & 0xff);
17546 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17547 			(u8) ((int_val >> 24) & 0xff);
17548 
17549 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17550 			(u8) ((int_val >> 8) & 0xff);
17551 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17552 			(u8) ((int_val >> 8) & 0xff);
17553 	} else {
17554 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17555 			(u8) ((int_val >> 24) & 0xff);
17556 
17557 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17558 			(u8) ((int_val >> 8) & 0xff);
17559 
17560 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17561 			(u8) ((int_val >> 16) & 0xff);
17562 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17563 			(u8) ((int_val) & 0xff);
17564 	}
17565 
17566 }
17567 
17568 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17569 {
17570 	u8 idx, idx2, i, delta_ind;
17571 
17572 	for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17573 		pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17574 
17575 	for (i = 0; i < 4; i++) {
17576 		idx2 = 0;
17577 
17578 		delta_ind = 0;
17579 
17580 		switch (i) {
17581 		case 0:
17582 
17583 			if (CHSPEC_IS40(pi->radio_chanspec)
17584 			    && NPHY_IS_SROM_REINTERPRET) {
17585 				idx = TXP_FIRST_MCS_40_SISO;
17586 			} else {
17587 				idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17588 				      TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
17589 				delta_ind = 1;
17590 			}
17591 			break;
17592 
17593 		case 1:
17594 
17595 			idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17596 			      TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
17597 			break;
17598 
17599 		case 2:
17600 
17601 			idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17602 			      TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
17603 			break;
17604 
17605 		case 3:
17606 
17607 			idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17608 			      TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
17609 			break;
17610 		}
17611 
17612 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17613 			pi->tx_power_offset[idx];
17614 		idx = idx + delta_ind;
17615 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17616 			pi->tx_power_offset[idx];
17617 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17618 			pi->tx_power_offset[idx];
17619 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17620 			pi->tx_power_offset[idx++];
17621 
17622 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17623 			pi->tx_power_offset[idx++];
17624 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17625 			pi->tx_power_offset[idx];
17626 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17627 			pi->tx_power_offset[idx];
17628 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17629 			pi->tx_power_offset[idx++];
17630 
17631 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17632 			pi->tx_power_offset[idx++];
17633 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17634 			pi->tx_power_offset[idx];
17635 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17636 			pi->tx_power_offset[idx];
17637 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17638 			pi->tx_power_offset[idx++];
17639 
17640 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17641 			pi->tx_power_offset[idx];
17642 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17643 			pi->tx_power_offset[idx++];
17644 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17645 			pi->tx_power_offset[idx];
17646 		idx = idx + 1 - delta_ind;
17647 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17648 			pi->tx_power_offset[idx];
17649 
17650 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17651 			pi->tx_power_offset[idx];
17652 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17653 			pi->tx_power_offset[idx];
17654 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17655 			pi->tx_power_offset[idx];
17656 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17657 			pi->tx_power_offset[idx];
17658 	}
17659 }
17660 
17661 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17662 {
17663 	u32 idx;
17664 	s16 a1[2], b0[2], b1[2];
17665 	s8 target_pwr_qtrdbm[2];
17666 	s32 num, den, pwr_est;
17667 	u8 chan_freq_range;
17668 	u8 idle_tssi[2];
17669 	u32 tbl_id, tbl_len, tbl_offset;
17670 	u32 regval[64];
17671 	u8 core;
17672 
17673 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17674 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17675 		(void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17676 		udelay(1);
17677 	}
17678 
17679 	if (pi->phyhang_avoid)
17680 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
17681 
17682 	or_phy_reg(pi, 0x122, (0x1 << 0));
17683 
17684 	if (NREV_GE(pi->pubpi.phy_rev, 3))
17685 		and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17686 	else
17687 		or_phy_reg(pi, 0x1e7, (0x1 << 15));
17688 
17689 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17690 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17691 
17692 	if (pi->sh->sromrev < 4) {
17693 		idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17694 		idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17695 		a1[0] = -424;
17696 		a1[1] = -424;
17697 		b0[0] = 5612;
17698 		b0[1] = 5612;
17699 		b1[1] = -1393;
17700 		b1[0] = -1393;
17701 	} else {
17702 
17703 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17704 		switch (chan_freq_range) {
17705 		case WL_CHAN_FREQ_RANGE_2G:
17706 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17707 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17708 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17709 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17710 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17711 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17712 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17713 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17714 			break;
17715 		case WL_CHAN_FREQ_RANGE_5GL:
17716 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17717 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17718 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17719 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17720 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17721 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17722 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17723 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17724 			break;
17725 		case WL_CHAN_FREQ_RANGE_5GM:
17726 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17727 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17728 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17729 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17730 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17731 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17732 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17733 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17734 			break;
17735 		case WL_CHAN_FREQ_RANGE_5GH:
17736 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17737 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17738 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17739 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17740 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17741 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17742 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17743 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17744 			break;
17745 		default:
17746 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17747 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17748 			a1[0] = -424;
17749 			a1[1] = -424;
17750 			b0[0] = 5612;
17751 			b0[1] = 5612;
17752 			b1[1] = -1393;
17753 			b1[0] = -1393;
17754 			break;
17755 		}
17756 	}
17757 
17758 	/* use the provided transmit power */
17759 	target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17760 	target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17761 
17762 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17763 		if (pi->srom_fem2g.tssipos)
17764 			or_phy_reg(pi, 0x1e9, (0x1 << 14));
17765 
17766 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17767 			for (core = 0; core <= 1; core++) {
17768 				if (PHY_IPA(pi)) {
17769 					if (CHSPEC_IS2G(pi->radio_chanspec))
17770 						WRITE_RADIO_REG3(pi, RADIO_2057,
17771 								 TX, core,
17772 								 TX_SSI_MUX,
17773 								 0xe);
17774 					else
17775 						WRITE_RADIO_REG3(pi, RADIO_2057,
17776 								 TX, core,
17777 								 TX_SSI_MUX,
17778 								 0xc);
17779 				}
17780 			}
17781 		} else {
17782 			if (PHY_IPA(pi)) {
17783 
17784 				write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17785 						RADIO_2056_TX0,
17786 						(CHSPEC_IS5G
17787 						 (pi->radio_chanspec)) ?
17788 						 0xc : 0xe);
17789 				write_radio_reg(pi,
17790 						RADIO_2056_TX_TX_SSI_MUX |
17791 						RADIO_2056_TX1,
17792 						(CHSPEC_IS5G
17793 						 (pi->radio_chanspec)) ?
17794 						 0xc : 0xe);
17795 			} else {
17796 
17797 				write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17798 						RADIO_2056_TX0, 0x11);
17799 				write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17800 						RADIO_2056_TX1, 0x11);
17801 			}
17802 		}
17803 	}
17804 
17805 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17806 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17807 		(void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17808 		udelay(1);
17809 	}
17810 
17811 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17812 		mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17813 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17814 	else
17815 		mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17816 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17817 
17818 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17819 		mod_phy_reg(pi, 0x222, (0xff << 0),
17820 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17821 	else if (NREV_GT(pi->pubpi.phy_rev, 1))
17822 		mod_phy_reg(pi, 0x222, (0xff << 0),
17823 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17824 
17825 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17826 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17827 
17828 	write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
17829 
17830 	write_phy_reg(pi, 0x1e9,
17831 		      (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
17832 
17833 	write_phy_reg(pi, 0x1ea,
17834 		      (target_pwr_qtrdbm[0] << 0) |
17835 		      (target_pwr_qtrdbm[1] << 8));
17836 
17837 	tbl_len = 64;
17838 	tbl_offset = 0;
17839 	for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
17840 	     tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
17841 
17842 		for (idx = 0; idx < tbl_len; idx++) {
17843 			num = 8 *
17844 			      (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
17845 			den = 32768 + a1[tbl_id - 26] * idx;
17846 			pwr_est = max(((4 * num + den / 2) / den), -8);
17847 			if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17848 				if (idx <=
17849 				    (uint) (31 - idle_tssi[tbl_id - 26] + 1))
17850 					pwr_est =
17851 						max(pwr_est,
17852 						    target_pwr_qtrdbm
17853 						    [tbl_id - 26] + 1);
17854 			}
17855 			regval[idx] = (u32) pwr_est;
17856 		}
17857 		wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
17858 					 regval);
17859 	}
17860 
17861 	wlc_phy_txpwr_limit_to_tbl_nphy(pi);
17862 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
17863 				 pi->adj_pwr_tbl_nphy);
17864 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
17865 				 pi->adj_pwr_tbl_nphy);
17866 
17867 	if (pi->phyhang_avoid)
17868 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
17869 }
17870 
17871 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
17872 {
17873 	u32 *tx_pwrctrl_tbl = NULL;
17874 
17875 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
17876 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17877 			if ((pi->pubpi.radiorev == 4)
17878 			    || (pi->pubpi.radiorev == 6))
17879 				tx_pwrctrl_tbl =
17880 					nphy_tpc_txgain_ipa_2g_2057rev4n6;
17881 			else if (pi->pubpi.radiorev == 3)
17882 				tx_pwrctrl_tbl =
17883 					nphy_tpc_txgain_ipa_2g_2057rev3;
17884 			else if (pi->pubpi.radiorev == 5)
17885 				tx_pwrctrl_tbl =
17886 					nphy_tpc_txgain_ipa_2g_2057rev5;
17887 			else if ((pi->pubpi.radiorev == 7)
17888 				 || (pi->pubpi.radiorev == 8))
17889 				tx_pwrctrl_tbl =
17890 					nphy_tpc_txgain_ipa_2g_2057rev7;
17891 		} else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
17892 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
17893 			if (pi->sh->chip == BCMA_CHIP_ID_BCM47162)
17894 				tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
17895 		} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
17896 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
17897 		} else {
17898 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
17899 		}
17900 	} else {
17901 
17902 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17903 			if ((pi->pubpi.radiorev == 3) ||
17904 			    (pi->pubpi.radiorev == 4) ||
17905 			    (pi->pubpi.radiorev == 6))
17906 				tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
17907 			else if ((pi->pubpi.radiorev == 7)
17908 				 || (pi->pubpi.radiorev == 8))
17909 				tx_pwrctrl_tbl =
17910 					nphy_tpc_txgain_ipa_5g_2057rev7;
17911 		} else {
17912 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
17913 		}
17914 	}
17915 
17916 	return tx_pwrctrl_tbl;
17917 }
17918 
17919 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
17920 {
17921 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
17922 		if (pi->nphy_rssical_chanspec_2G == 0)
17923 			return;
17924 
17925 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17926 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
17927 				      RADIO_2057_VCM_MASK,
17928 				      pi->rssical_cache.
17929 				      rssical_radio_regs_2G[0]);
17930 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
17931 				      RADIO_2057_VCM_MASK,
17932 				      pi->rssical_cache.
17933 				      rssical_radio_regs_2G[1]);
17934 		} else {
17935 			mod_radio_reg(pi,
17936 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
17937 				      RADIO_2056_VCM_MASK,
17938 				      pi->rssical_cache.
17939 				      rssical_radio_regs_2G[0]);
17940 			mod_radio_reg(pi,
17941 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
17942 				      RADIO_2056_VCM_MASK,
17943 				      pi->rssical_cache.
17944 				      rssical_radio_regs_2G[1]);
17945 		}
17946 
17947 		write_phy_reg(pi, 0x1a6,
17948 			      pi->rssical_cache.rssical_phyregs_2G[0]);
17949 		write_phy_reg(pi, 0x1ac,
17950 			      pi->rssical_cache.rssical_phyregs_2G[1]);
17951 		write_phy_reg(pi, 0x1b2,
17952 			      pi->rssical_cache.rssical_phyregs_2G[2]);
17953 		write_phy_reg(pi, 0x1b8,
17954 			      pi->rssical_cache.rssical_phyregs_2G[3]);
17955 		write_phy_reg(pi, 0x1a4,
17956 			      pi->rssical_cache.rssical_phyregs_2G[4]);
17957 		write_phy_reg(pi, 0x1aa,
17958 			      pi->rssical_cache.rssical_phyregs_2G[5]);
17959 		write_phy_reg(pi, 0x1b0,
17960 			      pi->rssical_cache.rssical_phyregs_2G[6]);
17961 		write_phy_reg(pi, 0x1b6,
17962 			      pi->rssical_cache.rssical_phyregs_2G[7]);
17963 		write_phy_reg(pi, 0x1a5,
17964 			      pi->rssical_cache.rssical_phyregs_2G[8]);
17965 		write_phy_reg(pi, 0x1ab,
17966 			      pi->rssical_cache.rssical_phyregs_2G[9]);
17967 		write_phy_reg(pi, 0x1b1,
17968 			      pi->rssical_cache.rssical_phyregs_2G[10]);
17969 		write_phy_reg(pi, 0x1b7,
17970 			      pi->rssical_cache.rssical_phyregs_2G[11]);
17971 
17972 	} else {
17973 		if (pi->nphy_rssical_chanspec_5G == 0)
17974 			return;
17975 
17976 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17977 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
17978 				      RADIO_2057_VCM_MASK,
17979 				      pi->rssical_cache.
17980 				      rssical_radio_regs_5G[0]);
17981 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
17982 				      RADIO_2057_VCM_MASK,
17983 				      pi->rssical_cache.
17984 				      rssical_radio_regs_5G[1]);
17985 		} else {
17986 			mod_radio_reg(pi,
17987 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
17988 				      RADIO_2056_VCM_MASK,
17989 				      pi->rssical_cache.
17990 				      rssical_radio_regs_5G[0]);
17991 			mod_radio_reg(pi,
17992 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
17993 				      RADIO_2056_VCM_MASK,
17994 				      pi->rssical_cache.
17995 				      rssical_radio_regs_5G[1]);
17996 		}
17997 
17998 		write_phy_reg(pi, 0x1a6,
17999 			      pi->rssical_cache.rssical_phyregs_5G[0]);
18000 		write_phy_reg(pi, 0x1ac,
18001 			      pi->rssical_cache.rssical_phyregs_5G[1]);
18002 		write_phy_reg(pi, 0x1b2,
18003 			      pi->rssical_cache.rssical_phyregs_5G[2]);
18004 		write_phy_reg(pi, 0x1b8,
18005 			      pi->rssical_cache.rssical_phyregs_5G[3]);
18006 		write_phy_reg(pi, 0x1a4,
18007 			      pi->rssical_cache.rssical_phyregs_5G[4]);
18008 		write_phy_reg(pi, 0x1aa,
18009 			      pi->rssical_cache.rssical_phyregs_5G[5]);
18010 		write_phy_reg(pi, 0x1b0,
18011 			      pi->rssical_cache.rssical_phyregs_5G[6]);
18012 		write_phy_reg(pi, 0x1b6,
18013 			      pi->rssical_cache.rssical_phyregs_5G[7]);
18014 		write_phy_reg(pi, 0x1a5,
18015 			      pi->rssical_cache.rssical_phyregs_5G[8]);
18016 		write_phy_reg(pi, 0x1ab,
18017 			      pi->rssical_cache.rssical_phyregs_5G[9]);
18018 		write_phy_reg(pi, 0x1b1,
18019 			      pi->rssical_cache.rssical_phyregs_5G[10]);
18020 		write_phy_reg(pi, 0x1b7,
18021 			      pi->rssical_cache.rssical_phyregs_5G[11]);
18022 	}
18023 }
18024 
18025 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
18026 {
18027 	u16 txcal_gain[2];
18028 
18029 	pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
18030 	pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
18031 	wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18032 	wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18033 
18034 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18035 				txcal_gain);
18036 
18037 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
18038 		txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
18039 		txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
18040 	} else {
18041 		txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
18042 		txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
18043 	}
18044 
18045 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18046 				 txcal_gain);
18047 }
18048 
18049 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
18050 {
18051 	bool save_bbmult = false;
18052 	u8 txcal_index_2057_rev5n7 = 0;
18053 	u8 txcal_index_2057_rev3n4n6 = 10;
18054 
18055 	if (pi->use_int_tx_iqlo_cal_nphy) {
18056 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18057 			if ((pi->pubpi.radiorev == 3) ||
18058 			    (pi->pubpi.radiorev == 4) ||
18059 			    (pi->pubpi.radiorev == 6)) {
18060 
18061 				pi->nphy_txcal_pwr_idx[0] =
18062 					txcal_index_2057_rev3n4n6;
18063 				pi->nphy_txcal_pwr_idx[1] =
18064 					txcal_index_2057_rev3n4n6;
18065 				wlc_phy_txpwr_index_nphy(
18066 					pi, 3,
18067 					txcal_index_2057_rev3n4n6,
18068 					false);
18069 			} else {
18070 
18071 				pi->nphy_txcal_pwr_idx[0] =
18072 					txcal_index_2057_rev5n7;
18073 				pi->nphy_txcal_pwr_idx[1] =
18074 					txcal_index_2057_rev5n7;
18075 				wlc_phy_txpwr_index_nphy(
18076 					pi, 3,
18077 					txcal_index_2057_rev5n7,
18078 					false);
18079 			}
18080 			save_bbmult = true;
18081 
18082 		} else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
18083 			wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18084 			if (pi->sh->hw_phytxchain != 3) {
18085 				pi->nphy_txcal_pwr_idx[1] =
18086 					pi->nphy_txcal_pwr_idx[0];
18087 				wlc_phy_txpwr_index_nphy(pi, 3,
18088 							 pi->
18089 							 nphy_txcal_pwr_idx[0],
18090 							 true);
18091 				save_bbmult = true;
18092 			}
18093 
18094 		} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18095 			if (PHY_IPA(pi)) {
18096 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
18097 					wlc_phy_cal_txgainctrl_nphy(pi, 12,
18098 								    false);
18099 				} else {
18100 					pi->nphy_txcal_pwr_idx[0] = 80;
18101 					pi->nphy_txcal_pwr_idx[1] = 80;
18102 					wlc_phy_txpwr_index_nphy(pi, 3, 80,
18103 								 false);
18104 					save_bbmult = true;
18105 				}
18106 			} else {
18107 				wlc_phy_internal_cal_txgain_nphy(pi);
18108 				save_bbmult = true;
18109 			}
18110 
18111 		} else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18112 			if (PHY_IPA(pi)) {
18113 				if (CHSPEC_IS2G(pi->radio_chanspec))
18114 					wlc_phy_cal_txgainctrl_nphy(pi, 12,
18115 								    false);
18116 				else
18117 					wlc_phy_cal_txgainctrl_nphy(pi, 14,
18118 								    false);
18119 			} else {
18120 				wlc_phy_internal_cal_txgain_nphy(pi);
18121 				save_bbmult = true;
18122 			}
18123 		}
18124 
18125 	} else {
18126 		wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18127 	}
18128 
18129 	if (save_bbmult)
18130 		wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18131 					&pi->nphy_txcal_bbmult);
18132 }
18133 
18134 static void
18135 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18136 				 u8 core_code)
18137 {
18138 	u16 mask;
18139 	u16 val;
18140 	u8 core;
18141 
18142 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18143 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18144 			if (core_code == RADIO_MIMO_CORESEL_CORE1
18145 			    && core == PHY_CORE_1)
18146 				continue;
18147 			else if (core_code == RADIO_MIMO_CORESEL_CORE2
18148 				 && core == PHY_CORE_0)
18149 				continue;
18150 
18151 			if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18152 
18153 				mask = (0x1 << 10);
18154 				val = 1 << 10;
18155 				mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18156 					    0x92, mask, val);
18157 			}
18158 
18159 			if (field == NPHY_RfctrlIntc_override_OFF) {
18160 
18161 				write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18162 					      0x92, 0);
18163 
18164 				wlc_phy_force_rfseq_nphy(pi,
18165 							 NPHY_RFSEQ_RESET2RX);
18166 			} else if (field == NPHY_RfctrlIntc_override_TRSW) {
18167 
18168 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18169 
18170 					mask = (0x1 << 6) | (0x1 << 7);
18171 
18172 					val = value << 6;
18173 					mod_phy_reg(pi,
18174 						    (core ==
18175 						     PHY_CORE_0) ? 0x91 : 0x92,
18176 						    mask, val);
18177 
18178 					or_phy_reg(pi,
18179 						   (core ==
18180 						    PHY_CORE_0) ? 0x91 : 0x92,
18181 						   (0x1 << 10));
18182 
18183 					and_phy_reg(pi, 0x2ff, (u16)
18184 						    ~(0x3 << 14));
18185 					or_phy_reg(pi, 0x2ff, (0x1 << 13));
18186 					or_phy_reg(pi, 0x2ff, (0x1 << 0));
18187 				} else {
18188 
18189 					mask = (0x1 << 6) |
18190 					       (0x1 << 7) |
18191 					       (0x1 << 8) | (0x1 << 9);
18192 					val = value << 6;
18193 					mod_phy_reg(pi,
18194 						    (core ==
18195 						     PHY_CORE_0) ? 0x91 : 0x92,
18196 						    mask, val);
18197 
18198 					mask = (0x1 << 0);
18199 					val = 1 << 0;
18200 					mod_phy_reg(pi,
18201 						    (core ==
18202 						     PHY_CORE_0) ? 0xe7 : 0xec,
18203 						    mask, val);
18204 
18205 					mask = (core == PHY_CORE_0) ?
18206 					       (0x1 << 0) : (0x1 << 1);
18207 					val = 1 << ((core == PHY_CORE_0) ?
18208 						    0 : 1);
18209 					mod_phy_reg(pi, 0x78, mask, val);
18210 
18211 					SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18212 						  != 0), 10000);
18213 					if (WARN(read_phy_reg(pi, 0x78) & val,
18214 						 "HW error: override failed"))
18215 						return;
18216 
18217 					mask = (0x1 << 0);
18218 					val = 0 << 0;
18219 					mod_phy_reg(pi,
18220 						    (core ==
18221 						     PHY_CORE_0) ? 0xe7 : 0xec,
18222 						    mask, val);
18223 				}
18224 			} else if (field == NPHY_RfctrlIntc_override_PA) {
18225 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18226 
18227 					mask = (0x1 << 4) | (0x1 << 5);
18228 
18229 					if (CHSPEC_IS5G(pi->radio_chanspec))
18230 						val = value << 5;
18231 					else
18232 						val = value << 4;
18233 
18234 					mod_phy_reg(pi,
18235 						    (core ==
18236 						     PHY_CORE_0) ? 0x91 : 0x92,
18237 						    mask, val);
18238 
18239 					or_phy_reg(pi,
18240 						   (core ==
18241 						    PHY_CORE_0) ? 0x91 : 0x92,
18242 						   (0x1 << 12));
18243 				} else {
18244 
18245 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18246 						mask = (0x1 << 5);
18247 						val = value << 5;
18248 					} else {
18249 						mask = (0x1 << 4);
18250 						val = value << 4;
18251 					}
18252 					mod_phy_reg(pi,
18253 						    (core ==
18254 						     PHY_CORE_0) ? 0x91 : 0x92,
18255 						    mask, val);
18256 				}
18257 			} else if (field ==
18258 				   NPHY_RfctrlIntc_override_EXT_LNA_PU) {
18259 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18260 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18261 
18262 						mask = (0x1 << 0);
18263 						val = value << 0;
18264 						mod_phy_reg(pi,
18265 							    (core ==
18266 							     PHY_CORE_0) ? 0x91
18267 							    : 0x92, mask, val);
18268 
18269 						mask = (0x1 << 2);
18270 						mod_phy_reg(pi,
18271 							    (core ==
18272 							     PHY_CORE_0) ? 0x91
18273 							    : 0x92, mask, 0);
18274 					} else {
18275 
18276 						mask = (0x1 << 2);
18277 						val = value << 2;
18278 						mod_phy_reg(pi,
18279 							    (core ==
18280 							     PHY_CORE_0) ? 0x91
18281 							    : 0x92, mask, val);
18282 
18283 						mask = (0x1 << 0);
18284 						mod_phy_reg(pi,
18285 							    (core ==
18286 							     PHY_CORE_0) ? 0x91
18287 							    : 0x92, mask, 0);
18288 					}
18289 
18290 					mask = (0x1 << 11);
18291 					val = 1 << 11;
18292 					mod_phy_reg(pi,
18293 						    (core ==
18294 						     PHY_CORE_0) ? 0x91 : 0x92,
18295 						    mask, val);
18296 				} else {
18297 
18298 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18299 						mask = (0x1 << 0);
18300 						val = value << 0;
18301 					} else {
18302 						mask = (0x1 << 2);
18303 						val = value << 2;
18304 					}
18305 					mod_phy_reg(pi,
18306 						    (core ==
18307 						     PHY_CORE_0) ? 0x91 : 0x92,
18308 						    mask, val);
18309 				}
18310 			} else if (field ==
18311 				   NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
18312 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18313 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18314 
18315 						mask = (0x1 << 1);
18316 						val = value << 1;
18317 						mod_phy_reg(pi,
18318 							    (core ==
18319 							     PHY_CORE_0) ? 0x91
18320 							    : 0x92, mask, val);
18321 
18322 						mask = (0x1 << 3);
18323 						mod_phy_reg(pi,
18324 							    (core ==
18325 							     PHY_CORE_0) ? 0x91
18326 							    : 0x92, mask, 0);
18327 					} else {
18328 
18329 						mask = (0x1 << 3);
18330 						val = value << 3;
18331 						mod_phy_reg(pi,
18332 							    (core ==
18333 							     PHY_CORE_0) ? 0x91
18334 							    : 0x92, mask, val);
18335 
18336 						mask = (0x1 << 1);
18337 						mod_phy_reg(pi,
18338 							    (core ==
18339 							     PHY_CORE_0) ? 0x91
18340 							    : 0x92, mask, 0);
18341 					}
18342 
18343 					mask = (0x1 << 11);
18344 					val = 1 << 11;
18345 					mod_phy_reg(pi,
18346 						    (core ==
18347 						     PHY_CORE_0) ? 0x91 : 0x92,
18348 						    mask, val);
18349 				} else {
18350 
18351 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18352 						mask = (0x1 << 1);
18353 						val = value << 1;
18354 					} else {
18355 						mask = (0x1 << 3);
18356 						val = value << 3;
18357 					}
18358 					mod_phy_reg(pi,
18359 						    (core ==
18360 						     PHY_CORE_0) ? 0x91 : 0x92,
18361 						    mask, val);
18362 				}
18363 			}
18364 		}
18365 	}
18366 }
18367 
18368 void
18369 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18370 			    bool debug)
18371 {
18372 	int gainctrl_loopidx;
18373 	uint core;
18374 	u16 m0m1, curr_m0m1;
18375 	s32 delta_power;
18376 	s32 txpwrindex;
18377 	s32 qdBm_power[2];
18378 	u16 orig_BBConfig;
18379 	u16 phy_saveregs[4];
18380 	u32 freq_test;
18381 	u16 ampl_test = 250;
18382 	uint stepsize;
18383 	bool phyhang_avoid_state = false;
18384 
18385 	if (NREV_GE(pi->pubpi.phy_rev, 7))
18386 		stepsize = 2;
18387 	else
18388 		stepsize = 1;
18389 
18390 	if (CHSPEC_IS40(pi->radio_chanspec))
18391 		freq_test = 5000;
18392 	else
18393 		freq_test = 2500;
18394 
18395 	wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18396 	wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18397 
18398 	if (pi->phyhang_avoid)
18399 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
18400 
18401 	phyhang_avoid_state = pi->phyhang_avoid;
18402 	pi->phyhang_avoid = false;
18403 
18404 	phy_saveregs[0] = read_phy_reg(pi, 0x91);
18405 	phy_saveregs[1] = read_phy_reg(pi, 0x92);
18406 	phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18407 	phy_saveregs[3] = read_phy_reg(pi, 0xec);
18408 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18409 					 RADIO_MIMO_CORESEL_CORE1 |
18410 					 RADIO_MIMO_CORESEL_CORE2);
18411 
18412 	if (!debug) {
18413 		wlc_phy_rfctrlintc_override_nphy(pi,
18414 						 NPHY_RfctrlIntc_override_TRSW,
18415 						 0x2, RADIO_MIMO_CORESEL_CORE1);
18416 		wlc_phy_rfctrlintc_override_nphy(pi,
18417 						 NPHY_RfctrlIntc_override_TRSW,
18418 						 0x8, RADIO_MIMO_CORESEL_CORE2);
18419 	} else {
18420 		wlc_phy_rfctrlintc_override_nphy(pi,
18421 						 NPHY_RfctrlIntc_override_TRSW,
18422 						 0x1, RADIO_MIMO_CORESEL_CORE1);
18423 		wlc_phy_rfctrlintc_override_nphy(pi,
18424 						 NPHY_RfctrlIntc_override_TRSW,
18425 						 0x7, RADIO_MIMO_CORESEL_CORE2);
18426 	}
18427 
18428 	orig_BBConfig = read_phy_reg(pi, 0x01);
18429 	mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18430 
18431 	wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18432 
18433 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18434 		txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18435 
18436 		for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18437 		     gainctrl_loopidx++) {
18438 			wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18439 					     false);
18440 
18441 			if (core == PHY_CORE_0)
18442 				curr_m0m1 = m0m1 & 0xff00;
18443 			else
18444 				curr_m0m1 = m0m1 & 0x00ff;
18445 
18446 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18447 			wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18448 
18449 			udelay(50);
18450 
18451 			wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18452 						 NPHY_CAL_TSSISAMPS);
18453 
18454 			pi->nphy_bb_mult_save = 0;
18455 			wlc_phy_stopplayback_nphy(pi);
18456 
18457 			delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18458 
18459 			txpwrindex -= stepsize * delta_power;
18460 			if (txpwrindex < 0)
18461 				txpwrindex = 0;
18462 			else if (txpwrindex > 127)
18463 				txpwrindex = 127;
18464 
18465 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
18466 				if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18467 				    (pi->srom_fem5g.extpagain == 3)) {
18468 					if (txpwrindex < 30)
18469 						txpwrindex = 30;
18470 				}
18471 			} else {
18472 				if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18473 				    (pi->srom_fem2g.extpagain == 3)) {
18474 					if (txpwrindex < 50)
18475 						txpwrindex = 50;
18476 				}
18477 			}
18478 
18479 			wlc_phy_txpwr_index_nphy(pi, (1 << core),
18480 						 (u8) txpwrindex, true);
18481 		}
18482 
18483 		pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18484 
18485 		if (debug) {
18486 			u16 radio_gain;
18487 			u16 dbg_m0m1;
18488 
18489 			wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18490 
18491 			wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18492 					     false);
18493 
18494 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18495 			wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18496 
18497 			udelay(100);
18498 
18499 			wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18500 						 NPHY_CAL_TSSISAMPS);
18501 
18502 			wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18503 						&radio_gain);
18504 
18505 			mdelay(4000);
18506 			pi->nphy_bb_mult_save = 0;
18507 			wlc_phy_stopplayback_nphy(pi);
18508 		}
18509 	}
18510 
18511 	wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18512 	wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18513 
18514 	wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18515 
18516 	write_phy_reg(pi, 0x01, orig_BBConfig);
18517 
18518 	write_phy_reg(pi, 0x91, phy_saveregs[0]);
18519 	write_phy_reg(pi, 0x92, phy_saveregs[1]);
18520 	write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18521 	write_phy_reg(pi, 0xec, phy_saveregs[3]);
18522 
18523 	pi->phyhang_avoid = phyhang_avoid_state;
18524 
18525 	if (pi->phyhang_avoid)
18526 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
18527 }
18528 
18529 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18530 {
18531 	void *tbl_ptr;
18532 	int coreNum;
18533 	u16 *txcal_radio_regs = NULL;
18534 
18535 	if (pi->phyhang_avoid)
18536 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
18537 
18538 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
18539 
18540 		wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18541 					  &pi->calibration_cache.
18542 					  rxcal_coeffs_2G);
18543 
18544 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18545 			txcal_radio_regs =
18546 				pi->calibration_cache.txcal_radio_regs_2G;
18547 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18548 
18549 			pi->calibration_cache.txcal_radio_regs_2G[0] =
18550 				read_radio_reg(pi,
18551 					       RADIO_2056_TX_LOFT_FINE_I |
18552 					       RADIO_2056_TX0);
18553 			pi->calibration_cache.txcal_radio_regs_2G[1] =
18554 				read_radio_reg(pi,
18555 					       RADIO_2056_TX_LOFT_FINE_Q |
18556 					       RADIO_2056_TX0);
18557 			pi->calibration_cache.txcal_radio_regs_2G[2] =
18558 				read_radio_reg(pi,
18559 					       RADIO_2056_TX_LOFT_FINE_I |
18560 					       RADIO_2056_TX1);
18561 			pi->calibration_cache.txcal_radio_regs_2G[3] =
18562 				read_radio_reg(pi,
18563 					       RADIO_2056_TX_LOFT_FINE_Q |
18564 					       RADIO_2056_TX1);
18565 
18566 			pi->calibration_cache.txcal_radio_regs_2G[4] =
18567 				read_radio_reg(pi,
18568 					       RADIO_2056_TX_LOFT_COARSE_I |
18569 					       RADIO_2056_TX0);
18570 			pi->calibration_cache.txcal_radio_regs_2G[5] =
18571 				read_radio_reg(pi,
18572 					       RADIO_2056_TX_LOFT_COARSE_Q |
18573 					       RADIO_2056_TX0);
18574 			pi->calibration_cache.txcal_radio_regs_2G[6] =
18575 				read_radio_reg(pi,
18576 					       RADIO_2056_TX_LOFT_COARSE_I |
18577 					       RADIO_2056_TX1);
18578 			pi->calibration_cache.txcal_radio_regs_2G[7] =
18579 				read_radio_reg(pi,
18580 					       RADIO_2056_TX_LOFT_COARSE_Q |
18581 					       RADIO_2056_TX1);
18582 		} else {
18583 			pi->calibration_cache.txcal_radio_regs_2G[0] =
18584 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18585 			pi->calibration_cache.txcal_radio_regs_2G[1] =
18586 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18587 			pi->calibration_cache.txcal_radio_regs_2G[2] =
18588 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18589 			pi->calibration_cache.txcal_radio_regs_2G[3] =
18590 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18591 		}
18592 
18593 		pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
18594 		tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18595 	} else {
18596 
18597 		wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18598 					  &pi->calibration_cache.
18599 					  rxcal_coeffs_5G);
18600 
18601 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18602 			txcal_radio_regs =
18603 				pi->calibration_cache.txcal_radio_regs_5G;
18604 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18605 
18606 			pi->calibration_cache.txcal_radio_regs_5G[0] =
18607 				read_radio_reg(pi,
18608 					       RADIO_2056_TX_LOFT_FINE_I |
18609 					       RADIO_2056_TX0);
18610 			pi->calibration_cache.txcal_radio_regs_5G[1] =
18611 				read_radio_reg(pi,
18612 					       RADIO_2056_TX_LOFT_FINE_Q |
18613 					       RADIO_2056_TX0);
18614 			pi->calibration_cache.txcal_radio_regs_5G[2] =
18615 				read_radio_reg(pi,
18616 					       RADIO_2056_TX_LOFT_FINE_I |
18617 					       RADIO_2056_TX1);
18618 			pi->calibration_cache.txcal_radio_regs_5G[3] =
18619 				read_radio_reg(pi,
18620 					       RADIO_2056_TX_LOFT_FINE_Q |
18621 					       RADIO_2056_TX1);
18622 
18623 			pi->calibration_cache.txcal_radio_regs_5G[4] =
18624 				read_radio_reg(pi,
18625 					       RADIO_2056_TX_LOFT_COARSE_I |
18626 					       RADIO_2056_TX0);
18627 			pi->calibration_cache.txcal_radio_regs_5G[5] =
18628 				read_radio_reg(pi,
18629 					       RADIO_2056_TX_LOFT_COARSE_Q |
18630 					       RADIO_2056_TX0);
18631 			pi->calibration_cache.txcal_radio_regs_5G[6] =
18632 				read_radio_reg(pi,
18633 					       RADIO_2056_TX_LOFT_COARSE_I |
18634 					       RADIO_2056_TX1);
18635 			pi->calibration_cache.txcal_radio_regs_5G[7] =
18636 				read_radio_reg(pi,
18637 					       RADIO_2056_TX_LOFT_COARSE_Q |
18638 					       RADIO_2056_TX1);
18639 		} else {
18640 			pi->calibration_cache.txcal_radio_regs_5G[0] =
18641 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18642 			pi->calibration_cache.txcal_radio_regs_5G[1] =
18643 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18644 			pi->calibration_cache.txcal_radio_regs_5G[2] =
18645 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18646 			pi->calibration_cache.txcal_radio_regs_5G[3] =
18647 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18648 		}
18649 
18650 		pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
18651 		tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18652 	}
18653 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18654 		for (coreNum = 0; coreNum <= 1; coreNum++) {
18655 
18656 			txcal_radio_regs[2 * coreNum] =
18657 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18658 						LOFT_FINE_I);
18659 			txcal_radio_regs[2 * coreNum + 1] =
18660 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18661 						LOFT_FINE_Q);
18662 
18663 			txcal_radio_regs[2 * coreNum + 4] =
18664 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18665 						LOFT_COARSE_I);
18666 			txcal_radio_regs[2 * coreNum + 5] =
18667 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18668 						LOFT_COARSE_Q);
18669 		}
18670 	}
18671 
18672 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18673 
18674 	if (pi->phyhang_avoid)
18675 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
18676 }
18677 
18678 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18679 {
18680 	struct nphy_iq_comp tx_comp;
18681 
18682 	wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18683 
18684 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18685 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18686 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18687 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18688 }
18689 
18690 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18691 {
18692 	u16 *loft_comp;
18693 	u16 txcal_coeffs_bphy[4];
18694 	u16 *tbl_ptr;
18695 	int coreNum;
18696 	u16 *txcal_radio_regs = NULL;
18697 
18698 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
18699 		if (pi->nphy_iqcal_chanspec_2G == 0)
18700 			return;
18701 
18702 		tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18703 		loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18704 	} else {
18705 		if (pi->nphy_iqcal_chanspec_5G == 0)
18706 			return;
18707 
18708 		tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18709 		loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18710 	}
18711 
18712 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18713 
18714 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18715 		txcal_coeffs_bphy[0] = tbl_ptr[0];
18716 		txcal_coeffs_bphy[1] = tbl_ptr[1];
18717 		txcal_coeffs_bphy[2] = tbl_ptr[2];
18718 		txcal_coeffs_bphy[3] = tbl_ptr[3];
18719 	} else {
18720 		txcal_coeffs_bphy[0] = 0;
18721 		txcal_coeffs_bphy[1] = 0;
18722 		txcal_coeffs_bphy[2] = 0;
18723 		txcal_coeffs_bphy[3] = 0;
18724 	}
18725 
18726 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
18727 				 txcal_coeffs_bphy);
18728 
18729 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18730 
18731 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18732 
18733 	if (NREV_LT(pi->pubpi.phy_rev, 2))
18734 		wlc_phy_tx_iq_war_nphy(pi);
18735 
18736 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
18737 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18738 			txcal_radio_regs =
18739 				pi->calibration_cache.txcal_radio_regs_2G;
18740 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18741 
18742 			write_radio_reg(pi,
18743 					RADIO_2056_TX_LOFT_FINE_I |
18744 					RADIO_2056_TX0,
18745 					pi->calibration_cache.
18746 					txcal_radio_regs_2G[0]);
18747 			write_radio_reg(pi,
18748 					RADIO_2056_TX_LOFT_FINE_Q |
18749 					RADIO_2056_TX0,
18750 					pi->calibration_cache.
18751 					txcal_radio_regs_2G[1]);
18752 			write_radio_reg(pi,
18753 					RADIO_2056_TX_LOFT_FINE_I |
18754 					RADIO_2056_TX1,
18755 					pi->calibration_cache.
18756 					txcal_radio_regs_2G[2]);
18757 			write_radio_reg(pi,
18758 					RADIO_2056_TX_LOFT_FINE_Q |
18759 					RADIO_2056_TX1,
18760 					pi->calibration_cache.
18761 					txcal_radio_regs_2G[3]);
18762 
18763 			write_radio_reg(pi,
18764 					RADIO_2056_TX_LOFT_COARSE_I |
18765 					RADIO_2056_TX0,
18766 					pi->calibration_cache.
18767 					txcal_radio_regs_2G[4]);
18768 			write_radio_reg(pi,
18769 					RADIO_2056_TX_LOFT_COARSE_Q |
18770 					RADIO_2056_TX0,
18771 					pi->calibration_cache.
18772 					txcal_radio_regs_2G[5]);
18773 			write_radio_reg(pi,
18774 					RADIO_2056_TX_LOFT_COARSE_I |
18775 					RADIO_2056_TX1,
18776 					pi->calibration_cache.
18777 					txcal_radio_regs_2G[6]);
18778 			write_radio_reg(pi,
18779 					RADIO_2056_TX_LOFT_COARSE_Q |
18780 					RADIO_2056_TX1,
18781 					pi->calibration_cache.
18782 					txcal_radio_regs_2G[7]);
18783 		} else {
18784 			write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18785 					pi->calibration_cache.
18786 					txcal_radio_regs_2G[0]);
18787 			write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18788 					pi->calibration_cache.
18789 					txcal_radio_regs_2G[1]);
18790 			write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18791 					pi->calibration_cache.
18792 					txcal_radio_regs_2G[2]);
18793 			write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18794 					pi->calibration_cache.
18795 					txcal_radio_regs_2G[3]);
18796 		}
18797 
18798 		wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18799 					  &pi->calibration_cache.
18800 					  rxcal_coeffs_2G);
18801 	} else {
18802 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18803 			txcal_radio_regs =
18804 				pi->calibration_cache.txcal_radio_regs_5G;
18805 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18806 
18807 			write_radio_reg(pi,
18808 					RADIO_2056_TX_LOFT_FINE_I |
18809 					RADIO_2056_TX0,
18810 					pi->calibration_cache.
18811 					txcal_radio_regs_5G[0]);
18812 			write_radio_reg(pi,
18813 					RADIO_2056_TX_LOFT_FINE_Q |
18814 					RADIO_2056_TX0,
18815 					pi->calibration_cache.
18816 					txcal_radio_regs_5G[1]);
18817 			write_radio_reg(pi,
18818 					RADIO_2056_TX_LOFT_FINE_I |
18819 					RADIO_2056_TX1,
18820 					pi->calibration_cache.
18821 					txcal_radio_regs_5G[2]);
18822 			write_radio_reg(pi,
18823 					RADIO_2056_TX_LOFT_FINE_Q |
18824 					RADIO_2056_TX1,
18825 					pi->calibration_cache.
18826 					txcal_radio_regs_5G[3]);
18827 
18828 			write_radio_reg(pi,
18829 					RADIO_2056_TX_LOFT_COARSE_I |
18830 					RADIO_2056_TX0,
18831 					pi->calibration_cache.
18832 					txcal_radio_regs_5G[4]);
18833 			write_radio_reg(pi,
18834 					RADIO_2056_TX_LOFT_COARSE_Q |
18835 					RADIO_2056_TX0,
18836 					pi->calibration_cache.
18837 					txcal_radio_regs_5G[5]);
18838 			write_radio_reg(pi,
18839 					RADIO_2056_TX_LOFT_COARSE_I |
18840 					RADIO_2056_TX1,
18841 					pi->calibration_cache.
18842 					txcal_radio_regs_5G[6]);
18843 			write_radio_reg(pi,
18844 					RADIO_2056_TX_LOFT_COARSE_Q |
18845 					RADIO_2056_TX1,
18846 					pi->calibration_cache.
18847 					txcal_radio_regs_5G[7]);
18848 		} else {
18849 			write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18850 					pi->calibration_cache.
18851 					txcal_radio_regs_5G[0]);
18852 			write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18853 					pi->calibration_cache.
18854 					txcal_radio_regs_5G[1]);
18855 			write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18856 					pi->calibration_cache.
18857 					txcal_radio_regs_5G[2]);
18858 			write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18859 					pi->calibration_cache.
18860 					txcal_radio_regs_5G[3]);
18861 		}
18862 
18863 		wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18864 					  &pi->calibration_cache.
18865 					  rxcal_coeffs_5G);
18866 	}
18867 
18868 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18869 		for (coreNum = 0; coreNum <= 1; coreNum++) {
18870 
18871 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18872 					 LOFT_FINE_I,
18873 					 txcal_radio_regs[2 * coreNum]);
18874 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18875 					 LOFT_FINE_Q,
18876 					 txcal_radio_regs[2 * coreNum + 1]);
18877 
18878 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18879 					 LOFT_COARSE_I,
18880 					 txcal_radio_regs[2 * coreNum + 4]);
18881 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18882 					 LOFT_COARSE_Q,
18883 					 txcal_radio_regs[2 * coreNum + 5]);
18884 		}
18885 	}
18886 }
18887 
18888 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
18889 {
18890 	u32 idx;
18891 	u16 iqloCalbuf[7];
18892 	u32 iqcomp, locomp, curr_locomp;
18893 	s8 locomp_i, locomp_q;
18894 	s8 curr_locomp_i, curr_locomp_q;
18895 	u32 tbl_id, tbl_len, tbl_offset;
18896 	u32 regval[128];
18897 
18898 	if (pi->phyhang_avoid)
18899 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
18900 
18901 	wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
18902 
18903 	tbl_len = 128;
18904 	tbl_offset = 320;
18905 	for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18906 	     tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18907 		iqcomp =
18908 			(tbl_id ==
18909 			 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
18910 			(iqloCalbuf[1] & 0x3ff)
18911 			: (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
18912 			(iqloCalbuf[3] & 0x3ff);
18913 
18914 		for (idx = 0; idx < tbl_len; idx++)
18915 			regval[idx] = iqcomp;
18916 		wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18917 					 regval);
18918 	}
18919 
18920 	tbl_offset = 448;
18921 	for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18922 	     tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18923 
18924 		locomp =
18925 			(u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
18926 		locomp_i = (s8) ((locomp >> 8) & 0xff);
18927 		locomp_q = (s8) ((locomp) & 0xff);
18928 		for (idx = 0; idx < tbl_len; idx++) {
18929 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18930 				curr_locomp_i = locomp_i;
18931 				curr_locomp_q = locomp_q;
18932 			} else {
18933 				curr_locomp_i = (s8) ((locomp_i *
18934 						       nphy_tpc_loscale[idx] +
18935 						       128) >> 8);
18936 				curr_locomp_q =
18937 					(s8) ((locomp_q *
18938 					       nphy_tpc_loscale[idx] +
18939 					       128) >> 8);
18940 			}
18941 			curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
18942 			curr_locomp |= (u32) (curr_locomp_q & 0xff);
18943 			regval[idx] = curr_locomp;
18944 		}
18945 		wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18946 					 regval);
18947 	}
18948 
18949 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
18950 
18951 		wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
18952 		wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
18953 	}
18954 
18955 	if (pi->phyhang_avoid)
18956 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
18957 }
18958 
18959 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
18960 {
18961 	u8 tx_lpf_bw = 0;
18962 
18963 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18964 		if (CHSPEC_IS40(pi->radio_chanspec))
18965 			tx_lpf_bw = 3;
18966 		else
18967 			tx_lpf_bw = 1;
18968 
18969 		if (PHY_IPA(pi)) {
18970 			if (CHSPEC_IS40(pi->radio_chanspec))
18971 				tx_lpf_bw = 5;
18972 			else
18973 				tx_lpf_bw = 4;
18974 		}
18975 
18976 		write_phy_reg(pi, 0xe8,
18977 			      (tx_lpf_bw << 0) |
18978 			      (tx_lpf_bw << 3) |
18979 			      (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18980 
18981 		if (PHY_IPA(pi)) {
18982 
18983 			if (CHSPEC_IS40(pi->radio_chanspec))
18984 				tx_lpf_bw = 4;
18985 			else
18986 				tx_lpf_bw = 1;
18987 
18988 			write_phy_reg(pi, 0xe9,
18989 				      (tx_lpf_bw << 0) |
18990 				      (tx_lpf_bw << 3) |
18991 				      (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18992 		}
18993 	}
18994 }
18995 
18996 static void
18997 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
18998 {
18999 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19000 		if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19001 		    CHSPEC_IS40(pi->radio_chanspec)) {
19002 			if (!pi->nphy_anarxlpf_adjusted) {
19003 				write_radio_reg(pi,
19004 						(RADIO_2056_RX_RXLPF_RCCAL_LPC |
19005 						 RADIO_2056_RX0),
19006 						((pi->nphy_rccal_value +
19007 						  reduction_factr) | 0x80));
19008 
19009 				pi->nphy_anarxlpf_adjusted = true;
19010 			}
19011 		} else {
19012 			if (pi->nphy_anarxlpf_adjusted) {
19013 				write_radio_reg(pi,
19014 						(RADIO_2056_RX_RXLPF_RCCAL_LPC |
19015 						 RADIO_2056_RX0),
19016 						(pi->nphy_rccal_value | 0x80));
19017 
19018 				pi->nphy_anarxlpf_adjusted = false;
19019 			}
19020 		}
19021 	}
19022 }
19023 
19024 static void
19025 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
19026 				 int *tone_id_buf, u32 *noise_var_buf)
19027 {
19028 	int i;
19029 	u32 offset;
19030 	int tone_id;
19031 	int tbllen =
19032 		CHSPEC_IS40(pi->radio_chanspec) ?
19033 		NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
19034 
19035 	if (pi->nphy_noisevars_adjusted) {
19036 		for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
19037 			tone_id = pi->nphy_saved_noisevars.tone_id[i];
19038 			offset = (tone_id >= 0) ?
19039 				 ((tone_id *
19040 				   2) + 1) : (tbllen + (tone_id * 2) + 1);
19041 			wlc_phy_table_write_nphy(
19042 				pi, NPHY_TBL_ID_NOISEVAR, 1,
19043 				offset, 32,
19044 				&pi->nphy_saved_noisevars.min_noise_vars[i]);
19045 		}
19046 
19047 		pi->nphy_saved_noisevars.bufcount = 0;
19048 		pi->nphy_noisevars_adjusted = false;
19049 	}
19050 
19051 	if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
19052 		pi->nphy_saved_noisevars.bufcount = 0;
19053 
19054 		for (i = 0; i < ntones; i++) {
19055 			tone_id = tone_id_buf[i];
19056 			offset = (tone_id >= 0) ?
19057 				 ((tone_id * 2) + 1) :
19058 				 (tbllen + (tone_id * 2) + 1);
19059 			pi->nphy_saved_noisevars.tone_id[i] = tone_id;
19060 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19061 						offset, 32,
19062 						&pi->nphy_saved_noisevars.
19063 						min_noise_vars[i]);
19064 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19065 						 offset, 32, &noise_var_buf[i]);
19066 			pi->nphy_saved_noisevars.bufcount++;
19067 		}
19068 
19069 		pi->nphy_noisevars_adjusted = true;
19070 	}
19071 }
19072 
19073 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
19074 {
19075 	u16 regval;
19076 
19077 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19078 		if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19079 		    CHSPEC_IS40(pi->radio_chanspec)) {
19080 			if (!pi->nphy_crsminpwr_adjusted) {
19081 				regval = read_phy_reg(pi, 0x27d);
19082 				pi->nphy_crsminpwr[0] = regval & 0xff;
19083 				regval &= 0xff00;
19084 				regval |= (u16) minpwr;
19085 				write_phy_reg(pi, 0x27d, regval);
19086 
19087 				regval = read_phy_reg(pi, 0x280);
19088 				pi->nphy_crsminpwr[1] = regval & 0xff;
19089 				regval &= 0xff00;
19090 				regval |= (u16) minpwr;
19091 				write_phy_reg(pi, 0x280, regval);
19092 
19093 				regval = read_phy_reg(pi, 0x283);
19094 				pi->nphy_crsminpwr[2] = regval & 0xff;
19095 				regval &= 0xff00;
19096 				regval |= (u16) minpwr;
19097 				write_phy_reg(pi, 0x283, regval);
19098 
19099 				pi->nphy_crsminpwr_adjusted = true;
19100 			}
19101 		} else {
19102 			if (pi->nphy_crsminpwr_adjusted) {
19103 				regval = read_phy_reg(pi, 0x27d);
19104 				regval &= 0xff00;
19105 				regval |= pi->nphy_crsminpwr[0];
19106 				write_phy_reg(pi, 0x27d, regval);
19107 
19108 				regval = read_phy_reg(pi, 0x280);
19109 				regval &= 0xff00;
19110 				regval |= pi->nphy_crsminpwr[1];
19111 				write_phy_reg(pi, 0x280, regval);
19112 
19113 				regval = read_phy_reg(pi, 0x283);
19114 				regval &= 0xff00;
19115 				regval |= pi->nphy_crsminpwr[2];
19116 				write_phy_reg(pi, 0x283, regval);
19117 
19118 				pi->nphy_crsminpwr_adjusted = false;
19119 			}
19120 		}
19121 	}
19122 }
19123 
19124 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19125 {
19126 	u16 cur_channel = 0;
19127 	int nphy_adj_tone_id_buf[] = { 57, 58 };
19128 	u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19129 	bool isAdjustNoiseVar = false;
19130 	uint numTonesAdjust = 0;
19131 	u32 tempval = 0;
19132 
19133 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19134 		if (pi->phyhang_avoid)
19135 			wlc_phy_stay_in_carriersearch_nphy(pi, true);
19136 
19137 		cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19138 
19139 		if (pi->nphy_gband_spurwar_en) {
19140 
19141 			wlc_phy_adjust_rx_analpfbw_nphy(
19142 				pi,
19143 				NPHY_ANARXLPFBW_REDUCTIONFACT);
19144 
19145 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
19146 				if ((cur_channel == 11)
19147 				    && CHSPEC_IS40(pi->radio_chanspec))
19148 					wlc_phy_adjust_min_noisevar_nphy(
19149 						pi, 2,
19150 						nphy_adj_tone_id_buf,
19151 						nphy_adj_noise_var_buf);
19152 				else
19153 					wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19154 									 NULL,
19155 									 NULL);
19156 			}
19157 
19158 			wlc_phy_adjust_crsminpwr_nphy(pi,
19159 						     NPHY_ADJUSTED_MINCRSPOWER);
19160 		}
19161 
19162 		if ((pi->nphy_gband_spurwar2_en)
19163 		    && CHSPEC_IS2G(pi->radio_chanspec)) {
19164 
19165 			if (CHSPEC_IS40(pi->radio_chanspec)) {
19166 				switch (cur_channel) {
19167 				case 3:
19168 					nphy_adj_tone_id_buf[0] = 57;
19169 					nphy_adj_tone_id_buf[1] = 58;
19170 					nphy_adj_noise_var_buf[0] = 0x22f;
19171 					nphy_adj_noise_var_buf[1] = 0x25f;
19172 					isAdjustNoiseVar = true;
19173 					break;
19174 				case 4:
19175 					nphy_adj_tone_id_buf[0] = 41;
19176 					nphy_adj_tone_id_buf[1] = 42;
19177 					nphy_adj_noise_var_buf[0] = 0x22f;
19178 					nphy_adj_noise_var_buf[1] = 0x25f;
19179 					isAdjustNoiseVar = true;
19180 					break;
19181 				case 5:
19182 					nphy_adj_tone_id_buf[0] = 25;
19183 					nphy_adj_tone_id_buf[1] = 26;
19184 					nphy_adj_noise_var_buf[0] = 0x24f;
19185 					nphy_adj_noise_var_buf[1] = 0x25f;
19186 					isAdjustNoiseVar = true;
19187 					break;
19188 				case 6:
19189 					nphy_adj_tone_id_buf[0] = 9;
19190 					nphy_adj_tone_id_buf[1] = 10;
19191 					nphy_adj_noise_var_buf[0] = 0x22f;
19192 					nphy_adj_noise_var_buf[1] = 0x24f;
19193 					isAdjustNoiseVar = true;
19194 					break;
19195 				case 7:
19196 					nphy_adj_tone_id_buf[0] = 121;
19197 					nphy_adj_tone_id_buf[1] = 122;
19198 					nphy_adj_noise_var_buf[0] = 0x18f;
19199 					nphy_adj_noise_var_buf[1] = 0x24f;
19200 					isAdjustNoiseVar = true;
19201 					break;
19202 				case 8:
19203 					nphy_adj_tone_id_buf[0] = 105;
19204 					nphy_adj_tone_id_buf[1] = 106;
19205 					nphy_adj_noise_var_buf[0] = 0x22f;
19206 					nphy_adj_noise_var_buf[1] = 0x25f;
19207 					isAdjustNoiseVar = true;
19208 					break;
19209 				case 9:
19210 					nphy_adj_tone_id_buf[0] = 89;
19211 					nphy_adj_tone_id_buf[1] = 90;
19212 					nphy_adj_noise_var_buf[0] = 0x22f;
19213 					nphy_adj_noise_var_buf[1] = 0x24f;
19214 					isAdjustNoiseVar = true;
19215 					break;
19216 				case 10:
19217 					nphy_adj_tone_id_buf[0] = 73;
19218 					nphy_adj_tone_id_buf[1] = 74;
19219 					nphy_adj_noise_var_buf[0] = 0x22f;
19220 					nphy_adj_noise_var_buf[1] = 0x24f;
19221 					isAdjustNoiseVar = true;
19222 					break;
19223 				default:
19224 					isAdjustNoiseVar = false;
19225 					break;
19226 				}
19227 			}
19228 
19229 			if (isAdjustNoiseVar) {
19230 				numTonesAdjust = ARRAY_SIZE(nphy_adj_tone_id_buf);
19231 
19232 				wlc_phy_adjust_min_noisevar_nphy(
19233 					pi,
19234 					numTonesAdjust,
19235 					nphy_adj_tone_id_buf,
19236 					nphy_adj_noise_var_buf);
19237 
19238 				tempval = 0;
19239 
19240 			} else {
19241 				wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19242 								 NULL);
19243 			}
19244 		}
19245 
19246 		if ((pi->nphy_aband_spurwar_en) &&
19247 		    (CHSPEC_IS5G(pi->radio_chanspec))) {
19248 			switch (cur_channel) {
19249 			case 54:
19250 				nphy_adj_tone_id_buf[0] = 32;
19251 				nphy_adj_noise_var_buf[0] = 0x25f;
19252 				break;
19253 			case 38:
19254 			case 102:
19255 			case 118:
19256 				if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) &&
19257 				    (pi->sh->chippkg == BCMA_PKG_ID_BCM4717)) {
19258 					nphy_adj_tone_id_buf[0] = 32;
19259 					nphy_adj_noise_var_buf[0] = 0x21f;
19260 				} else {
19261 					nphy_adj_tone_id_buf[0] = 0;
19262 					nphy_adj_noise_var_buf[0] = 0x0;
19263 				}
19264 				break;
19265 			case 134:
19266 				nphy_adj_tone_id_buf[0] = 32;
19267 				nphy_adj_noise_var_buf[0] = 0x21f;
19268 				break;
19269 			case 151:
19270 				nphy_adj_tone_id_buf[0] = 16;
19271 				nphy_adj_noise_var_buf[0] = 0x23f;
19272 				break;
19273 			case 153:
19274 			case 161:
19275 				nphy_adj_tone_id_buf[0] = 48;
19276 				nphy_adj_noise_var_buf[0] = 0x23f;
19277 				break;
19278 			default:
19279 				nphy_adj_tone_id_buf[0] = 0;
19280 				nphy_adj_noise_var_buf[0] = 0x0;
19281 				break;
19282 			}
19283 
19284 			if (nphy_adj_tone_id_buf[0]
19285 			    && nphy_adj_noise_var_buf[0])
19286 				wlc_phy_adjust_min_noisevar_nphy(
19287 					pi, 1,
19288 					nphy_adj_tone_id_buf,
19289 					nphy_adj_noise_var_buf);
19290 			else
19291 				wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19292 								 NULL);
19293 		}
19294 
19295 		if (pi->phyhang_avoid)
19296 			wlc_phy_stay_in_carriersearch_nphy(pi, false);
19297 	}
19298 }
19299 
19300 void wlc_phy_init_nphy(struct brcms_phy *pi)
19301 {
19302 	u16 val;
19303 	u16 clip1_ths[2];
19304 	struct nphy_txgains target_gain;
19305 	u8 tx_pwr_ctrl_state;
19306 	bool do_nphy_cal = false;
19307 	uint core;
19308 	u32 d11_clk_ctl_st;
19309 	bool do_rssi_cal = false;
19310 
19311 	core = 0;
19312 
19313 	if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19314 		pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
19315 
19316 	if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19317 	    ((pi->sh->chippkg == BCMA_PKG_ID_BCM4717) ||
19318 	     (pi->sh->chippkg == BCMA_PKG_ID_BCM4718))) {
19319 		if ((pi->sh->boardflags & BFL_EXTLNA) &&
19320 		    (CHSPEC_IS2G(pi->radio_chanspec)))
19321 			bcma_cc_set32(&pi->d11core->bus->drv_cc,
19322 				      BCMA_CC_CHIPCTL, 0x40);
19323 	}
19324 
19325 	if ((!PHY_IPA(pi)) && (pi->sh->chip == BCMA_CHIP_ID_BCM5357))
19326 		bcma_chipco_chipctl_maskset(&pi->d11core->bus->drv_cc, 1,
19327 					    ~CCTRL5357_EXTPA, CCTRL5357_EXTPA);
19328 
19329 	if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
19330 	    CHSPEC_IS40(pi->radio_chanspec)) {
19331 
19332 		d11_clk_ctl_st = bcma_read32(pi->d11core,
19333 					     D11REGOFFS(clk_ctl_st));
19334 		bcma_mask32(pi->d11core, D11REGOFFS(clk_ctl_st),
19335 			    ~(CCS_FORCEHT | CCS_HTAREQ));
19336 
19337 		bcma_write32(pi->d11core, D11REGOFFS(clk_ctl_st),
19338 			     d11_clk_ctl_st);
19339 	}
19340 
19341 	pi->use_int_tx_iqlo_cal_nphy =
19342 		(PHY_IPA(pi) ||
19343 		 (NREV_GE(pi->pubpi.phy_rev, 7) ||
19344 		  (NREV_GE(pi->pubpi.phy_rev, 5)
19345 		   && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19346 
19347 	pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
19348 
19349 	pi->nphy_deaf_count = 0;
19350 
19351 	wlc_phy_tbl_init_nphy(pi);
19352 
19353 	pi->nphy_crsminpwr_adjusted = false;
19354 	pi->nphy_noisevars_adjusted = false;
19355 
19356 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19357 		write_phy_reg(pi, 0xe7, 0);
19358 		write_phy_reg(pi, 0xec, 0);
19359 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19360 			write_phy_reg(pi, 0x342, 0);
19361 			write_phy_reg(pi, 0x343, 0);
19362 			write_phy_reg(pi, 0x346, 0);
19363 			write_phy_reg(pi, 0x347, 0);
19364 		}
19365 		write_phy_reg(pi, 0xe5, 0);
19366 		write_phy_reg(pi, 0xe6, 0);
19367 	} else {
19368 		write_phy_reg(pi, 0xec, 0);
19369 	}
19370 
19371 	write_phy_reg(pi, 0x91, 0);
19372 	write_phy_reg(pi, 0x92, 0);
19373 	if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19374 		write_phy_reg(pi, 0x93, 0);
19375 		write_phy_reg(pi, 0x94, 0);
19376 	}
19377 
19378 	and_phy_reg(pi, 0xa1, ~3);
19379 
19380 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19381 		write_phy_reg(pi, 0x8f, 0);
19382 		write_phy_reg(pi, 0xa5, 0);
19383 	} else {
19384 		write_phy_reg(pi, 0xa5, 0);
19385 	}
19386 
19387 	if (NREV_IS(pi->pubpi.phy_rev, 2))
19388 		mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19389 	else if (NREV_LT(pi->pubpi.phy_rev, 2))
19390 		mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19391 
19392 	write_phy_reg(pi, 0x203, 32);
19393 	write_phy_reg(pi, 0x201, 32);
19394 
19395 	if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19396 		write_phy_reg(pi, 0x20d, 160);
19397 	else
19398 		write_phy_reg(pi, 0x20d, 184);
19399 
19400 	write_phy_reg(pi, 0x13a, 200);
19401 
19402 	write_phy_reg(pi, 0x70, 80);
19403 
19404 	write_phy_reg(pi, 0x1ff, 48);
19405 
19406 	if (NREV_LT(pi->pubpi.phy_rev, 8))
19407 		wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19408 
19409 	wlc_phy_stf_chain_upd_nphy(pi);
19410 
19411 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19412 		write_phy_reg(pi, 0x180, 0xaa8);
19413 		write_phy_reg(pi, 0x181, 0x9a4);
19414 	}
19415 
19416 	if (PHY_IPA(pi)) {
19417 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19418 
19419 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19420 				    0x29b, (0x1 << 0), (1) << 0);
19421 
19422 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19423 				    0x29c, (0x1ff << 7),
19424 				    (pi->nphy_papd_epsilon_offset[core]) << 7);
19425 
19426 		}
19427 
19428 		wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19429 	} else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19430 		wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19431 	}
19432 
19433 	wlc_phy_workarounds_nphy(pi);
19434 
19435 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19436 
19437 	val = read_phy_reg(pi, 0x01);
19438 	write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19439 	write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19440 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19441 
19442 	wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19443 
19444 	wlc_phy_pa_override_nphy(pi, OFF);
19445 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
19446 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19447 	wlc_phy_pa_override_nphy(pi, ON);
19448 
19449 	wlc_phy_classifier_nphy(pi, 0, 0);
19450 	wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19451 
19452 	if (CHSPEC_IS2G(pi->radio_chanspec))
19453 		wlc_phy_bphy_init_nphy(pi);
19454 
19455 	tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19456 	wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
19457 
19458 	wlc_phy_txpwr_fixpower_nphy(pi);
19459 
19460 	wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19461 
19462 	wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19463 
19464 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19465 		u32 *tx_pwrctrl_tbl = NULL;
19466 		u16 idx;
19467 		s16 pga_gn = 0;
19468 		s16 pad_gn = 0;
19469 		s32 rfpwr_offset;
19470 
19471 		if (PHY_IPA(pi)) {
19472 			tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19473 		} else {
19474 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
19475 				if (NREV_IS(pi->pubpi.phy_rev, 3))
19476 					tx_pwrctrl_tbl =
19477 						nphy_tpc_5GHz_txgain_rev3;
19478 				else if (NREV_IS(pi->pubpi.phy_rev, 4))
19479 					tx_pwrctrl_tbl =
19480 						(pi->srom_fem5g.extpagain ==
19481 						 3) ?
19482 						nphy_tpc_5GHz_txgain_HiPwrEPA :
19483 						nphy_tpc_5GHz_txgain_rev4;
19484 				else
19485 					tx_pwrctrl_tbl =
19486 						nphy_tpc_5GHz_txgain_rev5;
19487 			} else {
19488 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19489 					if (pi->pubpi.radiorev == 5)
19490 						tx_pwrctrl_tbl =
19491 						   nphy_tpc_txgain_epa_2057rev5;
19492 					else if (pi->pubpi.radiorev == 3)
19493 						tx_pwrctrl_tbl =
19494 						   nphy_tpc_txgain_epa_2057rev3;
19495 				} else {
19496 					if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19497 					    (pi->srom_fem2g.extpagain == 3))
19498 						tx_pwrctrl_tbl =
19499 						       nphy_tpc_txgain_HiPwrEPA;
19500 					else
19501 						tx_pwrctrl_tbl =
19502 							nphy_tpc_txgain_rev3;
19503 				}
19504 			}
19505 		}
19506 
19507 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19508 					 192, 32, tx_pwrctrl_tbl);
19509 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19510 					 192, 32, tx_pwrctrl_tbl);
19511 
19512 		pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19513 
19514 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19515 
19516 			for (idx = 0; idx < 128; idx++) {
19517 				pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19518 				pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19519 				rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19520 								 pad_gn);
19521 				wlc_phy_table_write_nphy(
19522 					pi,
19523 					NPHY_TBL_ID_CORE1TXPWRCTL,
19524 					1, 576 + idx, 32,
19525 					&rfpwr_offset);
19526 				wlc_phy_table_write_nphy(
19527 					pi,
19528 					NPHY_TBL_ID_CORE2TXPWRCTL,
19529 					1, 576 + idx, 32,
19530 					&rfpwr_offset);
19531 			}
19532 		} else {
19533 
19534 			for (idx = 0; idx < 128; idx++) {
19535 				pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19536 				if (CHSPEC_IS2G(pi->radio_chanspec))
19537 					rfpwr_offset = (s16)
19538 						 nphy_papd_pga_gain_delta_ipa_2g
19539 								       [pga_gn];
19540 				else
19541 					rfpwr_offset = (s16)
19542 						 nphy_papd_pga_gain_delta_ipa_5g
19543 								       [pga_gn];
19544 
19545 				wlc_phy_table_write_nphy(
19546 					pi,
19547 					NPHY_TBL_ID_CORE1TXPWRCTL,
19548 					1, 576 + idx, 32,
19549 					&rfpwr_offset);
19550 				wlc_phy_table_write_nphy(
19551 					pi,
19552 					NPHY_TBL_ID_CORE2TXPWRCTL,
19553 					1, 576 + idx, 32,
19554 					&rfpwr_offset);
19555 			}
19556 
19557 		}
19558 	} else {
19559 
19560 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19561 					 192, 32, nphy_tpc_txgain);
19562 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19563 					 192, 32, nphy_tpc_txgain);
19564 	}
19565 
19566 	if (pi->sh->phyrxchain != 0x3)
19567 		wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
19568 					     pi->sh->phyrxchain);
19569 
19570 	if (PHY_PERICAL_MPHASE_PENDING(pi))
19571 		wlc_phy_cal_perical_mphase_restart(pi);
19572 
19573 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19574 		do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19575 			      (pi->nphy_rssical_chanspec_2G == 0) :
19576 			      (pi->nphy_rssical_chanspec_5G == 0);
19577 
19578 		if (do_rssi_cal)
19579 			wlc_phy_rssi_cal_nphy(pi);
19580 		else
19581 			wlc_phy_restore_rssical_nphy(pi);
19582 	} else {
19583 		wlc_phy_rssi_cal_nphy(pi);
19584 	}
19585 
19586 	if (!SCAN_RM_IN_PROGRESS(pi))
19587 		do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19588 			      (pi->nphy_iqcal_chanspec_2G == 0) :
19589 			      (pi->nphy_iqcal_chanspec_5G == 0);
19590 
19591 	if (!pi->do_initcal)
19592 		do_nphy_cal = false;
19593 
19594 	if (do_nphy_cal) {
19595 
19596 		target_gain = wlc_phy_get_tx_gain_nphy(pi);
19597 
19598 		if (pi->antsel_type == ANTSEL_2x3)
19599 			wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19600 					    true);
19601 
19602 		if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19603 			wlc_phy_rssi_cal_nphy(pi);
19604 
19605 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19606 				pi->nphy_cal_orig_pwr_idx[0] =
19607 					pi->nphy_txpwrindex[PHY_CORE_0]
19608 					.
19609 					index_internal;
19610 				pi->nphy_cal_orig_pwr_idx[1] =
19611 					pi->nphy_txpwrindex[PHY_CORE_1]
19612 					.
19613 					index_internal;
19614 
19615 				wlc_phy_precal_txgain_nphy(pi);
19616 				target_gain =
19617 					wlc_phy_get_tx_gain_nphy(pi);
19618 			}
19619 
19620 			if (wlc_phy_cal_txiqlo_nphy
19621 				    (pi, target_gain, true,
19622 				    false) == 0) {
19623 				if (wlc_phy_cal_rxiq_nphy
19624 					    (pi, target_gain, 2,
19625 					    false) == 0)
19626 					wlc_phy_savecal_nphy(pi);
19627 
19628 			}
19629 		} else if (pi->mphase_cal_phase_id ==
19630 			   MPHASE_CAL_STATE_IDLE) {
19631 			wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19632 					    PHY_PERICAL_PHYINIT);
19633 		}
19634 	} else {
19635 		wlc_phy_restorecal_nphy(pi);
19636 	}
19637 
19638 	wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19639 
19640 	wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19641 
19642 	wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19643 
19644 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19645 
19646 		write_phy_reg(pi, 0x70, 50);
19647 
19648 	wlc_phy_txlpfbw_nphy(pi);
19649 
19650 	wlc_phy_spurwar_nphy(pi);
19651 
19652 }
19653 
19654 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19655 {
19656 	u16 val;
19657 
19658 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19659 
19660 	val = read_phy_reg(pi, 0x01);
19661 	write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19662 	udelay(1);
19663 	write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19664 
19665 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19666 
19667 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19668 }
19669 
19670 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19671 {
19672 	u16 rfctrlintc_override_val;
19673 
19674 	if (!en) {
19675 
19676 		pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19677 		pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19678 
19679 		if (NREV_GE(pi->pubpi.phy_rev, 7))
19680 			rfctrlintc_override_val = 0x1480;
19681 		else if (NREV_GE(pi->pubpi.phy_rev, 3))
19682 			rfctrlintc_override_val =
19683 				CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19684 		else
19685 			rfctrlintc_override_val =
19686 				CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19687 
19688 		write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19689 		write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19690 	} else {
19691 		write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19692 		write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19693 	}
19694 
19695 }
19696 
19697 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
19698 {
19699 
19700 	u16 txrx_chain =
19701 		(NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
19702 	bool CoreActv_override = false;
19703 
19704 	if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19705 		txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19706 		CoreActv_override = true;
19707 
19708 		if (NREV_LE(pi->pubpi.phy_rev, 2))
19709 			and_phy_reg(pi, 0xa0, ~0x20);
19710 	} else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19711 		txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19712 		CoreActv_override = true;
19713 
19714 		if (NREV_LE(pi->pubpi.phy_rev, 2))
19715 			or_phy_reg(pi, 0xa0, 0x20);
19716 	}
19717 
19718 	mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19719 
19720 	if (CoreActv_override) {
19721 		pi->nphy_perical = PHY_PERICAL_DISABLE;
19722 		or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
19723 	} else {
19724 		pi->nphy_perical = PHY_PERICAL_MPHASE;
19725 		and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
19726 	}
19727 }
19728 
19729 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19730 {
19731 	u16 regval;
19732 	u16 tbl_buf[16];
19733 	uint i;
19734 	struct brcms_phy *pi = container_of(pih, struct brcms_phy, pubpi_ro);
19735 	u16 tbl_opcode;
19736 	bool suspend;
19737 
19738 	pi->sh->phyrxchain = rxcore_bitmask;
19739 
19740 	if (!pi->sh->clk)
19741 		return;
19742 
19743 	suspend = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
19744 			 MCTL_EN_MAC));
19745 	if (!suspend)
19746 		wlapi_suspend_mac_and_wait(pi->sh->physhim);
19747 
19748 	if (pi->phyhang_avoid)
19749 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
19750 
19751 	regval = read_phy_reg(pi, 0xa2);
19752 	regval &= ~(0xf << 4);
19753 	regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19754 	write_phy_reg(pi, 0xa2, regval);
19755 
19756 	if ((rxcore_bitmask & 0x3) != 0x3) {
19757 
19758 		write_phy_reg(pi, 0x20e, 1);
19759 
19760 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19761 			if (pi->rx2tx_biasentry == -1) {
19762 				wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
19763 							ARRAY_SIZE(tbl_buf), 80,
19764 							16, tbl_buf);
19765 
19766 				for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19767 					if (tbl_buf[i] ==
19768 					    NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
19769 						pi->rx2tx_biasentry = (u8) i;
19770 						tbl_opcode =
19771 							NPHY_REV3_RFSEQ_CMD_NOP;
19772 						wlc_phy_table_write_nphy(
19773 							pi,
19774 							NPHY_TBL_ID_RFSEQ,
19775 							1, i,
19776 							16,
19777 							&tbl_opcode);
19778 						break;
19779 					} else if (tbl_buf[i] ==
19780 						   NPHY_REV3_RFSEQ_CMD_END)
19781 						break;
19782 				}
19783 			}
19784 		}
19785 	} else {
19786 
19787 		write_phy_reg(pi, 0x20e, 30);
19788 
19789 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19790 			if (pi->rx2tx_biasentry != -1) {
19791 				tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19792 				wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
19793 							 1, pi->rx2tx_biasentry,
19794 							 16, &tbl_opcode);
19795 				pi->rx2tx_biasentry = -1;
19796 			}
19797 		}
19798 	}
19799 
19800 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19801 
19802 	if (pi->phyhang_avoid)
19803 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
19804 
19805 	if (!suspend)
19806 		wlapi_enable_mac(pi->sh->physhim);
19807 }
19808 
19809 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
19810 {
19811 	u16 regval, rxen_bits;
19812 	struct brcms_phy *pi = container_of(pih, struct brcms_phy, pubpi_ro);
19813 
19814 	regval = read_phy_reg(pi, 0xa2);
19815 	rxen_bits = (regval >> 4) & 0xf;
19816 
19817 	return (u8) rxen_bits;
19818 }
19819 
19820 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
19821 {
19822 	return PHY_IPA(pi);
19823 }
19824 
19825 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
19826 {
19827 }
19828 
19829 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
19830 {
19831 
19832 	and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
19833 	and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
19834 
19835 	or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
19836 	or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
19837 
19838 }
19839 
19840 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
19841 {
19842 	struct radio_20xx_regs *regs_2057_ptr = NULL;
19843 
19844 	if (NREV_IS(pi->pubpi.phy_rev, 7)) {
19845 		regs_2057_ptr = regs_2057_rev4;
19846 	} else if (NREV_IS(pi->pubpi.phy_rev, 8)
19847 		   || NREV_IS(pi->pubpi.phy_rev, 9)) {
19848 		switch (pi->pubpi.radiorev) {
19849 		case 5:
19850 
19851 			if (NREV_IS(pi->pubpi.phy_rev, 8))
19852 				regs_2057_ptr = regs_2057_rev5;
19853 			else if (NREV_IS(pi->pubpi.phy_rev, 9))
19854 				regs_2057_ptr = regs_2057_rev5v1;
19855 			break;
19856 
19857 		case 7:
19858 
19859 			regs_2057_ptr = regs_2057_rev7;
19860 			break;
19861 
19862 		case 8:
19863 
19864 			regs_2057_ptr = regs_2057_rev8;
19865 			break;
19866 
19867 		default:
19868 			break;
19869 		}
19870 	}
19871 
19872 	wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
19873 }
19874 
19875 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
19876 {
19877 	u16 rcal_reg = 0;
19878 	int i;
19879 
19880 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19881 
19882 		if (pi->pubpi.radiorev == 5) {
19883 
19884 			and_phy_reg(pi, 0x342, ~(0x1 << 1));
19885 
19886 			udelay(10);
19887 
19888 			mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
19889 			mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
19890 				      0x1);
19891 		}
19892 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
19893 
19894 		udelay(10);
19895 
19896 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
19897 
19898 		for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19899 			rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
19900 			if (rcal_reg & 0x1)
19901 				break;
19902 
19903 			udelay(100);
19904 		}
19905 
19906 		if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
19907 			 "HW error: radio calib2"))
19908 			return 0;
19909 
19910 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
19911 
19912 		rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
19913 
19914 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
19915 		if (pi->pubpi.radiorev == 5) {
19916 
19917 			mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
19918 			mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
19919 				      0x0);
19920 		}
19921 
19922 		if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
19923 
19924 			mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
19925 				      rcal_reg);
19926 			mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
19927 				      rcal_reg << 2);
19928 		}
19929 
19930 	} else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
19931 		u16 savereg;
19932 
19933 		savereg =
19934 			read_radio_reg(
19935 				pi,
19936 				RADIO_2056_SYN_PLL_MAST2 |
19937 				RADIO_2056_SYN);
19938 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
19939 				savereg | 0x7);
19940 		udelay(10);
19941 
19942 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19943 				0x1);
19944 		udelay(10);
19945 
19946 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19947 				0x9);
19948 
19949 		for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19950 			rcal_reg = read_radio_reg(
19951 				pi,
19952 				RADIO_2056_SYN_RCAL_CODE_OUT |
19953 				RADIO_2056_SYN);
19954 			if (rcal_reg & 0x80)
19955 				break;
19956 
19957 			udelay(100);
19958 		}
19959 
19960 		if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
19961 			 "HW error: radio calib3"))
19962 			return 0;
19963 
19964 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19965 				0x1);
19966 
19967 		rcal_reg =
19968 			read_radio_reg(pi,
19969 				       RADIO_2056_SYN_RCAL_CODE_OUT |
19970 				       RADIO_2056_SYN);
19971 
19972 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19973 				0x0);
19974 
19975 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
19976 				savereg);
19977 
19978 		return rcal_reg & 0x1f;
19979 	}
19980 	return rcal_reg & 0x3e;
19981 }
19982 
19983 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
19984 {
19985 	u16 rccal_valid;
19986 	int i;
19987 	bool chip43226_6362A0;
19988 
19989 	chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
19990 			    || (pi->pubpi.radiorev == 4)
19991 			    || (pi->pubpi.radiorev == 6));
19992 
19993 	rccal_valid = 0;
19994 	if (chip43226_6362A0) {
19995 		write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
19996 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
19997 	} else {
19998 		write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
19999 
20000 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
20001 	}
20002 	write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20003 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20004 
20005 	for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20006 		rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20007 		if (rccal_valid & 0x2)
20008 			break;
20009 
20010 		udelay(500);
20011 	}
20012 
20013 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20014 
20015 	rccal_valid = 0;
20016 	if (chip43226_6362A0) {
20017 		write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
20018 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20019 	} else {
20020 		write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
20021 
20022 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
20023 	}
20024 	write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20025 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20026 
20027 	for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20028 		rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20029 		if (rccal_valid & 0x2)
20030 			break;
20031 
20032 		udelay(500);
20033 	}
20034 
20035 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20036 
20037 	rccal_valid = 0;
20038 	if (chip43226_6362A0) {
20039 		write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
20040 
20041 		write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
20042 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20043 	} else {
20044 		write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
20045 		write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20046 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
20047 	}
20048 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20049 
20050 	for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20051 		rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20052 		if (rccal_valid & 0x2)
20053 			break;
20054 
20055 		udelay(500);
20056 	}
20057 
20058 	if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
20059 		return 0;
20060 
20061 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20062 
20063 	return rccal_valid;
20064 }
20065 
20066 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
20067 {
20068 
20069 	mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
20070 
20071 	mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
20072 	mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
20073 	mdelay(2);
20074 	mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
20075 	mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
20076 
20077 	if (pi->phy_init_por) {
20078 		wlc_phy_radio205x_rcal(pi);
20079 		wlc_phy_radio2057_rccal(pi);
20080 	}
20081 
20082 	mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
20083 }
20084 
20085 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20086 {
20087 	const struct radio_regs *regs_SYN_2056_ptr = NULL;
20088 	const struct radio_regs *regs_TX_2056_ptr = NULL;
20089 	const struct radio_regs *regs_RX_2056_ptr = NULL;
20090 
20091 	if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20092 		regs_SYN_2056_ptr = regs_SYN_2056;
20093 		regs_TX_2056_ptr = regs_TX_2056;
20094 		regs_RX_2056_ptr = regs_RX_2056;
20095 	} else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20096 		regs_SYN_2056_ptr = regs_SYN_2056_A1;
20097 		regs_TX_2056_ptr = regs_TX_2056_A1;
20098 		regs_RX_2056_ptr = regs_RX_2056_A1;
20099 	} else {
20100 		switch (pi->pubpi.radiorev) {
20101 		case 5:
20102 			regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20103 			regs_TX_2056_ptr = regs_TX_2056_rev5;
20104 			regs_RX_2056_ptr = regs_RX_2056_rev5;
20105 			break;
20106 
20107 		case 6:
20108 			regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20109 			regs_TX_2056_ptr = regs_TX_2056_rev6;
20110 			regs_RX_2056_ptr = regs_RX_2056_rev6;
20111 			break;
20112 
20113 		case 7:
20114 		case 9:
20115 			regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20116 			regs_TX_2056_ptr = regs_TX_2056_rev7;
20117 			regs_RX_2056_ptr = regs_RX_2056_rev7;
20118 			break;
20119 
20120 		case 8:
20121 			regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20122 			regs_TX_2056_ptr = regs_TX_2056_rev8;
20123 			regs_RX_2056_ptr = regs_RX_2056_rev8;
20124 			break;
20125 
20126 		case 11:
20127 			regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20128 			regs_TX_2056_ptr = regs_TX_2056_rev11;
20129 			regs_RX_2056_ptr = regs_RX_2056_rev11;
20130 			break;
20131 
20132 		default:
20133 			break;
20134 		}
20135 	}
20136 
20137 	wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20138 
20139 	wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20140 
20141 	wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20142 
20143 	wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20144 
20145 	wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20146 }
20147 
20148 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20149 {
20150 	mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
20151 
20152 	mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20153 	mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20154 	udelay(1000);
20155 	mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20156 
20157 	if ((pi->sh->boardflags2 & BFL2_LEGACY)
20158 	    || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20159 		mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20160 	else
20161 		mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20162 
20163 	mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
20164 
20165 	if (pi->phy_init_por)
20166 		wlc_phy_radio205x_rcal(pi);
20167 }
20168 
20169 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20170 {
20171 
20172 	and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20173 	or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
20174 
20175 	or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20176 }
20177 
20178 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20179 {
20180 	wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
20181 }
20182 
20183 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20184 {
20185 
20186 	and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
20187 		      ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
20188 
20189 	if (((pi->sh->sromrev >= 4)
20190 	     && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20191 	    || ((pi->sh->sromrev < 4))) {
20192 		and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
20193 		and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
20194 	}
20195 
20196 	mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20197 	write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
20198 
20199 	and_radio_reg(pi, RADIO_2055_CAL_MISC,
20200 		      ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
20201 
20202 	or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
20203 
20204 	or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
20205 
20206 	udelay(1000);
20207 
20208 	or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
20209 
20210 	SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20211 		   RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20212 
20213 	if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20214 		  RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20215 		 "HW error: radio calibration1\n"))
20216 		return;
20217 
20218 	and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
20219 		      ~(RADIO_2055_CAL_LPO_ENABLE));
20220 
20221 	wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
20222 
20223 	write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
20224 	write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
20225 
20226 	write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
20227 	write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
20228 
20229 	mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
20230 		      RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20231 	mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
20232 		      RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20233 	if (pi->nphy_gain_boost) {
20234 		and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20235 			      ~(RADIO_2055_GAINBST_DISABLE));
20236 		and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20237 			      ~(RADIO_2055_GAINBST_DISABLE));
20238 	} else {
20239 		or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20240 			     RADIO_2055_GAINBST_DISABLE);
20241 		or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20242 			     RADIO_2055_GAINBST_DISABLE);
20243 	}
20244 
20245 	udelay(2);
20246 }
20247 
20248 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20249 {
20250 	if (on) {
20251 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20252 			if (!pi->radio_is_on) {
20253 				wlc_phy_radio_preinit_205x(pi);
20254 				wlc_phy_radio_init_2057(pi);
20255 				wlc_phy_radio_postinit_2057(pi);
20256 			}
20257 
20258 			wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20259 					     pi->radio_chanspec);
20260 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20261 			wlc_phy_radio_preinit_205x(pi);
20262 			wlc_phy_radio_init_2056(pi);
20263 			wlc_phy_radio_postinit_2056(pi);
20264 
20265 			wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20266 					     pi->radio_chanspec);
20267 		} else {
20268 			wlc_phy_radio_preinit_2055(pi);
20269 			wlc_phy_radio_init_2055(pi);
20270 			wlc_phy_radio_postinit_2055(pi);
20271 		}
20272 
20273 		pi->radio_is_on = true;
20274 
20275 	} else {
20276 
20277 		if (NREV_GE(pi->pubpi.phy_rev, 3)
20278 		    && NREV_LT(pi->pubpi.phy_rev, 7)) {
20279 			and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20280 			mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20281 
20282 			write_radio_reg(pi,
20283 					RADIO_2056_TX_PADA_BOOST_TUNE |
20284 					RADIO_2056_TX0, 0);
20285 			write_radio_reg(pi,
20286 					RADIO_2056_TX_PADG_BOOST_TUNE |
20287 					RADIO_2056_TX0, 0);
20288 			write_radio_reg(pi,
20289 					RADIO_2056_TX_PGAA_BOOST_TUNE |
20290 					RADIO_2056_TX0, 0);
20291 			write_radio_reg(pi,
20292 					RADIO_2056_TX_PGAG_BOOST_TUNE |
20293 					RADIO_2056_TX0, 0);
20294 			mod_radio_reg(pi,
20295 				      RADIO_2056_TX_MIXA_BOOST_TUNE |
20296 				      RADIO_2056_TX0, 0xf0, 0);
20297 			write_radio_reg(pi,
20298 					RADIO_2056_TX_MIXG_BOOST_TUNE |
20299 					RADIO_2056_TX0, 0);
20300 
20301 			write_radio_reg(pi,
20302 					RADIO_2056_TX_PADA_BOOST_TUNE |
20303 					RADIO_2056_TX1, 0);
20304 			write_radio_reg(pi,
20305 					RADIO_2056_TX_PADG_BOOST_TUNE |
20306 					RADIO_2056_TX1, 0);
20307 			write_radio_reg(pi,
20308 					RADIO_2056_TX_PGAA_BOOST_TUNE |
20309 					RADIO_2056_TX1, 0);
20310 			write_radio_reg(pi,
20311 					RADIO_2056_TX_PGAG_BOOST_TUNE |
20312 					RADIO_2056_TX1, 0);
20313 			mod_radio_reg(pi,
20314 				      RADIO_2056_TX_MIXA_BOOST_TUNE |
20315 				      RADIO_2056_TX1, 0xf0, 0);
20316 			write_radio_reg(pi,
20317 					RADIO_2056_TX_MIXG_BOOST_TUNE |
20318 					RADIO_2056_TX1, 0);
20319 
20320 			pi->radio_is_on = false;
20321 		}
20322 
20323 		if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20324 			and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20325 			pi->radio_is_on = false;
20326 		}
20327 
20328 	}
20329 }
20330 
20331 static bool
20332 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20333 		       const struct chan_info_nphy_radio2057 **t0,
20334 		       const struct chan_info_nphy_radio205x **t1,
20335 		       const struct chan_info_nphy_radio2057_rev5 **t2,
20336 		       const struct chan_info_nphy_2055 **t3)
20337 {
20338 	uint i;
20339 	const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20340 	const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20341 	const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20342 	u32 tbl_len = 0;
20343 
20344 	int freq = 0;
20345 
20346 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20347 
20348 		if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20349 
20350 			chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20351 			tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20352 
20353 		} else if (NREV_IS(pi->pubpi.phy_rev, 8)
20354 			   || NREV_IS(pi->pubpi.phy_rev, 9)) {
20355 			switch (pi->pubpi.radiorev) {
20356 
20357 			case 5:
20358 
20359 				if (pi->pubpi.radiover == 0x0) {
20360 
20361 					chan_info_tbl_p_2 =
20362 						chan_info_nphyrev8_2057_rev5;
20363 					tbl_len = ARRAY_SIZE(
20364 						  chan_info_nphyrev8_2057_rev5);
20365 
20366 				} else if (pi->pubpi.radiover == 0x1) {
20367 
20368 					chan_info_tbl_p_2 =
20369 						chan_info_nphyrev9_2057_rev5v1;
20370 					tbl_len = ARRAY_SIZE(
20371 						chan_info_nphyrev9_2057_rev5v1);
20372 
20373 				}
20374 				break;
20375 
20376 			case 7:
20377 				chan_info_tbl_p_0 =
20378 					chan_info_nphyrev8_2057_rev7;
20379 				tbl_len = ARRAY_SIZE(
20380 						  chan_info_nphyrev8_2057_rev7);
20381 				break;
20382 
20383 			case 8:
20384 				chan_info_tbl_p_0 =
20385 					chan_info_nphyrev8_2057_rev8;
20386 				tbl_len = ARRAY_SIZE(
20387 						  chan_info_nphyrev8_2057_rev8);
20388 				break;
20389 
20390 			default:
20391 				break;
20392 			}
20393 		} else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20394 
20395 			chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20396 			tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20397 		} else {
20398 			goto fail;
20399 		}
20400 
20401 		for (i = 0; i < tbl_len; i++) {
20402 			if (pi->pubpi.radiorev == 5) {
20403 
20404 				if (chan_info_tbl_p_2[i].chan == channel)
20405 					break;
20406 			} else {
20407 
20408 				if (chan_info_tbl_p_0[i].chan == channel)
20409 					break;
20410 			}
20411 		}
20412 
20413 		if (i >= tbl_len)
20414 			goto fail;
20415 
20416 		if (pi->pubpi.radiorev == 5) {
20417 			*t2 = &chan_info_tbl_p_2[i];
20418 			freq = chan_info_tbl_p_2[i].freq;
20419 		} else {
20420 			*t0 = &chan_info_tbl_p_0[i];
20421 			freq = chan_info_tbl_p_0[i].freq;
20422 		}
20423 
20424 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20425 		if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20426 			chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20427 			tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20428 		} else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20429 			chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20430 			tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20431 		} else if (NREV_IS(pi->pubpi.phy_rev, 5)
20432 			   || NREV_IS(pi->pubpi.phy_rev, 6)) {
20433 			switch (pi->pubpi.radiorev) {
20434 			case 5:
20435 				chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20436 				tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20437 				break;
20438 			case 6:
20439 				chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20440 				tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20441 				break;
20442 			case 7:
20443 			case 9:
20444 				chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20445 				tbl_len =
20446 					ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20447 				break;
20448 			case 8:
20449 				chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20450 				tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20451 				break;
20452 			case 11:
20453 				chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20454 				tbl_len = ARRAY_SIZE(
20455 						    chan_info_nphyrev6_2056v11);
20456 				break;
20457 			default:
20458 				break;
20459 			}
20460 		}
20461 
20462 		for (i = 0; i < tbl_len; i++) {
20463 			if (chan_info_tbl_p_1[i].chan == channel)
20464 				break;
20465 		}
20466 
20467 		if (i >= tbl_len)
20468 			goto fail;
20469 
20470 		*t1 = &chan_info_tbl_p_1[i];
20471 		freq = chan_info_tbl_p_1[i].freq;
20472 
20473 	} else {
20474 		for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20475 			if (chan_info_nphy_2055[i].chan == channel)
20476 				break;
20477 
20478 		if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20479 			goto fail;
20480 
20481 		*t3 = &chan_info_nphy_2055[i];
20482 		freq = chan_info_nphy_2055[i].freq;
20483 	}
20484 
20485 	*f = freq;
20486 	return true;
20487 
20488 fail:
20489 	*f = WL_CHAN_FREQ_RANGE_2G;
20490 	return false;
20491 }
20492 
20493 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
20494 {
20495 	int freq;
20496 	const struct chan_info_nphy_radio2057 *t0 = NULL;
20497 	const struct chan_info_nphy_radio205x *t1 = NULL;
20498 	const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20499 	const struct chan_info_nphy_2055 *t3 = NULL;
20500 
20501 	if (channel == 0)
20502 		channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20503 
20504 	wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20505 
20506 	if (CHSPEC_IS2G(pi->radio_chanspec))
20507 		return WL_CHAN_FREQ_RANGE_2G;
20508 
20509 	if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20510 		return WL_CHAN_FREQ_RANGE_5GL;
20511 	else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20512 		return WL_CHAN_FREQ_RANGE_5GM;
20513 	else
20514 		return WL_CHAN_FREQ_RANGE_5GH;
20515 }
20516 
20517 static void
20518 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20519 				 const struct chan_info_nphy_2055 *ci)
20520 {
20521 
20522 	write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
20523 	write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
20524 	write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
20525 	write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
20526 
20527 	BRCMS_PHY_WAR_PR51571(pi);
20528 
20529 	write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
20530 	write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
20531 	write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
20532 	write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
20533 
20534 	BRCMS_PHY_WAR_PR51571(pi);
20535 
20536 	write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
20537 	write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
20538 	write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
20539 	write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
20540 
20541 	BRCMS_PHY_WAR_PR51571(pi);
20542 
20543 	write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
20544 			ci->RF_core1_lgbuf_a_tune);
20545 	write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
20546 			ci->RF_core1_lgbuf_g_tune);
20547 	write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
20548 	write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
20549 			ci->RF_core1_tx_pga_pad_tn);
20550 
20551 	BRCMS_PHY_WAR_PR51571(pi);
20552 
20553 	write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
20554 			ci->RF_core1_tx_mx_bgtrim);
20555 	write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
20556 			ci->RF_core2_lgbuf_a_tune);
20557 	write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
20558 			ci->RF_core2_lgbuf_g_tune);
20559 	write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
20560 
20561 	BRCMS_PHY_WAR_PR51571(pi);
20562 
20563 	write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
20564 			ci->RF_core2_tx_pga_pad_tn);
20565 	write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
20566 			ci->RF_core2_tx_mx_bgtrim);
20567 
20568 	udelay(50);
20569 
20570 	write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
20571 	write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
20572 
20573 	BRCMS_PHY_WAR_PR51571(pi);
20574 
20575 	write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
20576 
20577 	udelay(300);
20578 }
20579 
20580 static void
20581 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20582 				 const struct chan_info_nphy_radio205x *ci)
20583 {
20584 	const struct radio_regs *regs_SYN_2056_ptr = NULL;
20585 
20586 	write_radio_reg(pi,
20587 			RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
20588 			ci->RF_SYN_pll_vcocal1);
20589 	write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
20590 			ci->RF_SYN_pll_vcocal2);
20591 	write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
20592 			ci->RF_SYN_pll_refdiv);
20593 	write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
20594 			ci->RF_SYN_pll_mmd2);
20595 	write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
20596 			ci->RF_SYN_pll_mmd1);
20597 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20598 			ci->RF_SYN_pll_loopfilter1);
20599 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20600 			ci->RF_SYN_pll_loopfilter2);
20601 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
20602 			ci->RF_SYN_pll_loopfilter3);
20603 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20604 			ci->RF_SYN_pll_loopfilter4);
20605 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
20606 			ci->RF_SYN_pll_loopfilter5);
20607 	write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
20608 			ci->RF_SYN_reserved_addr27);
20609 	write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
20610 			ci->RF_SYN_reserved_addr28);
20611 	write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
20612 			ci->RF_SYN_reserved_addr29);
20613 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
20614 			ci->RF_SYN_logen_VCOBUF1);
20615 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
20616 			ci->RF_SYN_logen_MIXER2);
20617 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
20618 			ci->RF_SYN_logen_BUF3);
20619 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
20620 			ci->RF_SYN_logen_BUF4);
20621 
20622 	write_radio_reg(pi,
20623 			RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
20624 			ci->RF_RX0_lnaa_tune);
20625 	write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
20626 			ci->RF_RX0_lnag_tune);
20627 	write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
20628 			ci->RF_TX0_intpaa_boost_tune);
20629 	write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
20630 			ci->RF_TX0_intpag_boost_tune);
20631 	write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
20632 			ci->RF_TX0_pada_boost_tune);
20633 	write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
20634 			ci->RF_TX0_padg_boost_tune);
20635 	write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
20636 			ci->RF_TX0_pgaa_boost_tune);
20637 	write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
20638 			ci->RF_TX0_pgag_boost_tune);
20639 	write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
20640 			ci->RF_TX0_mixa_boost_tune);
20641 	write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
20642 			ci->RF_TX0_mixg_boost_tune);
20643 
20644 	write_radio_reg(pi,
20645 			RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
20646 			ci->RF_RX1_lnaa_tune);
20647 	write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
20648 			ci->RF_RX1_lnag_tune);
20649 	write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
20650 			ci->RF_TX1_intpaa_boost_tune);
20651 	write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
20652 			ci->RF_TX1_intpag_boost_tune);
20653 	write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
20654 			ci->RF_TX1_pada_boost_tune);
20655 	write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
20656 			ci->RF_TX1_padg_boost_tune);
20657 	write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
20658 			ci->RF_TX1_pgaa_boost_tune);
20659 	write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
20660 			ci->RF_TX1_pgag_boost_tune);
20661 	write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
20662 			ci->RF_TX1_mixa_boost_tune);
20663 	write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
20664 			ci->RF_TX1_mixg_boost_tune);
20665 
20666 	if (NREV_IS(pi->pubpi.phy_rev, 3))
20667 		regs_SYN_2056_ptr = regs_SYN_2056;
20668 	else if (NREV_IS(pi->pubpi.phy_rev, 4))
20669 		regs_SYN_2056_ptr = regs_SYN_2056_A1;
20670 	else {
20671 		switch (pi->pubpi.radiorev) {
20672 		case 5:
20673 			regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20674 			break;
20675 		case 6:
20676 			regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20677 			break;
20678 		case 7:
20679 		case 9:
20680 			regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20681 			break;
20682 		case 8:
20683 			regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20684 			break;
20685 		case 11:
20686 			regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20687 			break;
20688 		}
20689 	}
20690 	if (CHSPEC_IS2G(pi->radio_chanspec))
20691 		write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20692 				RADIO_2056_SYN,
20693 				(u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20694 	else
20695 		write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20696 				RADIO_2056_SYN,
20697 				(u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20698 
20699 	if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20700 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
20701 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20702 					RADIO_2056_SYN, 0x1f);
20703 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20704 					RADIO_2056_SYN, 0x1f);
20705 
20706 			if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
20707 			    (pi->sh->chip == BCMA_CHIP_ID_BCM47162)) {
20708 				write_radio_reg(pi,
20709 						RADIO_2056_SYN_PLL_LOOPFILTER4 |
20710 						RADIO_2056_SYN, 0x14);
20711 				write_radio_reg(pi,
20712 						RADIO_2056_SYN_PLL_CP2 |
20713 						RADIO_2056_SYN, 0x00);
20714 			} else {
20715 				write_radio_reg(pi,
20716 						RADIO_2056_SYN_PLL_LOOPFILTER4 |
20717 						RADIO_2056_SYN, 0xb);
20718 				write_radio_reg(pi,
20719 						RADIO_2056_SYN_PLL_CP2 |
20720 						RADIO_2056_SYN, 0x14);
20721 			}
20722 		}
20723 	}
20724 
20725 	if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20726 	    (CHSPEC_IS2G(pi->radio_chanspec))) {
20727 		write_radio_reg(pi,
20728 				RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20729 				0x1f);
20730 		write_radio_reg(pi,
20731 				RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20732 				0x1f);
20733 		write_radio_reg(pi,
20734 				RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20735 				0xb);
20736 		write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
20737 				0x20);
20738 	}
20739 
20740 	if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20741 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
20742 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20743 					RADIO_2056_SYN, 0x1f);
20744 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20745 					RADIO_2056_SYN, 0x1f);
20746 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
20747 					RADIO_2056_SYN, 0x5);
20748 			write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20749 					RADIO_2056_SYN, 0xc);
20750 		}
20751 	}
20752 
20753 	if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20754 		u16 pag_boost_tune;
20755 		u16 padg_boost_tune;
20756 		u16 pgag_boost_tune;
20757 		u16 mixg_boost_tune;
20758 		u16 bias, cascbias;
20759 		uint core;
20760 
20761 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20762 
20763 			if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20764 
20765 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20766 						 PADG_IDAC, 0xcc);
20767 
20768 				if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
20769 				    (pi->sh->chip == BCMA_CHIP_ID_BCM47162)) {
20770 					bias = 0x40;
20771 					cascbias = 0x45;
20772 					pag_boost_tune = 0x5;
20773 					pgag_boost_tune = 0x33;
20774 					padg_boost_tune = 0x77;
20775 					mixg_boost_tune = 0x55;
20776 				} else {
20777 					bias = 0x25;
20778 					cascbias = 0x20;
20779 
20780 					if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224 ||
20781 					     pi->sh->chip == BCMA_CHIP_ID_BCM43225) &&
20782 					    pi->sh->chippkg == BCMA_PKG_ID_BCM43224_FAB_SMIC) {
20783 						bias = 0x2a;
20784 						cascbias = 0x38;
20785 					}
20786 
20787 					pag_boost_tune = 0x4;
20788 					pgag_boost_tune = 0x03;
20789 					padg_boost_tune = 0x77;
20790 					mixg_boost_tune = 0x65;
20791 				}
20792 
20793 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20794 						 INTPAG_IMAIN_STAT, bias);
20795 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20796 						 INTPAG_IAUX_STAT, bias);
20797 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20798 						 INTPAG_CASCBIAS, cascbias);
20799 
20800 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20801 						 INTPAG_BOOST_TUNE,
20802 						 pag_boost_tune);
20803 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20804 						 PGAG_BOOST_TUNE,
20805 						 pgag_boost_tune);
20806 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20807 						 PADG_BOOST_TUNE,
20808 						 padg_boost_tune);
20809 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20810 						 MIXG_BOOST_TUNE,
20811 						 mixg_boost_tune);
20812 			} else {
20813 
20814 				bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20815 				       0x40 : 0x20;
20816 
20817 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20818 						 INTPAG_IMAIN_STAT, bias);
20819 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20820 						 INTPAG_IAUX_STAT, bias);
20821 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20822 						 INTPAG_CASCBIAS, 0x30);
20823 			}
20824 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20825 					 0xee);
20826 		}
20827 	}
20828 
20829 	if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20830 	    && CHSPEC_IS5G(pi->radio_chanspec)) {
20831 		u16 paa_boost_tune;
20832 		u16 pada_boost_tune;
20833 		u16 pgaa_boost_tune;
20834 		u16 mixa_boost_tune;
20835 		u16 freq, pabias, cascbias;
20836 		uint core;
20837 
20838 		freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
20839 
20840 		if (freq < 5150) {
20841 
20842 			paa_boost_tune = 0xa;
20843 			pada_boost_tune = 0x77;
20844 			pgaa_boost_tune = 0xf;
20845 			mixa_boost_tune = 0xf;
20846 		} else if (freq < 5340) {
20847 
20848 			paa_boost_tune = 0x8;
20849 			pada_boost_tune = 0x77;
20850 			pgaa_boost_tune = 0xfb;
20851 			mixa_boost_tune = 0xf;
20852 		} else if (freq < 5650) {
20853 
20854 			paa_boost_tune = 0x0;
20855 			pada_boost_tune = 0x77;
20856 			pgaa_boost_tune = 0xb;
20857 			mixa_boost_tune = 0xf;
20858 		} else {
20859 
20860 			paa_boost_tune = 0x0;
20861 			pada_boost_tune = 0x77;
20862 			if (freq != 5825)
20863 				pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
20864 			else
20865 				pgaa_boost_tune = 6;
20866 
20867 			mixa_boost_tune = 0xf;
20868 		}
20869 
20870 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20871 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20872 					 INTPAA_BOOST_TUNE, paa_boost_tune);
20873 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20874 					 PADA_BOOST_TUNE, pada_boost_tune);
20875 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20876 					 PGAA_BOOST_TUNE, pgaa_boost_tune);
20877 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20878 					 MIXA_BOOST_TUNE, mixa_boost_tune);
20879 
20880 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20881 					 TXSPARE1, 0x30);
20882 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20883 					 PA_SPARE2, 0xee);
20884 
20885 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20886 					 PADA_CASCBIAS, 0x3);
20887 
20888 			cascbias = 0x30;
20889 
20890 			if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224 ||
20891 			     pi->sh->chip == BCMA_CHIP_ID_BCM43225) &&
20892 			    pi->sh->chippkg == BCMA_PKG_ID_BCM43224_FAB_SMIC)
20893 				cascbias = 0x35;
20894 
20895 			pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
20896 
20897 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20898 					 INTPAA_IAUX_STAT, pabias);
20899 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20900 					 INTPAA_IMAIN_STAT, pabias);
20901 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20902 					 INTPAA_CASCBIAS, cascbias);
20903 		}
20904 	}
20905 
20906 	udelay(50);
20907 
20908 	wlc_phy_radio205x_vcocal_nphy(pi);
20909 }
20910 
20911 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
20912 {
20913 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20914 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
20915 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
20916 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
20917 			      (1 << 2));
20918 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
20919 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20920 		write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
20921 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
20922 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
20923 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
20924 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
20925 	}
20926 
20927 	udelay(300);
20928 }
20929 
20930 static void
20931 wlc_phy_chanspec_radio2057_setup(
20932 	struct brcms_phy *pi,
20933 	const struct chan_info_nphy_radio2057 *ci,
20934 	const struct chan_info_nphy_radio2057_rev5 *
20935 	ci2)
20936 {
20937 	int coreNum;
20938 	u16 txmix2g_tune_boost_pu = 0;
20939 	u16 pad2g_tune_pus = 0;
20940 
20941 	if (pi->pubpi.radiorev == 5) {
20942 
20943 		write_radio_reg(pi,
20944 				RADIO_2057_VCOCAL_COUNTVAL0,
20945 				ci2->RF_vcocal_countval0);
20946 		write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
20947 				ci2->RF_vcocal_countval1);
20948 		write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
20949 				ci2->RF_rfpll_refmaster_sparextalsize);
20950 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20951 				ci2->RF_rfpll_loopfilter_r1);
20952 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20953 				ci2->RF_rfpll_loopfilter_c2);
20954 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
20955 				ci2->RF_rfpll_loopfilter_c1);
20956 		write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
20957 				ci2->RF_cp_kpd_idac);
20958 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
20959 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
20960 		write_radio_reg(pi,
20961 				RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
20962 		write_radio_reg(pi,
20963 				RADIO_2057_LOGEN_MX2G_TUNE,
20964 				ci2->RF_logen_mx2g_tune);
20965 		write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
20966 				ci2->RF_logen_indbuf2g_tune);
20967 
20968 		write_radio_reg(pi,
20969 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
20970 				ci2->RF_txmix2g_tune_boost_pu_core0);
20971 		write_radio_reg(pi,
20972 				RADIO_2057_PAD2G_TUNE_PUS_CORE0,
20973 				ci2->RF_pad2g_tune_pus_core0);
20974 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
20975 				ci2->RF_lna2g_tune_core0);
20976 
20977 		write_radio_reg(pi,
20978 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
20979 				ci2->RF_txmix2g_tune_boost_pu_core1);
20980 		write_radio_reg(pi,
20981 				RADIO_2057_PAD2G_TUNE_PUS_CORE1,
20982 				ci2->RF_pad2g_tune_pus_core1);
20983 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
20984 				ci2->RF_lna2g_tune_core1);
20985 
20986 	} else {
20987 
20988 		write_radio_reg(pi,
20989 				RADIO_2057_VCOCAL_COUNTVAL0,
20990 				ci->RF_vcocal_countval0);
20991 		write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
20992 				ci->RF_vcocal_countval1);
20993 		write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
20994 				ci->RF_rfpll_refmaster_sparextalsize);
20995 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20996 				ci->RF_rfpll_loopfilter_r1);
20997 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20998 				ci->RF_rfpll_loopfilter_c2);
20999 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21000 				ci->RF_rfpll_loopfilter_c1);
21001 		write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
21002 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
21003 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
21004 		write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
21005 		write_radio_reg(pi,
21006 				RADIO_2057_LOGEN_MX2G_TUNE,
21007 				ci->RF_logen_mx2g_tune);
21008 		write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
21009 				ci->RF_logen_mx5g_tune);
21010 		write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21011 				ci->RF_logen_indbuf2g_tune);
21012 		write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
21013 				ci->RF_logen_indbuf5g_tune);
21014 
21015 		write_radio_reg(pi,
21016 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21017 				ci->RF_txmix2g_tune_boost_pu_core0);
21018 		write_radio_reg(pi,
21019 				RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21020 				ci->RF_pad2g_tune_pus_core0);
21021 		write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
21022 				ci->RF_pga_boost_tune_core0);
21023 		write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
21024 				ci->RF_txmix5g_boost_tune_core0);
21025 		write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
21026 				ci->RF_pad5g_tune_misc_pus_core0);
21027 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21028 				ci->RF_lna2g_tune_core0);
21029 		write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
21030 				ci->RF_lna5g_tune_core0);
21031 
21032 		write_radio_reg(pi,
21033 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21034 				ci->RF_txmix2g_tune_boost_pu_core1);
21035 		write_radio_reg(pi,
21036 				RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21037 				ci->RF_pad2g_tune_pus_core1);
21038 		write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
21039 				ci->RF_pga_boost_tune_core1);
21040 		write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
21041 				ci->RF_txmix5g_boost_tune_core1);
21042 		write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
21043 				ci->RF_pad5g_tune_misc_pus_core1);
21044 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21045 				ci->RF_lna2g_tune_core1);
21046 		write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
21047 				ci->RF_lna5g_tune_core1);
21048 	}
21049 
21050 	if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
21051 
21052 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
21053 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21054 					0x3f);
21055 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21056 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21057 					0x8);
21058 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21059 					0x8);
21060 		} else {
21061 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21062 					0x1f);
21063 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21064 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21065 					0x8);
21066 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21067 					0x8);
21068 		}
21069 	} else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
21070 		   (pi->pubpi.radiorev == 8)) {
21071 
21072 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
21073 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21074 					0x1b);
21075 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
21076 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21077 					0xa);
21078 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21079 					0xa);
21080 		} else {
21081 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21082 					0x1f);
21083 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21084 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21085 					0x8);
21086 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21087 					0x8);
21088 		}
21089 
21090 	}
21091 
21092 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
21093 		if (PHY_IPA(pi)) {
21094 			if (pi->pubpi.radiorev == 3)
21095 				txmix2g_tune_boost_pu = 0x6b;
21096 
21097 			if (pi->pubpi.radiorev == 5)
21098 				pad2g_tune_pus = 0x73;
21099 
21100 		} else {
21101 			if (pi->pubpi.radiorev != 5) {
21102 				pad2g_tune_pus = 0x3;
21103 
21104 				txmix2g_tune_boost_pu = 0x61;
21105 			}
21106 		}
21107 
21108 		for (coreNum = 0; coreNum <= 1; coreNum++) {
21109 
21110 			if (txmix2g_tune_boost_pu != 0)
21111 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21112 						 TXMIX2G_TUNE_BOOST_PU,
21113 						 txmix2g_tune_boost_pu);
21114 
21115 			if (pad2g_tune_pus != 0)
21116 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21117 						 PAD2G_TUNE_PUS,
21118 						 pad2g_tune_pus);
21119 		}
21120 	}
21121 
21122 	udelay(50);
21123 
21124 	wlc_phy_radio205x_vcocal_nphy(pi);
21125 }
21126 
21127 static void
21128 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21129 			    const struct nphy_sfo_cfg *ci)
21130 {
21131 	u16 val;
21132 
21133 	val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21134 	if (CHSPEC_IS5G(chanspec) && !val) {
21135 
21136 		val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21137 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21138 		      (val | MAC_PHY_FORCE_CLK));
21139 
21140 		or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21141 			   (BBCFG_RESETCCA | BBCFG_RESETRX));
21142 
21143 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21144 
21145 		or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
21146 	} else if (!CHSPEC_IS5G(chanspec) && val) {
21147 
21148 		and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
21149 
21150 		val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21151 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21152 		      (val | MAC_PHY_FORCE_CLK));
21153 
21154 		and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21155 			    (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21156 
21157 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21158 	}
21159 
21160 	write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21161 	write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21162 	write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21163 
21164 	write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21165 	write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21166 	write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21167 
21168 	if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21169 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
21170 
21171 		or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21172 	} else {
21173 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
21174 					NPHY_ClassifierCtrl_ofdm_en);
21175 
21176 		if (CHSPEC_IS2G(chanspec))
21177 			and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21178 	}
21179 
21180 	if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21181 		wlc_phy_txpwr_fixpower_nphy(pi);
21182 
21183 	if (NREV_LT(pi->pubpi.phy_rev, 3))
21184 		wlc_phy_adjust_lnagaintbl_nphy(pi);
21185 
21186 	wlc_phy_txlpfbw_nphy(pi);
21187 
21188 	if (NREV_GE(pi->pubpi.phy_rev, 3)
21189 	    && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21190 		u8 spuravoid = 0;
21191 
21192 		val = CHSPEC_CHANNEL(chanspec);
21193 		if (!CHSPEC_IS40(pi->radio_chanspec)) {
21194 			if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21195 				if ((val == 13) || (val == 14) || (val == 153))
21196 					spuravoid = 1;
21197 			} else if (((val >= 5) && (val <= 8)) || (val == 13)
21198 				   || (val == 14)) {
21199 				spuravoid = 1;
21200 			}
21201 		} else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21202 			if (val == 54)
21203 				spuravoid = 1;
21204 		} else if (pi->nphy_aband_spurwar_en &&
21205 		    ((val == 38) || (val == 102) || (val == 118))) {
21206 			if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716)
21207 			    && (pi->sh->chippkg == BCMA_PKG_ID_BCM4717)) {
21208 				spuravoid = 0;
21209 			} else {
21210 				spuravoid = 1;
21211 			}
21212 		}
21213 
21214 		if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21215 			spuravoid = 1;
21216 
21217 		if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
21218 		    (pi->sh->chip == BCMA_CHIP_ID_BCM43225)) {
21219 			bcma_pmu_spuravoid_pllupdate(&pi->d11core->bus->drv_cc,
21220 						     spuravoid);
21221 		} else {
21222 			wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21223 			bcma_pmu_spuravoid_pllupdate(&pi->d11core->bus->drv_cc,
21224 						     spuravoid);
21225 			wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21226 		}
21227 
21228 		if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224) ||
21229 		    (pi->sh->chip == BCMA_CHIP_ID_BCM43225)) {
21230 			if (spuravoid == 1) {
21231 				bcma_write16(pi->d11core,
21232 					     D11REGOFFS(tsf_clk_frac_l),
21233 					     0x5341);
21234 				bcma_write16(pi->d11core,
21235 					     D11REGOFFS(tsf_clk_frac_h), 0x8);
21236 			} else {
21237 				bcma_write16(pi->d11core,
21238 					     D11REGOFFS(tsf_clk_frac_l),
21239 					     0x8889);
21240 				bcma_write16(pi->d11core,
21241 					     D11REGOFFS(tsf_clk_frac_h), 0x8);
21242 			}
21243 		}
21244 
21245 		if (!((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
21246 		      (pi->sh->chip == BCMA_CHIP_ID_BCM47162)))
21247 			wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21248 
21249 		mod_phy_reg(pi, 0x01, (0x1 << 15),
21250 			    ((spuravoid > 0) ? (0x1 << 15) : 0));
21251 
21252 		wlc_phy_resetcca_nphy(pi);
21253 
21254 		pi->phy_isspuravoid = (spuravoid > 0);
21255 	}
21256 
21257 	if (NREV_LT(pi->pubpi.phy_rev, 7))
21258 		write_phy_reg(pi, 0x17e, 0x3830);
21259 
21260 	wlc_phy_spurwar_nphy(pi);
21261 }
21262 
21263 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21264 {
21265 	int freq;
21266 	const struct chan_info_nphy_radio2057 *t0 = NULL;
21267 	const struct chan_info_nphy_radio205x *t1 = NULL;
21268 	const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21269 	const struct chan_info_nphy_2055 *t3 = NULL;
21270 
21271 	if (!wlc_phy_chan2freq_nphy
21272 		    (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21273 		return;
21274 
21275 	wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21276 
21277 	if (CHSPEC_BW(chanspec) != pi->bw)
21278 		wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21279 
21280 	if (CHSPEC_IS40(chanspec)) {
21281 		if (CHSPEC_SB_UPPER(chanspec)) {
21282 			or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21283 			if (NREV_GE(pi->pubpi.phy_rev, 7))
21284 				or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21285 		} else {
21286 			and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21287 			if (NREV_GE(pi->pubpi.phy_rev, 7))
21288 				and_phy_reg(pi, 0x310,
21289 					    (~PRIM_SEL_UP20 & 0xffff));
21290 		}
21291 	}
21292 
21293 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21294 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21295 
21296 			if ((pi->pubpi.radiorev <= 4)
21297 			    || (pi->pubpi.radiorev == 6)) {
21298 				mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
21299 					      0x2,
21300 					      (CHSPEC_IS5G(chanspec) ? (1 << 1)
21301 					       : 0));
21302 				mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
21303 					      0x2,
21304 					      (CHSPEC_IS5G(chanspec) ? (1 << 1)
21305 					       : 0));
21306 			}
21307 
21308 			wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21309 			wlc_phy_chanspec_nphy_setup(pi, chanspec,
21310 				(pi->pubpi.radiorev == 5) ?
21311 				(const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21312 				(const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21313 
21314 		} else {
21315 
21316 			mod_radio_reg(pi,
21317 				      RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
21318 				      0x4,
21319 				      (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21320 			wlc_phy_chanspec_radio2056_setup(pi, t1);
21321 
21322 			wlc_phy_chanspec_nphy_setup(pi, chanspec,
21323 				(const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21324 		}
21325 
21326 	} else {
21327 
21328 		mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
21329 			      (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21330 			       : (0x05 << 4)));
21331 
21332 		wlc_phy_chanspec_radio2055_setup(pi, t3);
21333 		wlc_phy_chanspec_nphy_setup(pi, chanspec,
21334 					    (const struct nphy_sfo_cfg *)
21335 					     &(t3->PHY_BW1a));
21336 	}
21337 
21338 }
21339 
21340 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21341 {
21342 	struct brcms_phy *pi = container_of(ppi, struct brcms_phy, pubpi_ro);
21343 	u16 mask = 0xfc00;
21344 	u32 mc = 0;
21345 
21346 	if (NREV_GE(pi->pubpi.phy_rev, 7))
21347 		return;
21348 
21349 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21350 		u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21351 
21352 		if (!lut_init)
21353 			return;
21354 
21355 		if (pi->srom_fem2g.antswctrllut == 0) {
21356 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21357 						 1, 0x02, 16, &v0);
21358 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21359 						 1, 0x03, 16, &v1);
21360 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21361 						 1, 0x08, 16, &v2);
21362 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21363 						 1, 0x0C, 16, &v3);
21364 		}
21365 
21366 		if (pi->srom_fem5g.antswctrllut == 0) {
21367 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21368 						 1, 0x12, 16, &v0);
21369 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21370 						 1, 0x13, 16, &v1);
21371 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21372 						 1, 0x18, 16, &v2);
21373 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21374 						 1, 0x1C, 16, &v3);
21375 		}
21376 	} else {
21377 
21378 		write_phy_reg(pi, 0xc8, 0x0);
21379 		write_phy_reg(pi, 0xc9, 0x0);
21380 
21381 		bcma_chipco_gpio_control(&pi->d11core->bus->drv_cc, mask, mask);
21382 
21383 		mc = bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
21384 		mc &= ~MCTL_GPOUT_SEL_MASK;
21385 		bcma_write32(pi->d11core, D11REGOFFS(maccontrol), mc);
21386 
21387 		bcma_set16(pi->d11core, D11REGOFFS(psm_gpio_oe), mask);
21388 
21389 		bcma_mask16(pi->d11core, D11REGOFFS(psm_gpio_out), ~mask);
21390 
21391 		if (lut_init) {
21392 			write_phy_reg(pi, 0xf8, 0x02d8);
21393 			write_phy_reg(pi, 0xf9, 0x0301);
21394 			write_phy_reg(pi, 0xfa, 0x02d8);
21395 			write_phy_reg(pi, 0xfb, 0x0301);
21396 		}
21397 	}
21398 }
21399 
21400 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
21401 {
21402 	u16 curr_ctl, new_ctl;
21403 	bool suspended = false;
21404 
21405 	if (D11REV_IS(pi->sh->corerev, 16)) {
21406 		suspended = (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
21407 			     MCTL_EN_MAC) ? false : true;
21408 		if (!suspended)
21409 			wlapi_suspend_mac_and_wait(pi->sh->physhim);
21410 	}
21411 
21412 	curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21413 
21414 	new_ctl = (curr_ctl & (~mask)) | (val & mask);
21415 
21416 	mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21417 
21418 	if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21419 		wlapi_enable_mac(pi->sh->physhim);
21420 
21421 	return new_ctl;
21422 }
21423 
21424 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
21425 {
21426 	u16 trigger_mask, status_mask;
21427 	u16 orig_RfseqCoreActv;
21428 
21429 	switch (cmd) {
21430 	case NPHY_RFSEQ_RX2TX:
21431 		trigger_mask = NPHY_RfseqTrigger_rx2tx;
21432 		status_mask = NPHY_RfseqStatus_rx2tx;
21433 		break;
21434 	case NPHY_RFSEQ_TX2RX:
21435 		trigger_mask = NPHY_RfseqTrigger_tx2rx;
21436 		status_mask = NPHY_RfseqStatus_tx2rx;
21437 		break;
21438 	case NPHY_RFSEQ_RESET2RX:
21439 		trigger_mask = NPHY_RfseqTrigger_reset2rx;
21440 		status_mask = NPHY_RfseqStatus_reset2rx;
21441 		break;
21442 	case NPHY_RFSEQ_UPDATEGAINH:
21443 		trigger_mask = NPHY_RfseqTrigger_updategainh;
21444 		status_mask = NPHY_RfseqStatus_updategainh;
21445 		break;
21446 	case NPHY_RFSEQ_UPDATEGAINL:
21447 		trigger_mask = NPHY_RfseqTrigger_updategainl;
21448 		status_mask = NPHY_RfseqStatus_updategainl;
21449 		break;
21450 	case NPHY_RFSEQ_UPDATEGAINU:
21451 		trigger_mask = NPHY_RfseqTrigger_updategainu;
21452 		status_mask = NPHY_RfseqStatus_updategainu;
21453 		break;
21454 	default:
21455 		return;
21456 	}
21457 
21458 	orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21459 	or_phy_reg(pi, 0xa1,
21460 		   (NPHY_RfseqMode_CoreActv_override |
21461 		    NPHY_RfseqMode_Trigger_override));
21462 	or_phy_reg(pi, 0xa3, trigger_mask);
21463 	SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21464 	write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21465 	WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21466 }
21467 
21468 static void
21469 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21470 				     u8 core_mask, u8 off)
21471 {
21472 	u16 rfmxgain = 0, lpfgain = 0;
21473 	u16 tgain = 0;
21474 
21475 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21476 
21477 		switch (cmd) {
21478 		case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
21479 			wlc_phy_rfctrl_override_nphy_rev7(
21480 				pi, (0x1 << 5),
21481 				value, core_mask, off,
21482 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21483 			wlc_phy_rfctrl_override_nphy_rev7(
21484 				pi, (0x1 << 4), value,
21485 				core_mask, off,
21486 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21487 			wlc_phy_rfctrl_override_nphy_rev7(
21488 				pi, (0x1 << 3), value,
21489 				core_mask, off,
21490 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21491 			break;
21492 		case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
21493 			wlc_phy_rfctrl_override_nphy_rev7(
21494 				pi, (0x1 << 2),
21495 				value, core_mask, off,
21496 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21497 			wlc_phy_rfctrl_override_nphy_rev7(
21498 				pi, (0x1 << 1), value,
21499 				core_mask, off,
21500 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21501 			wlc_phy_rfctrl_override_nphy_rev7(
21502 				pi, (0x1 << 0), value,
21503 				core_mask, off,
21504 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21505 			wlc_phy_rfctrl_override_nphy_rev7(
21506 				pi, (0x1 << 1), value,
21507 				core_mask, off,
21508 				NPHY_REV7_RFCTRLOVERRIDE_ID2);
21509 			wlc_phy_rfctrl_override_nphy_rev7(
21510 				pi, (0x1 << 11), 0,
21511 				core_mask, off,
21512 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21513 			break;
21514 		case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
21515 			wlc_phy_rfctrl_override_nphy_rev7(
21516 				pi, (0x1 << 2),
21517 				value, core_mask, off,
21518 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21519 			wlc_phy_rfctrl_override_nphy_rev7(
21520 				pi, (0x1 << 1), value,
21521 				core_mask, off,
21522 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21523 			wlc_phy_rfctrl_override_nphy_rev7(
21524 				pi, (0x1 << 0), value,
21525 				core_mask, off,
21526 				NPHY_REV7_RFCTRLOVERRIDE_ID2);
21527 			wlc_phy_rfctrl_override_nphy_rev7(
21528 				pi, (0x1 << 2), value,
21529 				core_mask, off,
21530 				NPHY_REV7_RFCTRLOVERRIDE_ID2);
21531 			wlc_phy_rfctrl_override_nphy_rev7(
21532 				pi, (0x1 << 11), 1,
21533 				core_mask, off,
21534 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21535 			break;
21536 		case NPHY_REV7_RfctrlOverride_cmd_rxgain:
21537 			rfmxgain = value & 0x000ff;
21538 			lpfgain = value & 0x0ff00;
21539 			lpfgain = lpfgain >> 8;
21540 
21541 			wlc_phy_rfctrl_override_nphy_rev7(
21542 				pi, (0x1 << 11),
21543 				rfmxgain, core_mask,
21544 				off,
21545 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21546 			wlc_phy_rfctrl_override_nphy_rev7(
21547 				pi, (0x3 << 13),
21548 				lpfgain, core_mask,
21549 				off,
21550 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21551 			break;
21552 		case NPHY_REV7_RfctrlOverride_cmd_txgain:
21553 			tgain = value & 0x7fff;
21554 			lpfgain = value & 0x8000;
21555 			lpfgain = lpfgain >> 14;
21556 
21557 			wlc_phy_rfctrl_override_nphy_rev7(
21558 				pi, (0x1 << 12),
21559 				tgain, core_mask, off,
21560 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21561 			wlc_phy_rfctrl_override_nphy_rev7(
21562 				pi, (0x1 << 13),
21563 				lpfgain, core_mask,
21564 				off,
21565 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21566 			break;
21567 		}
21568 	}
21569 }
21570 
21571 static void
21572 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21573 			       u8 coresel, u8 rail, u8 rssi_type)
21574 {
21575 	u16 valuetostuff;
21576 
21577 	offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21578 		 NPHY_RSSICAL_MAXREAD : offset;
21579 	offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21580 		 -NPHY_RSSICAL_MAXREAD - 1 : offset;
21581 
21582 	valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21583 
21584 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21585 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21586 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21587 		write_phy_reg(pi, 0x1a6, valuetostuff);
21588 
21589 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21590 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21591 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21592 		write_phy_reg(pi, 0x1ac, valuetostuff);
21593 
21594 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21595 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21596 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21597 		write_phy_reg(pi, 0x1b2, valuetostuff);
21598 
21599 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21600 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21601 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21602 		write_phy_reg(pi, 0x1b8, valuetostuff);
21603 
21604 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21605 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21606 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21607 		write_phy_reg(pi, 0x1a4, valuetostuff);
21608 
21609 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21610 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21611 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21612 		write_phy_reg(pi, 0x1aa, valuetostuff);
21613 
21614 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21615 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21616 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21617 		write_phy_reg(pi, 0x1b0, valuetostuff);
21618 
21619 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21620 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21621 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21622 		write_phy_reg(pi, 0x1b6, valuetostuff);
21623 
21624 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21625 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21626 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21627 		write_phy_reg(pi, 0x1a5, valuetostuff);
21628 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21629 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21630 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21631 		write_phy_reg(pi, 0x1ab, valuetostuff);
21632 
21633 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21634 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21635 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21636 		write_phy_reg(pi, 0x1b1, valuetostuff);
21637 
21638 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21639 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21640 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21641 		write_phy_reg(pi, 0x1b7, valuetostuff);
21642 
21643 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21644 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21645 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21646 		write_phy_reg(pi, 0x1a7, valuetostuff);
21647 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21648 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21649 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21650 		write_phy_reg(pi, 0x1ad, valuetostuff);
21651 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21652 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21653 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21654 		write_phy_reg(pi, 0x1b3, valuetostuff);
21655 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21656 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21657 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21658 		write_phy_reg(pi, 0x1b9, valuetostuff);
21659 
21660 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21661 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21662 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21663 		write_phy_reg(pi, 0x1a8, valuetostuff);
21664 
21665 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21666 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21667 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21668 		write_phy_reg(pi, 0x1ae, valuetostuff);
21669 
21670 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21671 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21672 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21673 		write_phy_reg(pi, 0x1b4, valuetostuff);
21674 
21675 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21676 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21677 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21678 		write_phy_reg(pi, 0x1ba, valuetostuff);
21679 
21680 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21681 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21682 	    (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21683 		write_phy_reg(pi, 0x1a9, valuetostuff);
21684 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21685 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21686 	    (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21687 		write_phy_reg(pi, 0x1b5, valuetostuff);
21688 
21689 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21690 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21691 	    (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21692 		write_phy_reg(pi, 0x1af, valuetostuff);
21693 
21694 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21695 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21696 	    (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21697 		write_phy_reg(pi, 0x1bb, valuetostuff);
21698 }
21699 
21700 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21701 {
21702 	if (PHY_IPA(pi)) {
21703 		if (NREV_GE(pi->pubpi.phy_rev, 7))
21704 			write_radio_reg(pi,
21705 					((core == PHY_CORE_0) ?
21706 					 RADIO_2057_TX0_TX_SSI_MUX :
21707 					 RADIO_2057_TX1_TX_SSI_MUX),
21708 					(CHSPEC_IS5G(pi->radio_chanspec) ?
21709 					0xc : 0xe));
21710 		else
21711 			write_radio_reg(pi,
21712 					RADIO_2056_TX_TX_SSI_MUX |
21713 					((core == PHY_CORE_0) ?
21714 					 RADIO_2056_TX0 : RADIO_2056_TX1),
21715 					(CHSPEC_IS5G(pi->radio_chanspec) ?
21716 					0xc : 0xe));
21717 	} else {
21718 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21719 			write_radio_reg(pi,
21720 					((core == PHY_CORE_0) ?
21721 					 RADIO_2057_TX0_TX_SSI_MUX :
21722 					 RADIO_2057_TX1_TX_SSI_MUX),
21723 					0x11);
21724 
21725 			if (pi->pubpi.radioid == BCM2057_ID)
21726 				write_radio_reg(pi,
21727 						RADIO_2057_IQTEST_SEL_PU, 0x1);
21728 
21729 		} else {
21730 			write_radio_reg(pi,
21731 					RADIO_2056_TX_TX_SSI_MUX |
21732 					((core == PHY_CORE_0) ?
21733 					 RADIO_2056_TX0 : RADIO_2056_TX1),
21734 					0x11);
21735 		}
21736 	}
21737 }
21738 
21739 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21740 {
21741 	u16 mask, val;
21742 	u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21743 	    startseq;
21744 	u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21745 	    rfctrlovr_trigger_val;
21746 	u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21747 	u16 rfctrlcmd_val, rfctrlovr_val;
21748 	u8 core;
21749 
21750 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21751 		if (core_code == RADIO_MIMO_CORESEL_OFF) {
21752 			mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21753 			mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21754 
21755 			mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21756 			mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21757 
21758 			mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21759 			mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21760 
21761 			mask = (0x1 << 2) |
21762 			       (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21763 			mod_phy_reg(pi, 0xf9, mask, 0);
21764 			mod_phy_reg(pi, 0xfb, mask, 0);
21765 
21766 		} else {
21767 			for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21768 				if (core_code == RADIO_MIMO_CORESEL_CORE1
21769 				    && core == PHY_CORE_1)
21770 					continue;
21771 				else if (core_code == RADIO_MIMO_CORESEL_CORE2
21772 					 && core == PHY_CORE_0)
21773 					continue;
21774 
21775 				mod_phy_reg(pi, (core == PHY_CORE_0) ?
21776 					    0x8f : 0xa5, (0x1 << 9), 1 << 9);
21777 
21778 				if (rssi_type == NPHY_RSSI_SEL_W1 ||
21779 				    rssi_type == NPHY_RSSI_SEL_W2 ||
21780 				    rssi_type == NPHY_RSSI_SEL_NB) {
21781 					mod_phy_reg(pi,
21782 						    (core ==
21783 						     PHY_CORE_0) ? 0xa6 : 0xa7,
21784 						    (0x3 << 8), 0);
21785 
21786 					mask = (0x1 << 2) |
21787 					       (0x1 << 3) |
21788 					       (0x1 << 4) | (0x1 << 5);
21789 					mod_phy_reg(pi,
21790 						    (core ==
21791 						     PHY_CORE_0) ? 0xf9 : 0xfb,
21792 						    mask, 0);
21793 
21794 					if (rssi_type == NPHY_RSSI_SEL_W1) {
21795 						if (CHSPEC_IS5G(
21796 							  pi->radio_chanspec)) {
21797 							mask = (0x1 << 2);
21798 							val = 1 << 2;
21799 						} else {
21800 							mask = (0x1 << 3);
21801 							val = 1 << 3;
21802 						}
21803 					} else if (rssi_type ==
21804 						   NPHY_RSSI_SEL_W2) {
21805 						mask = (0x1 << 4);
21806 						val = 1 << 4;
21807 					} else {
21808 						mask = (0x1 << 5);
21809 						val = 1 << 5;
21810 					}
21811 					mod_phy_reg(pi,
21812 						    (core ==
21813 						     PHY_CORE_0) ? 0xf9 : 0xfb,
21814 						    mask, val);
21815 
21816 					mask = (0x1 << 5);
21817 					val = 1 << 5;
21818 					mod_phy_reg(pi, (core == PHY_CORE_0) ?
21819 						    0xe5 : 0xe6, mask, val);
21820 				} else {
21821 					if (rssi_type == NPHY_RSSI_SEL_TBD) {
21822 						mask = (0x3 << 8);
21823 						val = 1 << 8;
21824 						mod_phy_reg(pi,
21825 							    (core ==
21826 							     PHY_CORE_0) ? 0xa6
21827 							    : 0xa7, mask, val);
21828 						mask = (0x3 << 10);
21829 						val = 1 << 10;
21830 						mod_phy_reg(pi,
21831 							    (core ==
21832 							     PHY_CORE_0) ? 0xa6
21833 							    : 0xa7, mask, val);
21834 					} else if (rssi_type ==
21835 						   NPHY_RSSI_SEL_IQ) {
21836 						mask = (0x3 << 8);
21837 						val = 2 << 8;
21838 						mod_phy_reg(pi,
21839 							    (core ==
21840 							     PHY_CORE_0) ? 0xa6
21841 							    : 0xa7, mask, val);
21842 						mask = (0x3 << 10);
21843 						val = 2 << 10;
21844 						mod_phy_reg(pi,
21845 							    (core ==
21846 							     PHY_CORE_0) ? 0xa6
21847 							    : 0xa7, mask, val);
21848 					} else {
21849 						mask = (0x3 << 8);
21850 						val = 3 << 8;
21851 						mod_phy_reg(pi,
21852 							    (core ==
21853 							     PHY_CORE_0) ? 0xa6
21854 							    : 0xa7, mask, val);
21855 						mask = (0x3 << 10);
21856 						val = 3 << 10;
21857 						mod_phy_reg(pi,
21858 							    (core ==
21859 							     PHY_CORE_0) ? 0xa6
21860 							    : 0xa7, mask, val);
21861 						brcms_phy_wr_tx_mux(pi, core);
21862 						afectrlovr_rssi_val = 1 << 9;
21863 						mod_phy_reg(pi,
21864 							   (core ==
21865 							    PHY_CORE_0) ? 0x8f
21866 							   : 0xa5, (0x1 << 9),
21867 							   afectrlovr_rssi_val);
21868 					}
21869 				}
21870 			}
21871 		}
21872 	} else {
21873 
21874 		if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21875 		    (rssi_type == NPHY_RSSI_SEL_W2) ||
21876 		    (rssi_type == NPHY_RSSI_SEL_NB))
21877 			val = 0x0;
21878 		else if (rssi_type == NPHY_RSSI_SEL_TBD)
21879 			val = 0x1;
21880 		else if (rssi_type == NPHY_RSSI_SEL_IQ)
21881 			val = 0x2;
21882 		else
21883 			val = 0x3;
21884 
21885 		mask = ((0x3 << 12) | (0x3 << 14));
21886 		val = (val << 12) | (val << 14);
21887 		mod_phy_reg(pi, 0xa6, mask, val);
21888 		mod_phy_reg(pi, 0xa7, mask, val);
21889 
21890 		if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21891 		    (rssi_type == NPHY_RSSI_SEL_W2) ||
21892 		    (rssi_type == NPHY_RSSI_SEL_NB)) {
21893 			if (rssi_type == NPHY_RSSI_SEL_W1)
21894 				val = 0x1;
21895 			if (rssi_type == NPHY_RSSI_SEL_W2)
21896 				val = 0x2;
21897 			if (rssi_type == NPHY_RSSI_SEL_NB)
21898 				val = 0x3;
21899 
21900 			mask = (0x3 << 4);
21901 			val = (val << 4);
21902 			mod_phy_reg(pi, 0x7a, mask, val);
21903 			mod_phy_reg(pi, 0x7d, mask, val);
21904 		}
21905 
21906 		if (core_code == RADIO_MIMO_CORESEL_OFF) {
21907 			afectrlovr_rssi_val = 0;
21908 			rfctrlcmd_rxen_val = 0;
21909 			rfctrlcmd_coresel_val = 0;
21910 			rfctrlovr_rssi_val = 0;
21911 			rfctrlovr_rxen_val = 0;
21912 			rfctrlovr_coresel_val = 0;
21913 			rfctrlovr_trigger_val = 0;
21914 			startseq = 0;
21915 		} else {
21916 			afectrlovr_rssi_val = 1;
21917 			rfctrlcmd_rxen_val = 1;
21918 			rfctrlcmd_coresel_val = core_code;
21919 			rfctrlovr_rssi_val = 1;
21920 			rfctrlovr_rxen_val = 1;
21921 			rfctrlovr_coresel_val = 1;
21922 			rfctrlovr_trigger_val = 1;
21923 			startseq = 1;
21924 		}
21925 
21926 		afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
21927 		afectrlovr_rssi_val = (afectrlovr_rssi_val <<
21928 				       12) | (afectrlovr_rssi_val << 13);
21929 		mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
21930 			    afectrlovr_rssi_val);
21931 
21932 		if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21933 		    (rssi_type == NPHY_RSSI_SEL_W2) ||
21934 		    (rssi_type == NPHY_RSSI_SEL_NB)) {
21935 			rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
21936 			rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
21937 					(rfctrlcmd_coresel_val << 3);
21938 
21939 			rfctrlovr_mask = ((0x1 << 5) |
21940 					  (0x1 << 12) |
21941 					  (0x1 << 1) | (0x1 << 0));
21942 			rfctrlovr_val = (rfctrlovr_rssi_val <<
21943 					 5) |
21944 					(rfctrlovr_rxen_val << 12) |
21945 					(rfctrlovr_coresel_val << 1) |
21946 					(rfctrlovr_trigger_val << 0);
21947 
21948 			mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
21949 			mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
21950 
21951 			mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
21952 			udelay(20);
21953 
21954 			mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
21955 		}
21956 	}
21957 }
21958 
21959 int
21960 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
21961 		       u8 nsamps)
21962 {
21963 	s16 rssi0, rssi1;
21964 	u16 afectrlCore1_save = 0;
21965 	u16 afectrlCore2_save = 0;
21966 	u16 afectrlOverride1_save = 0;
21967 	u16 afectrlOverride2_save = 0;
21968 	u16 rfctrlOverrideAux0_save = 0;
21969 	u16 rfctrlOverrideAux1_save = 0;
21970 	u16 rfctrlMiscReg1_save = 0;
21971 	u16 rfctrlMiscReg2_save = 0;
21972 	u16 rfctrlcmd_save = 0;
21973 	u16 rfctrloverride_save = 0;
21974 	u16 rfctrlrssiothers1_save = 0;
21975 	u16 rfctrlrssiothers2_save = 0;
21976 	s8 tmp_buf[4];
21977 	u8 ctr = 0, samp = 0;
21978 	s32 rssi_out_val;
21979 	u16 gpiosel_orig;
21980 
21981 	afectrlCore1_save = read_phy_reg(pi, 0xa6);
21982 	afectrlCore2_save = read_phy_reg(pi, 0xa7);
21983 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21984 		rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21985 		rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21986 		afectrlOverride1_save = read_phy_reg(pi, 0x8f);
21987 		afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21988 		rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21989 		rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21990 	} else {
21991 		afectrlOverride1_save = read_phy_reg(pi, 0xa5);
21992 		rfctrlcmd_save = read_phy_reg(pi, 0x78);
21993 		rfctrloverride_save = read_phy_reg(pi, 0xec);
21994 		rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
21995 		rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
21996 	}
21997 
21998 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21999 
22000 	gpiosel_orig = read_phy_reg(pi, 0xca);
22001 	if (NREV_LT(pi->pubpi.phy_rev, 2))
22002 		write_phy_reg(pi, 0xca, 5);
22003 
22004 	for (ctr = 0; ctr < 4; ctr++)
22005 		rssi_buf[ctr] = 0;
22006 
22007 	for (samp = 0; samp < nsamps; samp++) {
22008 		if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22009 			rssi0 = read_phy_reg(pi, 0x1c9);
22010 			rssi1 = read_phy_reg(pi, 0x1ca);
22011 		} else {
22012 			rssi0 = read_phy_reg(pi, 0x219);
22013 			rssi1 = read_phy_reg(pi, 0x21a);
22014 		}
22015 
22016 		ctr = 0;
22017 		tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
22018 		tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
22019 		tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
22020 		tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
22021 
22022 		for (ctr = 0; ctr < 4; ctr++)
22023 			rssi_buf[ctr] += tmp_buf[ctr];
22024 
22025 	}
22026 
22027 	rssi_out_val = rssi_buf[3] & 0xff;
22028 	rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
22029 	rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
22030 	rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
22031 
22032 	if (NREV_LT(pi->pubpi.phy_rev, 2))
22033 		write_phy_reg(pi, 0xca, gpiosel_orig);
22034 
22035 	write_phy_reg(pi, 0xa6, afectrlCore1_save);
22036 	write_phy_reg(pi, 0xa7, afectrlCore2_save);
22037 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22038 		write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
22039 		write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
22040 		write_phy_reg(pi, 0x8f, afectrlOverride1_save);
22041 		write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22042 		write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
22043 		write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
22044 	} else {
22045 		write_phy_reg(pi, 0xa5, afectrlOverride1_save);
22046 		write_phy_reg(pi, 0x78, rfctrlcmd_save);
22047 		write_phy_reg(pi, 0xec, rfctrloverride_save);
22048 		write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
22049 		write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
22050 	}
22051 
22052 	return rssi_out_val;
22053 }
22054 
22055 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
22056 {
22057 	u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
22058 	u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
22059 	u16 pwrdet_rxtx_core1_save;
22060 	u16 pwrdet_rxtx_core2_save;
22061 	u16 afectrlCore1_save;
22062 	u16 afectrlCore2_save;
22063 	u16 afectrlOverride_save;
22064 	u16 afectrlOverride2_save;
22065 	u16 pd_pll_ts_save;
22066 	u16 gpioSel_save;
22067 	s32 radio_temp[4];
22068 	s32 radio_temp2[4];
22069 	u16 syn_tempprocsense_save;
22070 	s16 offset = 0;
22071 
22072 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22073 		u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
22074 		u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
22075 		u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
22076 		s32 auxADC_Vl;
22077 		u16 RfctrlOverride5_save, RfctrlOverride6_save;
22078 		u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
22079 		u16 RSSIMultCoef0QPowerDet_save;
22080 		u16 tempsense_Rcal;
22081 
22082 		syn_tempprocsense_save =
22083 			read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
22084 
22085 		afectrlCore1_save = read_phy_reg(pi, 0xa6);
22086 		afectrlCore2_save = read_phy_reg(pi, 0xa7);
22087 		afectrlOverride_save = read_phy_reg(pi, 0x8f);
22088 		afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22089 		RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22090 		RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22091 		RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22092 		RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22093 		RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22094 
22095 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22096 					&auxADC_Vmid_save);
22097 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22098 					&auxADC_Av_save);
22099 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22100 					&auxADC_rssi_ctrlL_save);
22101 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22102 					&auxADC_rssi_ctrlH_save);
22103 
22104 		write_phy_reg(pi, 0x1ae, 0x0);
22105 
22106 		auxADC_rssi_ctrlL = 0x0;
22107 		auxADC_rssi_ctrlH = 0x20;
22108 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22109 					 &auxADC_rssi_ctrlL);
22110 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22111 					 &auxADC_rssi_ctrlH);
22112 
22113 		tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22114 
22115 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22116 				tempsense_Rcal | 0x01);
22117 
22118 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22119 						  1, 0, 0,
22120 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
22121 		mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22122 		mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22123 		mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22124 		mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22125 
22126 		mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22127 		mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22128 		mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22129 		mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22130 		udelay(5);
22131 		mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22132 		mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22133 		mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22134 		mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22135 		mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22136 		mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22137 		mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22138 		mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22139 		mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22140 		mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22141 
22142 		auxADC_Vmid = 0xA3;
22143 		auxADC_Av = 0x0;
22144 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22145 					 &auxADC_Vmid);
22146 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22147 					 &auxADC_Av);
22148 
22149 		udelay(3);
22150 
22151 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22152 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22153 				tempsense_Rcal | 0x03);
22154 
22155 		udelay(5);
22156 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22157 
22158 		auxADC_Av = 0x7;
22159 		if (radio_temp[1] + radio_temp2[1] < -30) {
22160 			auxADC_Vmid = 0x45;
22161 			auxADC_Vl = 263;
22162 		} else if (radio_temp[1] + radio_temp2[1] < -9) {
22163 			auxADC_Vmid = 0x200;
22164 			auxADC_Vl = 467;
22165 		} else if (radio_temp[1] + radio_temp2[1] < 11) {
22166 			auxADC_Vmid = 0x266;
22167 			auxADC_Vl = 634;
22168 		} else {
22169 			auxADC_Vmid = 0x2D5;
22170 			auxADC_Vl = 816;
22171 		}
22172 
22173 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22174 					 &auxADC_Vmid);
22175 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22176 					 &auxADC_Av);
22177 
22178 		udelay(3);
22179 
22180 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22181 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22182 				tempsense_Rcal | 0x01);
22183 
22184 		udelay(5);
22185 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22186 
22187 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22188 				syn_tempprocsense_save);
22189 
22190 		write_phy_reg(pi, 0xa6, afectrlCore1_save);
22191 		write_phy_reg(pi, 0xa7, afectrlCore2_save);
22192 		write_phy_reg(pi, 0x8f, afectrlOverride_save);
22193 		write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22194 		write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22195 		write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22196 		write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22197 		write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22198 		write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22199 
22200 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22201 					 &auxADC_Vmid_save);
22202 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22203 					 &auxADC_Av_save);
22204 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22205 					 &auxADC_rssi_ctrlL_save);
22206 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22207 					 &auxADC_rssi_ctrlH_save);
22208 
22209 		if (pi->sh->chip == BCMA_CHIP_ID_BCM5357) {
22210 			radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
22211 					 + 88 * (auxADC_Vl) - 27111 +
22212 					 128) / 256;
22213 		} else {
22214 			radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22215 					 + 82 * (auxADC_Vl) - 28861 +
22216 					 128) / 256;
22217 		}
22218 
22219 		offset = (s16) pi->phy_tempsense_offset;
22220 
22221 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22222 		syn_tempprocsense_save =
22223 			read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
22224 
22225 		afectrlCore1_save = read_phy_reg(pi, 0xa6);
22226 		afectrlCore2_save = read_phy_reg(pi, 0xa7);
22227 		afectrlOverride_save = read_phy_reg(pi, 0x8f);
22228 		afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22229 		gpioSel_save = read_phy_reg(pi, 0xca);
22230 
22231 		write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22232 
22233 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22234 		if (NREV_LT(pi->pubpi.phy_rev, 7))
22235 			write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
22236 
22237 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22238 		if (NREV_GE(pi->pubpi.phy_rev, 7))
22239 			write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
22240 		else
22241 			write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22242 
22243 		radio_temp[0] =
22244 			(126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22245 
22246 		write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
22247 				syn_tempprocsense_save);
22248 
22249 		write_phy_reg(pi, 0xca, gpioSel_save);
22250 		write_phy_reg(pi, 0xa6, afectrlCore1_save);
22251 		write_phy_reg(pi, 0xa7, afectrlCore2_save);
22252 		write_phy_reg(pi, 0x8f, afectrlOverride_save);
22253 		write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22254 
22255 		offset = (s16) pi->phy_tempsense_offset;
22256 	} else {
22257 
22258 		pwrdet_rxtx_core1_save =
22259 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22260 		pwrdet_rxtx_core2_save =
22261 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22262 		core1_txrf_iqcal1_save =
22263 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22264 		core1_txrf_iqcal2_save =
22265 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22266 		core2_txrf_iqcal1_save =
22267 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22268 		core2_txrf_iqcal2_save =
22269 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22270 		pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22271 
22272 		afectrlCore1_save = read_phy_reg(pi, 0xa6);
22273 		afectrlCore2_save = read_phy_reg(pi, 0xa7);
22274 		afectrlOverride_save = read_phy_reg(pi, 0xa5);
22275 		gpioSel_save = read_phy_reg(pi, 0xca);
22276 
22277 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
22278 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
22279 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
22280 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
22281 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22282 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22283 		write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
22284 
22285 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22286 		xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22287 
22288 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22289 		xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22290 
22291 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22292 		xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22293 
22294 		radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22295 		radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22296 		radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22297 		radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22298 
22299 		radio_temp[0] =
22300 			(radio_temp[0] + radio_temp[1] + radio_temp[2] +
22301 			 radio_temp[3]);
22302 
22303 		radio_temp[0] =
22304 			(radio_temp[0] +
22305 			 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22306 
22307 		radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22308 
22309 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
22310 				pwrdet_rxtx_core1_save);
22311 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
22312 				pwrdet_rxtx_core2_save);
22313 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
22314 				core1_txrf_iqcal1_save);
22315 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
22316 				core2_txrf_iqcal1_save);
22317 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
22318 				core1_txrf_iqcal2_save);
22319 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
22320 				core2_txrf_iqcal2_save);
22321 		write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22322 
22323 		write_phy_reg(pi, 0xca, gpioSel_save);
22324 		write_phy_reg(pi, 0xa6, afectrlCore1_save);
22325 		write_phy_reg(pi, 0xa7, afectrlCore2_save);
22326 		write_phy_reg(pi, 0xa5, afectrlOverride_save);
22327 	}
22328 
22329 	return (s16) radio_temp[0] + offset;
22330 }
22331 
22332 static void
22333 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22334 {
22335 	u8 core;
22336 
22337 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22338 		if (rssi_type == NPHY_RSSI_SEL_NB) {
22339 			if (core == PHY_CORE_0) {
22340 				mod_radio_reg(pi,
22341 					      RADIO_2055_CORE1_B0_NBRSSI_VCM,
22342 					      RADIO_2055_NBRSSI_VCM_I_MASK,
22343 					      vcm_buf[2 *
22344 						      core] <<
22345 					      RADIO_2055_NBRSSI_VCM_I_SHIFT);
22346 				mod_radio_reg(pi,
22347 					      RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22348 					      RADIO_2055_NBRSSI_VCM_Q_MASK,
22349 					      vcm_buf[2 * core +
22350 						      1] <<
22351 					      RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22352 			} else {
22353 				mod_radio_reg(pi,
22354 					      RADIO_2055_CORE2_B0_NBRSSI_VCM,
22355 					      RADIO_2055_NBRSSI_VCM_I_MASK,
22356 					      vcm_buf[2 *
22357 						      core] <<
22358 					      RADIO_2055_NBRSSI_VCM_I_SHIFT);
22359 				mod_radio_reg(pi,
22360 					      RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22361 					      RADIO_2055_NBRSSI_VCM_Q_MASK,
22362 					      vcm_buf[2 * core +
22363 						      1] <<
22364 					      RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22365 			}
22366 		} else {
22367 			if (core == PHY_CORE_0)
22368 				mod_radio_reg(pi,
22369 					      RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22370 					      RADIO_2055_WBRSSI_VCM_IQ_MASK,
22371 					      vcm_buf[2 *
22372 						      core] <<
22373 					      RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22374 			else
22375 				mod_radio_reg(pi,
22376 					      RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22377 					      RADIO_2055_WBRSSI_VCM_IQ_MASK,
22378 					      vcm_buf[2 *
22379 						      core] <<
22380 					      RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22381 		}
22382 	}
22383 }
22384 
22385 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22386 {
22387 	u16 classif_state;
22388 	u16 clip_state[2];
22389 	u16 clip_off[] = { 0xffff, 0xffff };
22390 	s32 target_code;
22391 	u8 vcm, min_vcm;
22392 	u8 vcm_final = 0;
22393 	u8 result_idx;
22394 	s32 poll_results[8][4] = {
22395 		{0, 0, 0, 0},
22396 		{0, 0, 0, 0},
22397 		{0, 0, 0, 0},
22398 		{0, 0, 0, 0},
22399 		{0, 0, 0, 0},
22400 		{0, 0, 0, 0},
22401 		{0, 0, 0, 0},
22402 		{0, 0, 0, 0}
22403 	};
22404 	s32 poll_result_core[4] = { 0, 0, 0, 0 };
22405 	s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22406 	s32 fine_digital_offset[4];
22407 	s32 poll_results_min[4] = { 0, 0, 0, 0 };
22408 	s32 min_poll;
22409 	u8 vcm_level_max;
22410 	u8 core;
22411 	u8 wb_cnt;
22412 	u8 rssi_type;
22413 	u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22414 	u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22415 	u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22416 	u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22417 	u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22418 	u16 NPHY_RfctrlCmd_save;
22419 	u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22420 	u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22421 	u8 rxcore_state;
22422 	u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22423 	u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22424 	u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22425 	u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22426 
22427 	NPHY_REV7_RfctrlOverride3_save =
22428 		NPHY_REV7_RfctrlOverride4_save =
22429 		NPHY_REV7_RfctrlOverride5_save =
22430 		NPHY_REV7_RfctrlOverride6_save =
22431 		NPHY_REV7_RfctrlMiscReg3_save =
22432 		NPHY_REV7_RfctrlMiscReg4_save =
22433 		NPHY_REV7_RfctrlMiscReg5_save =
22434 		NPHY_REV7_RfctrlMiscReg6_save = 0;
22435 
22436 	classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22437 	wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22438 	wlc_phy_clip_det_nphy(pi, 0, clip_state);
22439 	wlc_phy_clip_det_nphy(pi, 1, clip_off);
22440 
22441 	NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22442 	NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22443 	NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22444 	NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22445 	NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22446 	NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22447 	NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22448 	NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22449 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22450 		NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22451 		NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22452 		NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22453 		NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22454 	}
22455 	NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22456 	NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22457 	NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22458 	NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22459 	NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22460 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22461 		NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22462 		NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22463 		NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22464 		NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22465 	}
22466 	NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22467 	NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22468 
22469 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22470 					 RADIO_MIMO_CORESEL_ALLRXTX);
22471 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22472 					 RADIO_MIMO_CORESEL_ALLRXTX);
22473 
22474 	if (NREV_GE(pi->pubpi.phy_rev, 7))
22475 		wlc_phy_rfctrl_override_1tomany_nphy(
22476 			pi,
22477 			NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
22478 			0, 0, 0);
22479 	else
22480 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22481 
22482 	if (NREV_GE(pi->pubpi.phy_rev, 7))
22483 		wlc_phy_rfctrl_override_1tomany_nphy(
22484 			pi,
22485 			NPHY_REV7_RfctrlOverride_cmd_rx_pu,
22486 			1, 0, 0);
22487 	else
22488 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22489 
22490 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22491 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22492 						  1, 0, 0,
22493 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
22494 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22495 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
22496 	} else {
22497 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22498 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22499 	}
22500 
22501 	if (CHSPEC_IS5G(pi->radio_chanspec)) {
22502 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22503 			wlc_phy_rfctrl_override_nphy_rev7(
22504 				pi, (0x1 << 5),
22505 				0, 0, 0,
22506 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22507 			wlc_phy_rfctrl_override_nphy_rev7(
22508 				pi, (0x1 << 4), 1, 0,
22509 				0,
22510 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22511 		} else {
22512 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22513 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22514 		}
22515 
22516 	} else {
22517 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22518 			wlc_phy_rfctrl_override_nphy_rev7(
22519 				pi, (0x1 << 4),
22520 				0, 0, 0,
22521 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22522 			wlc_phy_rfctrl_override_nphy_rev7(
22523 				pi, (0x1 << 5), 1, 0,
22524 				0,
22525 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22526 		} else {
22527 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22528 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22529 		}
22530 	}
22531 
22532 	rxcore_state = wlc_phy_rxcore_getstate_nphy(
22533 		(struct brcms_phy_pub *) pi);
22534 
22535 	vcm_level_max = 8;
22536 
22537 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22538 
22539 		if ((rxcore_state & (1 << core)) == 0)
22540 			continue;
22541 
22542 		wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22543 					       core ==
22544 					       PHY_CORE_0 ?
22545 					       RADIO_MIMO_CORESEL_CORE1 :
22546 					       RADIO_MIMO_CORESEL_CORE2,
22547 					       NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
22548 		wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22549 					       core ==
22550 					       PHY_CORE_0 ?
22551 					       RADIO_MIMO_CORESEL_CORE1 :
22552 					       RADIO_MIMO_CORESEL_CORE2,
22553 					       NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
22554 
22555 		for (vcm = 0; vcm < vcm_level_max; vcm++) {
22556 			if (NREV_GE(pi->pubpi.phy_rev, 7))
22557 				mod_radio_reg(pi, (core == PHY_CORE_0) ?
22558 					      RADIO_2057_NB_MASTER_CORE0 :
22559 					      RADIO_2057_NB_MASTER_CORE1,
22560 					      RADIO_2057_VCM_MASK, vcm);
22561 			else
22562 				mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22563 					      ((core ==
22564 						PHY_CORE_0) ? RADIO_2056_RX0 :
22565 					       RADIO_2056_RX1),
22566 					      RADIO_2056_VCM_MASK,
22567 					      vcm << RADIO_2056_RSSI_VCM_SHIFT);
22568 
22569 			wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
22570 					       &poll_results[vcm][0],
22571 					       NPHY_RSSICAL_NPOLL);
22572 		}
22573 
22574 		for (result_idx = 0; result_idx < 4; result_idx++) {
22575 			if ((core == result_idx / 2) &&
22576 			    (result_idx % 2 == 0)) {
22577 
22578 				min_d = NPHY_RSSICAL_MAXD;
22579 				min_vcm = 0;
22580 				min_poll =
22581 					NPHY_RSSICAL_MAXREAD *
22582 					NPHY_RSSICAL_NPOLL + 1;
22583 				for (vcm = 0; vcm < vcm_level_max; vcm++) {
22584 					curr_d =
22585 						poll_results[vcm][result_idx] *
22586 						poll_results[vcm][result_idx] +
22587 						poll_results[vcm][result_idx +
22588 								  1] *
22589 						poll_results[vcm][result_idx +
22590 								  1];
22591 					if (curr_d < min_d) {
22592 						min_d = curr_d;
22593 						min_vcm = vcm;
22594 					}
22595 					if (poll_results[vcm][result_idx] <
22596 					    min_poll)
22597 						min_poll =
22598 							poll_results[vcm]
22599 							[result_idx];
22600 				}
22601 				vcm_final = min_vcm;
22602 				poll_results_min[result_idx] = min_poll;
22603 			}
22604 		}
22605 
22606 		if (NREV_GE(pi->pubpi.phy_rev, 7))
22607 			mod_radio_reg(pi, (core == PHY_CORE_0) ?
22608 				      RADIO_2057_NB_MASTER_CORE0 :
22609 				      RADIO_2057_NB_MASTER_CORE1,
22610 				      RADIO_2057_VCM_MASK, vcm_final);
22611 		else
22612 			mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22613 				      ((core ==
22614 					PHY_CORE_0) ? RADIO_2056_RX0 :
22615 				       RADIO_2056_RX1), RADIO_2056_VCM_MASK,
22616 				      vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22617 
22618 		for (result_idx = 0; result_idx < 4; result_idx++) {
22619 			if (core == result_idx / 2) {
22620 				fine_digital_offset[result_idx] =
22621 					(NPHY_RSSICAL_NB_TARGET *
22622 					 NPHY_RSSICAL_NPOLL) -
22623 					poll_results[vcm_final][result_idx];
22624 				if (fine_digital_offset[result_idx] < 0) {
22625 					fine_digital_offset[result_idx] =
22626 						abs(fine_digital_offset
22627 						    [result_idx]);
22628 					fine_digital_offset[result_idx] +=
22629 						(NPHY_RSSICAL_NPOLL / 2);
22630 					fine_digital_offset[result_idx] /=
22631 						NPHY_RSSICAL_NPOLL;
22632 					fine_digital_offset[result_idx] =
22633 						-fine_digital_offset[
22634 								    result_idx];
22635 				} else {
22636 					fine_digital_offset[result_idx] +=
22637 						(NPHY_RSSICAL_NPOLL / 2);
22638 					fine_digital_offset[result_idx] /=
22639 						NPHY_RSSICAL_NPOLL;
22640 				}
22641 
22642 				if (poll_results_min[result_idx] ==
22643 				    NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22644 					fine_digital_offset[result_idx] =
22645 						(NPHY_RSSICAL_NB_TARGET -
22646 						 NPHY_RSSICAL_MAXREAD - 1);
22647 
22648 				wlc_phy_scale_offset_rssi_nphy(
22649 					pi, 0x0,
22650 					(s8)
22651 					fine_digital_offset
22652 					[result_idx],
22653 					(result_idx / 2 == 0) ?
22654 					RADIO_MIMO_CORESEL_CORE1 :
22655 					RADIO_MIMO_CORESEL_CORE2,
22656 					(result_idx % 2 == 0) ?
22657 					NPHY_RAIL_I : NPHY_RAIL_Q,
22658 					NPHY_RSSI_SEL_NB);
22659 			}
22660 		}
22661 
22662 	}
22663 
22664 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22665 
22666 		if ((rxcore_state & (1 << core)) == 0)
22667 			continue;
22668 
22669 		for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22670 			if (wb_cnt == 0) {
22671 				rssi_type = NPHY_RSSI_SEL_W1;
22672 				target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22673 			} else {
22674 				rssi_type = NPHY_RSSI_SEL_W2;
22675 				target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22676 			}
22677 
22678 			wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22679 						       core ==
22680 						       PHY_CORE_0 ?
22681 						       RADIO_MIMO_CORESEL_CORE1
22682 						       :
22683 						       RADIO_MIMO_CORESEL_CORE2,
22684 						       NPHY_RAIL_I, rssi_type);
22685 			wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22686 						       core ==
22687 						       PHY_CORE_0 ?
22688 						       RADIO_MIMO_CORESEL_CORE1
22689 						       :
22690 						       RADIO_MIMO_CORESEL_CORE2,
22691 						       NPHY_RAIL_Q, rssi_type);
22692 
22693 			wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22694 					       NPHY_RSSICAL_NPOLL);
22695 
22696 			for (result_idx = 0; result_idx < 4; result_idx++) {
22697 				if (core == result_idx / 2) {
22698 					fine_digital_offset[result_idx] =
22699 						(target_code *
22700 						 NPHY_RSSICAL_NPOLL) -
22701 						poll_result_core[result_idx];
22702 					if (fine_digital_offset[result_idx] <
22703 					    0) {
22704 						fine_digital_offset[result_idx]
22705 							= abs(
22706 							    fine_digital_offset
22707 							    [result_idx]);
22708 						fine_digital_offset[result_idx]
22709 							+= (NPHY_RSSICAL_NPOLL
22710 							    / 2);
22711 						fine_digital_offset[result_idx]
22712 							/= NPHY_RSSICAL_NPOLL;
22713 						fine_digital_offset[result_idx]
22714 							= -fine_digital_offset
22715 								[result_idx];
22716 					} else {
22717 						fine_digital_offset[result_idx]
22718 							+= (NPHY_RSSICAL_NPOLL
22719 							    / 2);
22720 						fine_digital_offset[result_idx]
22721 							/= NPHY_RSSICAL_NPOLL;
22722 					}
22723 
22724 					wlc_phy_scale_offset_rssi_nphy(
22725 						pi, 0x0,
22726 						(s8)
22727 						fine_digital_offset
22728 						[core *
22729 						 2],
22730 						(core == PHY_CORE_0) ?
22731 						RADIO_MIMO_CORESEL_CORE1 :
22732 						RADIO_MIMO_CORESEL_CORE2,
22733 						(result_idx % 2 == 0) ?
22734 						NPHY_RAIL_I :
22735 						NPHY_RAIL_Q,
22736 						rssi_type);
22737 				}
22738 			}
22739 
22740 		}
22741 	}
22742 
22743 	write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22744 	write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22745 
22746 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22747 
22748 	mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22749 	mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22750 	mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22751 
22752 	mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22753 	mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22754 	mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22755 
22756 	write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22757 	write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22758 	write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22759 	write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22760 	write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22761 	write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22762 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22763 		write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22764 		write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22765 		write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22766 		write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22767 	}
22768 	write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22769 	write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22770 	write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22771 	write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22772 	write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22773 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22774 		write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22775 		write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22776 		write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22777 		write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22778 	}
22779 	write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22780 	write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22781 
22782 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
22783 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22784 			pi->rssical_cache.rssical_radio_regs_2G[0] =
22785 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22786 			pi->rssical_cache.rssical_radio_regs_2G[1] =
22787 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22788 		} else {
22789 			pi->rssical_cache.rssical_radio_regs_2G[0] =
22790 				read_radio_reg(pi,
22791 					       RADIO_2056_RX_RSSI_MISC |
22792 					       RADIO_2056_RX0);
22793 			pi->rssical_cache.rssical_radio_regs_2G[1] =
22794 				read_radio_reg(pi,
22795 					       RADIO_2056_RX_RSSI_MISC |
22796 					       RADIO_2056_RX1);
22797 		}
22798 
22799 		pi->rssical_cache.rssical_phyregs_2G[0] =
22800 			read_phy_reg(pi, 0x1a6);
22801 		pi->rssical_cache.rssical_phyregs_2G[1] =
22802 			read_phy_reg(pi, 0x1ac);
22803 		pi->rssical_cache.rssical_phyregs_2G[2] =
22804 			read_phy_reg(pi, 0x1b2);
22805 		pi->rssical_cache.rssical_phyregs_2G[3] =
22806 			read_phy_reg(pi, 0x1b8);
22807 		pi->rssical_cache.rssical_phyregs_2G[4] =
22808 			read_phy_reg(pi, 0x1a4);
22809 		pi->rssical_cache.rssical_phyregs_2G[5] =
22810 			read_phy_reg(pi, 0x1aa);
22811 		pi->rssical_cache.rssical_phyregs_2G[6] =
22812 			read_phy_reg(pi, 0x1b0);
22813 		pi->rssical_cache.rssical_phyregs_2G[7] =
22814 			read_phy_reg(pi, 0x1b6);
22815 		pi->rssical_cache.rssical_phyregs_2G[8] =
22816 			read_phy_reg(pi, 0x1a5);
22817 		pi->rssical_cache.rssical_phyregs_2G[9] =
22818 			read_phy_reg(pi, 0x1ab);
22819 		pi->rssical_cache.rssical_phyregs_2G[10] =
22820 			read_phy_reg(pi, 0x1b1);
22821 		pi->rssical_cache.rssical_phyregs_2G[11] =
22822 			read_phy_reg(pi, 0x1b7);
22823 
22824 		pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22825 	} else {
22826 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22827 			pi->rssical_cache.rssical_radio_regs_5G[0] =
22828 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22829 			pi->rssical_cache.rssical_radio_regs_5G[1] =
22830 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22831 		} else {
22832 			pi->rssical_cache.rssical_radio_regs_5G[0] =
22833 				read_radio_reg(pi,
22834 					       RADIO_2056_RX_RSSI_MISC |
22835 					       RADIO_2056_RX0);
22836 			pi->rssical_cache.rssical_radio_regs_5G[1] =
22837 				read_radio_reg(pi,
22838 					       RADIO_2056_RX_RSSI_MISC |
22839 					       RADIO_2056_RX1);
22840 		}
22841 
22842 		pi->rssical_cache.rssical_phyregs_5G[0] =
22843 			read_phy_reg(pi, 0x1a6);
22844 		pi->rssical_cache.rssical_phyregs_5G[1] =
22845 			read_phy_reg(pi, 0x1ac);
22846 		pi->rssical_cache.rssical_phyregs_5G[2] =
22847 			read_phy_reg(pi, 0x1b2);
22848 		pi->rssical_cache.rssical_phyregs_5G[3] =
22849 			read_phy_reg(pi, 0x1b8);
22850 		pi->rssical_cache.rssical_phyregs_5G[4] =
22851 			read_phy_reg(pi, 0x1a4);
22852 		pi->rssical_cache.rssical_phyregs_5G[5] =
22853 			read_phy_reg(pi, 0x1aa);
22854 		pi->rssical_cache.rssical_phyregs_5G[6] =
22855 			read_phy_reg(pi, 0x1b0);
22856 		pi->rssical_cache.rssical_phyregs_5G[7] =
22857 			read_phy_reg(pi, 0x1b6);
22858 		pi->rssical_cache.rssical_phyregs_5G[8] =
22859 			read_phy_reg(pi, 0x1a5);
22860 		pi->rssical_cache.rssical_phyregs_5G[9] =
22861 			read_phy_reg(pi, 0x1ab);
22862 		pi->rssical_cache.rssical_phyregs_5G[10] =
22863 			read_phy_reg(pi, 0x1b1);
22864 		pi->rssical_cache.rssical_phyregs_5G[11] =
22865 			read_phy_reg(pi, 0x1b7);
22866 
22867 		pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22868 	}
22869 
22870 	wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22871 	wlc_phy_clip_det_nphy(pi, 1, clip_state);
22872 }
22873 
22874 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
22875 {
22876 	s32 target_code;
22877 	u16 classif_state;
22878 	u16 clip_state[2];
22879 	u16 rssi_ctrl_state[2], pd_state[2];
22880 	u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
22881 	u16 rfctrlintc_override_val;
22882 	u16 clip_off[] = { 0xffff, 0xffff };
22883 	u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
22884 	u8 vcm, min_vcm, vcm_tmp[4];
22885 	u8 vcm_final[4] = { 0, 0, 0, 0 };
22886 	u8 result_idx, ctr;
22887 	s32 poll_results[4][4] = {
22888 		{0, 0, 0, 0},
22889 		{0, 0, 0, 0},
22890 		{0, 0, 0, 0},
22891 		{0, 0, 0, 0}
22892 	};
22893 	s32 poll_miniq[4][2] = {
22894 		{0, 0},
22895 		{0, 0},
22896 		{0, 0},
22897 		{0, 0}
22898 	};
22899 	s32 min_d, curr_d;
22900 	s32 fine_digital_offset[4];
22901 	s32 poll_results_min[4] = { 0, 0, 0, 0 };
22902 	s32 min_poll;
22903 
22904 	switch (rssi_type) {
22905 	case NPHY_RSSI_SEL_NB:
22906 		target_code = NPHY_RSSICAL_NB_TARGET;
22907 		break;
22908 	case NPHY_RSSI_SEL_W1:
22909 		target_code = NPHY_RSSICAL_W1_TARGET;
22910 		break;
22911 	case NPHY_RSSI_SEL_W2:
22912 		target_code = NPHY_RSSICAL_W2_TARGET;
22913 		break;
22914 	default:
22915 		return;
22916 	}
22917 
22918 	classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22919 	wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22920 	wlc_phy_clip_det_nphy(pi, 0, clip_state);
22921 	wlc_phy_clip_det_nphy(pi, 1, clip_off);
22922 
22923 	rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
22924 	rfctrlintc_override_val =
22925 		CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
22926 
22927 	rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
22928 	rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
22929 	write_phy_reg(pi, 0x91, rfctrlintc_override_val);
22930 	write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
22931 
22932 	rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
22933 	rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
22934 	write_phy_reg(pi, 0x92, rfctrlintc_override_val);
22935 	write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
22936 
22937 	pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
22938 		  RADIO_2055_WBRSSI_G2_PD;
22939 	pd_state[0] =
22940 		read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
22941 	pd_state[1] =
22942 		read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
22943 	mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
22944 	mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
22945 	rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
22946 			 RADIO_2055_WBRSSI_G2_SEL;
22947 	rssi_ctrl_state[0] =
22948 		read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
22949 	rssi_ctrl_state[1] =
22950 		read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
22951 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22952 
22953 	wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22954 				       NPHY_RAIL_I, rssi_type);
22955 	wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22956 				       NPHY_RAIL_Q, rssi_type);
22957 
22958 	for (vcm = 0; vcm < 4; vcm++) {
22959 
22960 		vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
22961 		if (rssi_type != NPHY_RSSI_SEL_W2)
22962 			wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
22963 
22964 		wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
22965 				       NPHY_RSSICAL_NPOLL);
22966 
22967 		if ((rssi_type == NPHY_RSSI_SEL_W1)
22968 		    || (rssi_type == NPHY_RSSI_SEL_W2)) {
22969 			for (ctr = 0; ctr < 2; ctr++)
22970 				poll_miniq[vcm][ctr] =
22971 					min(poll_results[vcm][ctr * 2 + 0],
22972 					    poll_results[vcm][ctr * 2 + 1]);
22973 		}
22974 	}
22975 
22976 	for (result_idx = 0; result_idx < 4; result_idx++) {
22977 		min_d = NPHY_RSSICAL_MAXD;
22978 		min_vcm = 0;
22979 		min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
22980 		for (vcm = 0; vcm < 4; vcm++) {
22981 			curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
22982 				      poll_results[vcm][result_idx] :
22983 				      poll_miniq[vcm][result_idx / 2]) -
22984 				     (target_code * NPHY_RSSICAL_NPOLL));
22985 			if (curr_d < min_d) {
22986 				min_d = curr_d;
22987 				min_vcm = vcm;
22988 			}
22989 			if (poll_results[vcm][result_idx] < min_poll)
22990 				min_poll = poll_results[vcm][result_idx];
22991 		}
22992 		vcm_final[result_idx] = min_vcm;
22993 		poll_results_min[result_idx] = min_poll;
22994 	}
22995 
22996 	if (rssi_type != NPHY_RSSI_SEL_W2)
22997 		wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
22998 
22999 	for (result_idx = 0; result_idx < 4; result_idx++) {
23000 		fine_digital_offset[result_idx] =
23001 			(target_code * NPHY_RSSICAL_NPOLL) -
23002 			poll_results[vcm_final[result_idx]][result_idx];
23003 		if (fine_digital_offset[result_idx] < 0) {
23004 			fine_digital_offset[result_idx] =
23005 				abs(fine_digital_offset[result_idx]);
23006 			fine_digital_offset[result_idx] +=
23007 				(NPHY_RSSICAL_NPOLL / 2);
23008 			fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23009 			fine_digital_offset[result_idx] =
23010 				-fine_digital_offset[result_idx];
23011 		} else {
23012 			fine_digital_offset[result_idx] +=
23013 				(NPHY_RSSICAL_NPOLL / 2);
23014 			fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23015 		}
23016 
23017 		if (poll_results_min[result_idx] ==
23018 		    NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
23019 			fine_digital_offset[result_idx] =
23020 				(target_code - NPHY_RSSICAL_MAXREAD - 1);
23021 
23022 		wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
23023 					       (s8)
23024 					       fine_digital_offset[result_idx],
23025 					       (result_idx / 2 ==
23026 						0) ? RADIO_MIMO_CORESEL_CORE1 :
23027 					       RADIO_MIMO_CORESEL_CORE2,
23028 					       (result_idx % 2 ==
23029 						0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
23030 					       rssi_type);
23031 	}
23032 
23033 	mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
23034 	mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
23035 	if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
23036 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23037 				     NPHY_RSSI_SEL_NB);
23038 	else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
23039 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23040 				     NPHY_RSSI_SEL_W1);
23041 	else /* RADIO_2055_WBRSSI_G2_SEL */
23042 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23043 				     NPHY_RSSI_SEL_W2);
23044 	if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
23045 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23046 				     NPHY_RSSI_SEL_NB);
23047 	else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
23048 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23049 				     NPHY_RSSI_SEL_W1);
23050 	else /* RADIO_2055_WBRSSI_G1_SEL */
23051 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23052 				     NPHY_RSSI_SEL_W2);
23053 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
23054 
23055 	write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
23056 	write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
23057 	write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
23058 	write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
23059 
23060 	wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23061 	wlc_phy_clip_det_nphy(pi, 1, clip_state);
23062 
23063 	wlc_phy_resetcca_nphy(pi);
23064 }
23065 
23066 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
23067 {
23068 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23069 		wlc_phy_rssi_cal_nphy_rev3(pi);
23070 	} else {
23071 		wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
23072 		wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
23073 		wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
23074 	}
23075 }
23076 
23077 int
23078 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
23079 {
23080 	s16 rxpwr, rxpwr0, rxpwr1;
23081 	s16 phyRx0_l, phyRx2_l;
23082 
23083 	rxpwr = 0;
23084 	rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23085 	rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23086 
23087 	if (rxpwr0 > 127)
23088 		rxpwr0 -= 256;
23089 	if (rxpwr1 > 127)
23090 		rxpwr1 -= 256;
23091 
23092 	phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23093 	phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23094 	if (phyRx2_l > 127)
23095 		phyRx2_l -= 256;
23096 
23097 	if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23098 		rxpwr0 = rxpwr1;
23099 		rxpwr1 = phyRx2_l;
23100 	}
23101 
23102 	if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23103 		rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23104 	else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23105 		rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23106 	else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23107 		rxpwr = (rxpwr0 + rxpwr1) >> 1;
23108 
23109 	return rxpwr;
23110 }
23111 
23112 static void
23113 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23114 			     u16 num_samps)
23115 {
23116 	u16 t;
23117 	u32 *data_buf = NULL;
23118 
23119 	data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
23120 	if (data_buf == NULL)
23121 		return;
23122 
23123 	if (pi->phyhang_avoid)
23124 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
23125 
23126 	for (t = 0; t < num_samps; t++)
23127 		data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23128 			      (((unsigned int)tone_buf[t].q) & 0x3ff);
23129 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23130 				 data_buf);
23131 
23132 	kfree(data_buf);
23133 
23134 	if (pi->phyhang_avoid)
23135 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
23136 }
23137 
23138 static u16
23139 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23140 			      u8 dac_test_mode)
23141 {
23142 	u8 phy_bw, is_phybw40;
23143 	u16 num_samps, t, spur;
23144 	s32 theta = 0, rot = 0;
23145 	u32 tbl_len;
23146 	struct cordic_iq *tone_buf = NULL;
23147 
23148 	is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23149 	phy_bw = (is_phybw40 == 1) ? 40 : 20;
23150 	tbl_len = (phy_bw << 3);
23151 
23152 	if (dac_test_mode == 1) {
23153 		spur = read_phy_reg(pi, 0x01);
23154 		spur = (spur >> 15) & 1;
23155 		phy_bw = (spur == 1) ? 82 : 80;
23156 		phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23157 
23158 		tbl_len = (phy_bw << 1);
23159 	}
23160 
23161 	tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
23162 	if (tone_buf == NULL)
23163 		return 0;
23164 
23165 	num_samps = (u16) tbl_len;
23166 	rot = ((f_kHz * 36) / phy_bw) / 100;
23167 	theta = 0;
23168 
23169 	for (t = 0; t < num_samps; t++) {
23170 
23171 		tone_buf[t] = cordic_calc_iq(theta);
23172 
23173 		theta += rot;
23174 
23175 		tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23176 		tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23177 	}
23178 
23179 	wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23180 
23181 	kfree(tone_buf);
23182 
23183 	return num_samps;
23184 }
23185 
23186 static void
23187 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23188 			u16 wait, u8 iqmode, u8 dac_test_mode,
23189 			bool modify_bbmult)
23190 {
23191 	u16 bb_mult;
23192 	u8 phy_bw, sample_cmd;
23193 	u16 orig_RfseqCoreActv;
23194 	u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23195 	    lpf_bw_ctl_miscreg4;
23196 
23197 	if (pi->phyhang_avoid)
23198 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
23199 
23200 	phy_bw = 20;
23201 	if (CHSPEC_IS40(pi->radio_chanspec))
23202 		phy_bw = 40;
23203 
23204 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23205 
23206 		lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23207 		lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23208 		if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23209 			lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23210 					      (0x7 << 8);
23211 			lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23212 					      (0x7 << 8);
23213 		} else {
23214 			wlc_phy_rfctrl_override_nphy_rev7(
23215 				pi,
23216 				(0x1 << 7),
23217 				wlc_phy_read_lpf_bw_ctl_nphy
23218 					(pi,
23219 					0), 0, 0,
23220 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
23221 
23222 			pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
23223 
23224 			lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23225 					      (0x7 << 8);
23226 			lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23227 					      (0x7 << 8);
23228 		}
23229 	}
23230 
23231 	if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23232 
23233 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23234 					&bb_mult);
23235 		pi->nphy_bb_mult_save =
23236 			BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23237 	}
23238 
23239 	if (modify_bbmult) {
23240 		bb_mult = (phy_bw == 20) ? 100 : 71;
23241 		bb_mult = (bb_mult << 8) + bb_mult;
23242 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23243 					 &bb_mult);
23244 	}
23245 
23246 	if (pi->phyhang_avoid)
23247 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
23248 
23249 	write_phy_reg(pi, 0xc6, num_samps - 1);
23250 
23251 	if (loops != 0xffff)
23252 		write_phy_reg(pi, 0xc4, loops - 1);
23253 	else
23254 		write_phy_reg(pi, 0xc4, loops);
23255 
23256 	write_phy_reg(pi, 0xc5, wait);
23257 
23258 	orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23259 	or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
23260 	if (iqmode) {
23261 
23262 		and_phy_reg(pi, 0xc2, 0x7FFF);
23263 
23264 		or_phy_reg(pi, 0xc2, 0x8000);
23265 	} else {
23266 
23267 		sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23268 		write_phy_reg(pi, 0xc3, sample_cmd);
23269 	}
23270 
23271 	SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23272 
23273 	write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23274 }
23275 
23276 int
23277 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23278 		     u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23279 {
23280 	u16 num_samps;
23281 	u16 loops = 0xffff;
23282 	u16 wait = 0;
23283 
23284 	num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23285 						  dac_test_mode);
23286 	if (num_samps == 0)
23287 		return -EBADE;
23288 
23289 	wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23290 				dac_test_mode, modify_bbmult);
23291 
23292 	return 0;
23293 }
23294 
23295 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
23296 {
23297 	u16 playback_status;
23298 	u16 bb_mult;
23299 
23300 	if (pi->phyhang_avoid)
23301 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
23302 
23303 	playback_status = read_phy_reg(pi, 0xc7);
23304 	if (playback_status & 0x1)
23305 		or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23306 	else if (playback_status & 0x2)
23307 		and_phy_reg(pi, 0xc2,
23308 			    (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
23309 
23310 	and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23311 
23312 	if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23313 
23314 		bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23315 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23316 					 &bb_mult);
23317 
23318 		pi->nphy_bb_mult_save = 0;
23319 	}
23320 
23321 	if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23322 		if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
23323 			wlc_phy_rfctrl_override_nphy_rev7(
23324 				pi,
23325 				(0x1 << 7),
23326 				0, 0, 1,
23327 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
23328 			pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23329 		}
23330 	}
23331 
23332 	if (pi->phyhang_avoid)
23333 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
23334 }
23335 
23336 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23337 {
23338 	u32 *tx_pwrctrl_tbl = NULL;
23339 	uint phyrev = pi->pubpi.phy_rev;
23340 
23341 	if (PHY_IPA(pi)) {
23342 		tx_pwrctrl_tbl =
23343 			wlc_phy_get_ipa_gaintbl_nphy(pi);
23344 	} else {
23345 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
23346 			if (NREV_IS(phyrev, 3))
23347 				tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23348 			else if (NREV_IS(phyrev, 4))
23349 				tx_pwrctrl_tbl =
23350 					(pi->srom_fem5g.extpagain == 3) ?
23351 					nphy_tpc_5GHz_txgain_HiPwrEPA :
23352 					nphy_tpc_5GHz_txgain_rev4;
23353 			else
23354 				tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23355 		} else {
23356 			if (NREV_GE(phyrev, 7)) {
23357 				if (pi->pubpi.radiorev == 3)
23358 					tx_pwrctrl_tbl =
23359 						nphy_tpc_txgain_epa_2057rev3;
23360 				else if (pi->pubpi.radiorev == 5)
23361 					tx_pwrctrl_tbl =
23362 						nphy_tpc_txgain_epa_2057rev5;
23363 			} else {
23364 				if (NREV_GE(phyrev, 5) &&
23365 				   (pi->srom_fem2g.extpagain ==	3))
23366 					tx_pwrctrl_tbl =
23367 						nphy_tpc_txgain_HiPwrEPA;
23368 				else
23369 					tx_pwrctrl_tbl =
23370 						nphy_tpc_txgain_rev3;
23371 			}
23372 		}
23373 	}
23374 	return tx_pwrctrl_tbl;
23375 }
23376 
23377 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
23378 {
23379 	u16 base_idx[2], curr_gain[2];
23380 	u8 core_no;
23381 	struct nphy_txgains target_gain;
23382 	u32 *tx_pwrctrl_tbl = NULL;
23383 
23384 	if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23385 		if (pi->phyhang_avoid)
23386 			wlc_phy_stay_in_carriersearch_nphy(pi, true);
23387 
23388 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23389 					curr_gain);
23390 
23391 		if (pi->phyhang_avoid)
23392 			wlc_phy_stay_in_carriersearch_nphy(pi, false);
23393 
23394 		for (core_no = 0; core_no < 2; core_no++) {
23395 			if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23396 				target_gain.ipa[core_no] =
23397 					curr_gain[core_no] & 0x0007;
23398 				target_gain.pad[core_no] =
23399 					((curr_gain[core_no] & 0x00F8) >> 3);
23400 				target_gain.pga[core_no] =
23401 					((curr_gain[core_no] & 0x0F00) >> 8);
23402 				target_gain.txgm[core_no] =
23403 					((curr_gain[core_no] & 0x7000) >> 12);
23404 				target_gain.txlpf[core_no] =
23405 					((curr_gain[core_no] & 0x8000) >> 15);
23406 			} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23407 				target_gain.ipa[core_no] =
23408 					curr_gain[core_no] & 0x000F;
23409 				target_gain.pad[core_no] =
23410 					((curr_gain[core_no] & 0x00F0) >> 4);
23411 				target_gain.pga[core_no] =
23412 					((curr_gain[core_no] & 0x0F00) >> 8);
23413 				target_gain.txgm[core_no] =
23414 					((curr_gain[core_no] & 0x7000) >> 12);
23415 			} else {
23416 				target_gain.ipa[core_no] =
23417 					curr_gain[core_no] & 0x0003;
23418 				target_gain.pad[core_no] =
23419 					((curr_gain[core_no] & 0x000C) >> 2);
23420 				target_gain.pga[core_no] =
23421 					((curr_gain[core_no] & 0x0070) >> 4);
23422 				target_gain.txgm[core_no] =
23423 					((curr_gain[core_no] & 0x0380) >> 7);
23424 			}
23425 		}
23426 	} else {
23427 		uint phyrev = pi->pubpi.phy_rev;
23428 
23429 		base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23430 		base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23431 		for (core_no = 0; core_no < 2; core_no++) {
23432 			if (NREV_GE(phyrev, 3)) {
23433 				tx_pwrctrl_tbl =
23434 					brcms_phy_get_tx_pwrctrl_tbl(pi);
23435 				if (NREV_GE(phyrev, 7)) {
23436 					target_gain.ipa[core_no] =
23437 						(tx_pwrctrl_tbl
23438 						 [base_idx[core_no]]
23439 						 >> 16) & 0x7;
23440 					target_gain.pad[core_no] =
23441 						(tx_pwrctrl_tbl
23442 						 [base_idx[core_no]]
23443 						 >> 19) & 0x1f;
23444 					target_gain.pga[core_no] =
23445 						(tx_pwrctrl_tbl
23446 						 [base_idx[core_no]]
23447 						 >> 24) & 0xf;
23448 					target_gain.txgm[core_no] =
23449 						(tx_pwrctrl_tbl
23450 						 [base_idx[core_no]]
23451 						 >> 28) & 0x7;
23452 					target_gain.txlpf[core_no] =
23453 						(tx_pwrctrl_tbl
23454 						 [base_idx[core_no]]
23455 						 >> 31) & 0x1;
23456 				} else {
23457 					target_gain.ipa[core_no] =
23458 						(tx_pwrctrl_tbl
23459 						 [base_idx[core_no]]
23460 						 >> 16) & 0xf;
23461 					target_gain.pad[core_no] =
23462 						(tx_pwrctrl_tbl
23463 						 [base_idx[core_no]]
23464 						 >> 20) & 0xf;
23465 					target_gain.pga[core_no] =
23466 						(tx_pwrctrl_tbl
23467 						 [base_idx[core_no]]
23468 						 >> 24) & 0xf;
23469 					target_gain.txgm[core_no] =
23470 						(tx_pwrctrl_tbl
23471 						[base_idx[core_no]]
23472 						 >> 28) & 0x7;
23473 				}
23474 			} else {
23475 				target_gain.ipa[core_no] =
23476 					(nphy_tpc_txgain[base_idx[core_no]] >>
23477 					 16) & 0x3;
23478 				target_gain.pad[core_no] =
23479 					(nphy_tpc_txgain[base_idx[core_no]] >>
23480 					 18) & 0x3;
23481 				target_gain.pga[core_no] =
23482 					(nphy_tpc_txgain[base_idx[core_no]] >>
23483 					 20) & 0x7;
23484 				target_gain.txgm[core_no] =
23485 					(nphy_tpc_txgain[base_idx[core_no]] >>
23486 					 23) & 0x7;
23487 			}
23488 		}
23489 	}
23490 
23491 	return target_gain;
23492 }
23493 
23494 static void
23495 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23496 			      struct nphy_txgains target_gain,
23497 			      struct nphy_iqcal_params *params)
23498 {
23499 	u8 k;
23500 	int idx;
23501 	u16 gain_index;
23502 	u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23503 
23504 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23505 		if (NREV_GE(pi->pubpi.phy_rev, 7))
23506 			params->txlpf = target_gain.txlpf[core_no];
23507 
23508 		params->txgm = target_gain.txgm[core_no];
23509 		params->pga = target_gain.pga[core_no];
23510 		params->pad = target_gain.pad[core_no];
23511 		params->ipa = target_gain.ipa[core_no];
23512 		if (NREV_GE(pi->pubpi.phy_rev, 7))
23513 			params->cal_gain =
23514 				((params->txlpf << 15) | (params->txgm << 12) |
23515 				 (params->pga << 8) |
23516 				 (params->pad << 3) | (params->ipa));
23517 		else
23518 			params->cal_gain =
23519 				((params->txgm << 12) | (params->pga << 8) |
23520 				 (params->pad << 4) | (params->ipa));
23521 
23522 		params->ncorr[0] = 0x79;
23523 		params->ncorr[1] = 0x79;
23524 		params->ncorr[2] = 0x79;
23525 		params->ncorr[3] = 0x79;
23526 		params->ncorr[4] = 0x79;
23527 	} else {
23528 
23529 		gain_index = ((target_gain.pad[core_no] << 0) |
23530 			      (target_gain.pga[core_no] << 4) |
23531 			      (target_gain.txgm[core_no] << 8));
23532 
23533 		idx = -1;
23534 		for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23535 			if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23536 			    gain_index) {
23537 				idx = k;
23538 				break;
23539 			}
23540 		}
23541 
23542 		params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23543 		params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23544 		params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23545 		params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23546 				    (params->pad << 2));
23547 		params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23548 		params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23549 		params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23550 		params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23551 	}
23552 }
23553 
23554 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23555 {
23556 	u16 jtag_core, core;
23557 
23558 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23559 
23560 		for (core = 0; core <= 1; core++) {
23561 
23562 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23563 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23564 						TX_SSI_MASTER);
23565 
23566 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23567 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23568 						IQCAL_VCM_HG);
23569 
23570 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23571 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23572 						IQCAL_IDAC);
23573 
23574 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23575 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23576 						TSSI_VCM);
23577 
23578 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23579 
23580 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23581 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23582 						TX_SSI_MUX);
23583 
23584 			if (pi->pubpi.radiorev != 5)
23585 				pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23586 					READ_RADIO_REG3(pi, RADIO_2057, TX,
23587 							core,
23588 							TSSIA);
23589 
23590 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23591 			       READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23592 
23593 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23594 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23595 						TSSI_MISC1);
23596 
23597 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
23598 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23599 						 TX_SSI_MASTER, 0x0a);
23600 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23601 						 IQCAL_VCM_HG, 0x43);
23602 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23603 						 IQCAL_IDAC, 0x55);
23604 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23605 						 TSSI_VCM, 0x00);
23606 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23607 						 TSSIG, 0x00);
23608 				if (pi->use_int_tx_iqlo_cal_nphy) {
23609 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23610 							 core, TX_SSI_MUX, 0x4);
23611 					if (!(pi->
23612 					internal_tx_iqlo_cal_tapoff_intpa_nphy))
23613 						WRITE_RADIO_REG3(pi, RADIO_2057,
23614 								 TX, core,
23615 								 TSSIA, 0x31);
23616 					else
23617 						WRITE_RADIO_REG3(pi, RADIO_2057,
23618 								 TX, core,
23619 								 TSSIA, 0x21);
23620 				}
23621 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23622 						 TSSI_MISC1, 0x00);
23623 			} else {
23624 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23625 						 TX_SSI_MASTER, 0x06);
23626 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23627 						 IQCAL_VCM_HG, 0x43);
23628 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23629 						 IQCAL_IDAC, 0x55);
23630 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23631 						 TSSI_VCM, 0x00);
23632 
23633 				if (pi->pubpi.radiorev != 5)
23634 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23635 							 core, TSSIA, 0x00);
23636 				if (pi->use_int_tx_iqlo_cal_nphy) {
23637 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23638 							 core, TX_SSI_MUX,
23639 							 0x06);
23640 					if (!(pi->
23641 					internal_tx_iqlo_cal_tapoff_intpa_nphy))
23642 						WRITE_RADIO_REG3(pi, RADIO_2057,
23643 								 TX, core,
23644 								 TSSIG, 0x31);
23645 					else
23646 						WRITE_RADIO_REG3(pi, RADIO_2057,
23647 								 TX, core,
23648 								 TSSIG, 0x21);
23649 				}
23650 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23651 						 TSSI_MISC1, 0x00);
23652 			}
23653 		}
23654 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23655 
23656 		for (core = 0; core <= 1; core++) {
23657 			jtag_core =
23658 				(core ==
23659 				 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23660 
23661 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23662 				read_radio_reg(pi,
23663 					       RADIO_2056_TX_TX_SSI_MASTER |
23664 					       jtag_core);
23665 
23666 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23667 				read_radio_reg(pi,
23668 					       RADIO_2056_TX_IQCAL_VCM_HG |
23669 					       jtag_core);
23670 
23671 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23672 				read_radio_reg(pi,
23673 					       RADIO_2056_TX_IQCAL_IDAC |
23674 					       jtag_core);
23675 
23676 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23677 				read_radio_reg(
23678 					pi,
23679 					RADIO_2056_TX_TSSI_VCM |
23680 					jtag_core);
23681 
23682 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23683 				read_radio_reg(pi,
23684 					       RADIO_2056_TX_TX_AMP_DET |
23685 					       jtag_core);
23686 
23687 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23688 				read_radio_reg(pi,
23689 					       RADIO_2056_TX_TX_SSI_MUX |
23690 					       jtag_core);
23691 
23692 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23693 				read_radio_reg(pi,
23694 					       RADIO_2056_TX_TSSIA | jtag_core);
23695 
23696 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23697 				read_radio_reg(pi,
23698 					       RADIO_2056_TX_TSSIG | jtag_core);
23699 
23700 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23701 				read_radio_reg(pi,
23702 					       RADIO_2056_TX_TSSI_MISC1 |
23703 					       jtag_core);
23704 
23705 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23706 				read_radio_reg(pi,
23707 					       RADIO_2056_TX_TSSI_MISC2 |
23708 					       jtag_core);
23709 
23710 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23711 				read_radio_reg(pi,
23712 					       RADIO_2056_TX_TSSI_MISC3 |
23713 					       jtag_core);
23714 
23715 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
23716 				write_radio_reg(pi,
23717 						RADIO_2056_TX_TX_SSI_MASTER |
23718 						jtag_core, 0x0a);
23719 				write_radio_reg(pi,
23720 						RADIO_2056_TX_IQCAL_VCM_HG |
23721 						jtag_core, 0x40);
23722 				write_radio_reg(pi,
23723 						RADIO_2056_TX_IQCAL_IDAC |
23724 						jtag_core, 0x55);
23725 				write_radio_reg(pi,
23726 						RADIO_2056_TX_TSSI_VCM |
23727 						jtag_core, 0x00);
23728 				write_radio_reg(pi,
23729 						RADIO_2056_TX_TX_AMP_DET |
23730 						jtag_core, 0x00);
23731 
23732 				if (PHY_IPA(pi)) {
23733 					write_radio_reg(
23734 						pi,
23735 						RADIO_2056_TX_TX_SSI_MUX
23736 						| jtag_core, 0x4);
23737 					write_radio_reg(pi,
23738 							RADIO_2056_TX_TSSIA |
23739 							jtag_core, 0x1);
23740 				} else {
23741 					write_radio_reg(
23742 						pi,
23743 						RADIO_2056_TX_TX_SSI_MUX
23744 						| jtag_core, 0x00);
23745 					write_radio_reg(pi,
23746 							RADIO_2056_TX_TSSIA |
23747 							jtag_core, 0x2f);
23748 				}
23749 				write_radio_reg(pi,
23750 						RADIO_2056_TX_TSSIG | jtag_core,
23751 						0x00);
23752 				write_radio_reg(pi,
23753 						RADIO_2056_TX_TSSI_MISC1 |
23754 						jtag_core, 0x00);
23755 
23756 				write_radio_reg(pi,
23757 						RADIO_2056_TX_TSSI_MISC2 |
23758 						jtag_core, 0x00);
23759 				write_radio_reg(pi,
23760 						RADIO_2056_TX_TSSI_MISC3 |
23761 						jtag_core, 0x00);
23762 			} else {
23763 				write_radio_reg(pi,
23764 						RADIO_2056_TX_TX_SSI_MASTER |
23765 						jtag_core, 0x06);
23766 				write_radio_reg(pi,
23767 						RADIO_2056_TX_IQCAL_VCM_HG |
23768 						jtag_core, 0x40);
23769 				write_radio_reg(pi,
23770 						RADIO_2056_TX_IQCAL_IDAC |
23771 						jtag_core, 0x55);
23772 				write_radio_reg(pi,
23773 						RADIO_2056_TX_TSSI_VCM |
23774 						jtag_core, 0x00);
23775 				write_radio_reg(pi,
23776 						RADIO_2056_TX_TX_AMP_DET |
23777 						jtag_core, 0x00);
23778 				write_radio_reg(pi,
23779 						RADIO_2056_TX_TSSIA | jtag_core,
23780 						0x00);
23781 
23782 				if (PHY_IPA(pi)) {
23783 
23784 					write_radio_reg(
23785 						pi,
23786 						RADIO_2056_TX_TX_SSI_MUX
23787 						| jtag_core, 0x06);
23788 					if (NREV_LT(pi->pubpi.phy_rev, 5))
23789 						write_radio_reg(
23790 							pi,
23791 							RADIO_2056_TX_TSSIG
23792 							| jtag_core,
23793 							0x11);
23794 					else
23795 						write_radio_reg(
23796 							pi,
23797 							RADIO_2056_TX_TSSIG
23798 							| jtag_core,
23799 							0x1);
23800 				} else {
23801 					write_radio_reg(
23802 						pi,
23803 						RADIO_2056_TX_TX_SSI_MUX
23804 						| jtag_core, 0x00);
23805 					write_radio_reg(pi,
23806 							RADIO_2056_TX_TSSIG |
23807 							jtag_core, 0x20);
23808 				}
23809 
23810 				write_radio_reg(pi,
23811 						RADIO_2056_TX_TSSI_MISC1 |
23812 						jtag_core, 0x00);
23813 				write_radio_reg(pi,
23814 						RADIO_2056_TX_TSSI_MISC2 |
23815 						jtag_core, 0x00);
23816 				write_radio_reg(pi,
23817 						RADIO_2056_TX_TSSI_MISC3 |
23818 						jtag_core, 0x00);
23819 			}
23820 		}
23821 	} else {
23822 
23823 		pi->tx_rx_cal_radio_saveregs[0] =
23824 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23825 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23826 		pi->tx_rx_cal_radio_saveregs[1] =
23827 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23828 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23829 
23830 		pi->tx_rx_cal_radio_saveregs[2] =
23831 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23832 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23833 		pi->tx_rx_cal_radio_saveregs[3] =
23834 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23835 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23836 
23837 		pi->tx_rx_cal_radio_saveregs[4] =
23838 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23839 		pi->tx_rx_cal_radio_saveregs[5] =
23840 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23841 
23842 		if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23843 		    0) {
23844 
23845 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23846 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23847 		} else {
23848 
23849 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23850 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23851 		}
23852 
23853 		if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23854 
23855 			or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23856 			or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23857 		} else {
23858 
23859 			and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23860 			and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23861 		}
23862 	}
23863 }
23864 
23865 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
23866 {
23867 	u16 jtag_core, core;
23868 
23869 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23870 		for (core = 0; core <= 1; core++) {
23871 
23872 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23873 					 TX_SSI_MASTER,
23874 					 pi->
23875 					 tx_rx_cal_radio_saveregs[(core * 11) +
23876 								  0]);
23877 
23878 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23879 					 pi->
23880 					 tx_rx_cal_radio_saveregs[(core * 11) +
23881 								  1]);
23882 
23883 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23884 					 pi->
23885 					 tx_rx_cal_radio_saveregs[(core * 11) +
23886 								  2]);
23887 
23888 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23889 					 pi->
23890 					 tx_rx_cal_radio_saveregs[(core * 11) +
23891 								  3]);
23892 
23893 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23894 					 pi->
23895 					 tx_rx_cal_radio_saveregs[(core * 11) +
23896 								  5]);
23897 
23898 			if (pi->pubpi.radiorev != 5)
23899 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23900 						 TSSIA,
23901 						 pi->tx_rx_cal_radio_saveregs
23902 							     [(core * 11) + 6]);
23903 
23904 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23905 					 pi->
23906 					 tx_rx_cal_radio_saveregs[(core * 11) +
23907 								  7]);
23908 
23909 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23910 					 pi->
23911 					 tx_rx_cal_radio_saveregs[(core * 11) +
23912 								  8]);
23913 		}
23914 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23915 		for (core = 0; core <= 1; core++) {
23916 			jtag_core = (core == PHY_CORE_0) ?
23917 				     RADIO_2056_TX0 : RADIO_2056_TX1;
23918 
23919 			write_radio_reg(pi,
23920 					RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23921 					pi->
23922 					tx_rx_cal_radio_saveregs[(core * 11) +
23923 								 0]);
23924 
23925 			write_radio_reg(pi,
23926 					RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23927 					pi->
23928 					tx_rx_cal_radio_saveregs[(core * 11) +
23929 								 1]);
23930 
23931 			write_radio_reg(pi,
23932 					RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23933 					pi->
23934 					tx_rx_cal_radio_saveregs[(core * 11) +
23935 								 2]);
23936 
23937 			write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23938 					pi->
23939 					tx_rx_cal_radio_saveregs[(core * 11) +
23940 								 3]);
23941 
23942 			write_radio_reg(pi,
23943 					RADIO_2056_TX_TX_AMP_DET | jtag_core,
23944 					pi->
23945 					tx_rx_cal_radio_saveregs[(core * 11) +
23946 								 4]);
23947 
23948 			write_radio_reg(pi,
23949 					RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23950 					pi->
23951 					tx_rx_cal_radio_saveregs[(core * 11) +
23952 								 5]);
23953 
23954 			write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23955 					pi->
23956 					tx_rx_cal_radio_saveregs[(core * 11) +
23957 								 6]);
23958 
23959 			write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23960 					pi->
23961 					tx_rx_cal_radio_saveregs[(core * 11) +
23962 								 7]);
23963 
23964 			write_radio_reg(pi,
23965 					RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23966 					pi->
23967 					tx_rx_cal_radio_saveregs[(core * 11) +
23968 								 8]);
23969 
23970 			write_radio_reg(pi,
23971 					RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23972 					pi->
23973 					tx_rx_cal_radio_saveregs[(core * 11) +
23974 								 9]);
23975 
23976 			write_radio_reg(pi,
23977 					RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23978 					pi->
23979 					tx_rx_cal_radio_saveregs[(core * 11) +
23980 								 10]);
23981 		}
23982 	} else {
23983 
23984 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23985 				pi->tx_rx_cal_radio_saveregs[0]);
23986 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23987 				pi->tx_rx_cal_radio_saveregs[1]);
23988 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23989 				pi->tx_rx_cal_radio_saveregs[2]);
23990 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23991 				pi->tx_rx_cal_radio_saveregs[3]);
23992 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23993 				pi->tx_rx_cal_radio_saveregs[4]);
23994 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23995 				pi->tx_rx_cal_radio_saveregs[5]);
23996 	}
23997 }
23998 
23999 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
24000 {
24001 	u16 val, mask;
24002 
24003 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24004 		pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24005 		pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24006 
24007 		mask = ((0x3 << 8) | (0x3 << 10));
24008 		val = (0x2 << 8);
24009 		val |= (0x2 << 10);
24010 		mod_phy_reg(pi, 0xa6, mask, val);
24011 		mod_phy_reg(pi, 0xa7, mask, val);
24012 
24013 		val = read_phy_reg(pi, 0x8f);
24014 		pi->tx_rx_cal_phy_saveregs[2] = val;
24015 		val |= ((0x1 << 9) | (0x1 << 10));
24016 		write_phy_reg(pi, 0x8f, val);
24017 
24018 		val = read_phy_reg(pi, 0xa5);
24019 		pi->tx_rx_cal_phy_saveregs[3] = val;
24020 		val |= ((0x1 << 9) | (0x1 << 10));
24021 		write_phy_reg(pi, 0xa5, val);
24022 
24023 		pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
24024 		mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
24025 
24026 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24027 					&val);
24028 		pi->tx_rx_cal_phy_saveregs[5] = val;
24029 		val = 0;
24030 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24031 					 &val);
24032 
24033 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24034 					&val);
24035 		pi->tx_rx_cal_phy_saveregs[6] = val;
24036 		val = 0;
24037 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24038 					 &val);
24039 
24040 		pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
24041 		pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
24042 
24043 		if (!(pi->use_int_tx_iqlo_cal_nphy))
24044 			wlc_phy_rfctrlintc_override_nphy(
24045 				pi,
24046 				NPHY_RfctrlIntc_override_PA,
24047 				1,
24048 				RADIO_MIMO_CORESEL_CORE1
24049 				|
24050 				RADIO_MIMO_CORESEL_CORE2);
24051 		else
24052 			wlc_phy_rfctrlintc_override_nphy(
24053 				pi,
24054 				NPHY_RfctrlIntc_override_PA,
24055 				0,
24056 				RADIO_MIMO_CORESEL_CORE1
24057 				|
24058 				RADIO_MIMO_CORESEL_CORE2);
24059 
24060 		wlc_phy_rfctrlintc_override_nphy(pi,
24061 						 NPHY_RfctrlIntc_override_TRSW,
24062 						 0x2, RADIO_MIMO_CORESEL_CORE1);
24063 		wlc_phy_rfctrlintc_override_nphy(pi,
24064 						 NPHY_RfctrlIntc_override_TRSW,
24065 						 0x8, RADIO_MIMO_CORESEL_CORE2);
24066 
24067 		pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24068 		pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24069 		mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24070 			    0x29b, (0x1 << 0), (0) << 0);
24071 
24072 		mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
24073 			    0x29b, (0x1 << 0), (0) << 0);
24074 
24075 		if (NREV_IS(pi->pubpi.phy_rev, 7)
24076 		    || NREV_GE(pi->pubpi.phy_rev, 8))
24077 			wlc_phy_rfctrl_override_nphy_rev7(
24078 				pi, (0x1 << 7),
24079 				wlc_phy_read_lpf_bw_ctl_nphy
24080 					(pi,
24081 					0), 0, 0,
24082 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24083 
24084 		if (pi->use_int_tx_iqlo_cal_nphy
24085 		    && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24086 
24087 			if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24088 
24089 				mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24090 					      1 << 4);
24091 
24092 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
24093 					mod_radio_reg(
24094 						pi,
24095 						RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24096 						1, 0);
24097 					mod_radio_reg(
24098 						pi,
24099 						RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24100 						1, 0);
24101 				} else {
24102 					mod_radio_reg(
24103 					     pi,
24104 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24105 					     1, 0);
24106 					mod_radio_reg(
24107 					     pi,
24108 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24109 					     1, 0);
24110 				}
24111 			} else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24112 				wlc_phy_rfctrl_override_nphy_rev7(
24113 					pi,
24114 					(0x1 << 3), 0,
24115 					0x3, 0,
24116 					NPHY_REV7_RFCTRLOVERRIDE_ID0);
24117 			}
24118 		}
24119 	} else {
24120 		pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24121 		pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24122 
24123 		mask = ((0x3 << 12) | (0x3 << 14));
24124 		val = (0x2 << 12);
24125 		val |= (0x2 << 14);
24126 		mod_phy_reg(pi, 0xa6, mask, val);
24127 		mod_phy_reg(pi, 0xa7, mask, val);
24128 
24129 		val = read_phy_reg(pi, 0xa5);
24130 		pi->tx_rx_cal_phy_saveregs[2] = val;
24131 		val |= ((0x1 << 12) | (0x1 << 13));
24132 		write_phy_reg(pi, 0xa5, val);
24133 
24134 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24135 					&val);
24136 		pi->tx_rx_cal_phy_saveregs[3] = val;
24137 		val |= 0x2000;
24138 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24139 					 &val);
24140 
24141 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24142 					&val);
24143 		pi->tx_rx_cal_phy_saveregs[4] = val;
24144 		val |= 0x2000;
24145 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24146 					 &val);
24147 
24148 		pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24149 		pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24150 		val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24151 		write_phy_reg(pi, 0x91, val);
24152 		write_phy_reg(pi, 0x92, val);
24153 	}
24154 }
24155 
24156 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24157 {
24158 	u16 mask;
24159 
24160 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24161 		write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24162 		write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24163 		write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24164 		write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24165 		write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24166 
24167 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24168 					 &pi->tx_rx_cal_phy_saveregs[5]);
24169 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24170 					 &pi->tx_rx_cal_phy_saveregs[6]);
24171 
24172 		write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24173 		write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24174 
24175 		write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24176 		write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24177 
24178 		if (NREV_IS(pi->pubpi.phy_rev, 7)
24179 		    || NREV_GE(pi->pubpi.phy_rev, 8))
24180 			wlc_phy_rfctrl_override_nphy_rev7(
24181 				pi, (0x1 << 7), 0, 0,
24182 				1,
24183 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24184 
24185 		wlc_phy_resetcca_nphy(pi);
24186 
24187 		if (pi->use_int_tx_iqlo_cal_nphy
24188 		    && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24189 
24190 			if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24191 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
24192 					mod_radio_reg(
24193 						pi,
24194 						RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24195 						1, 1);
24196 					mod_radio_reg(
24197 						pi,
24198 						RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24199 						1, 1);
24200 				} else {
24201 					mod_radio_reg(
24202 					     pi,
24203 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24204 					     1, 1);
24205 					mod_radio_reg(
24206 					     pi,
24207 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24208 					     1, 1);
24209 				}
24210 
24211 				mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24212 					      0);
24213 			} else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24214 				wlc_phy_rfctrl_override_nphy_rev7(
24215 					pi,
24216 					(0x1 << 3), 0,
24217 					0x3, 1,
24218 					NPHY_REV7_RFCTRLOVERRIDE_ID0);
24219 			}
24220 		}
24221 	} else {
24222 		mask = ((0x3 << 12) | (0x3 << 14));
24223 		mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24224 		mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24225 		write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24226 
24227 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24228 					 &pi->tx_rx_cal_phy_saveregs[3]);
24229 
24230 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24231 					 &pi->tx_rx_cal_phy_saveregs[4]);
24232 
24233 		write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24234 		write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24235 	}
24236 }
24237 
24238 void
24239 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24240 {
24241 	u16 tssi_reg;
24242 	s32 temp, pwrindex[2];
24243 	s32 idle_tssi[2];
24244 	s32 rssi_buf[4];
24245 	s32 tssival[2];
24246 	u8 tssi_type;
24247 
24248 	tssi_reg = read_phy_reg(pi, 0x1e9);
24249 
24250 	temp = (s32) (tssi_reg & 0x3f);
24251 	idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24252 
24253 	temp = (s32) ((tssi_reg >> 8) & 0x3f);
24254 	idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24255 
24256 	tssi_type =
24257 		CHSPEC_IS5G(pi->radio_chanspec) ?
24258 		(u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
24259 
24260 	wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24261 
24262 	tssival[0] = rssi_buf[0] / ((s32) num_samps);
24263 	tssival[1] = rssi_buf[2] / ((s32) num_samps);
24264 
24265 	pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24266 	pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24267 
24268 	if (pwrindex[0] < 0)
24269 		pwrindex[0] = 0;
24270 	else if (pwrindex[0] > 63)
24271 		pwrindex[0] = 63;
24272 
24273 	if (pwrindex[1] < 0)
24274 		pwrindex[1] = 0;
24275 	else if (pwrindex[1] > 63)
24276 		pwrindex[1] = 63;
24277 
24278 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
24279 				(u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24280 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
24281 				(u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24282 }
24283 
24284 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24285 {
24286 	int index;
24287 	u32 bbmult_scale;
24288 	u16 bbmult;
24289 	u16 tblentry;
24290 
24291 	static const struct nphy_txiqcal_ladder ladder_lo[] = {
24292 		{3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24293 		{25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24294 		{25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24295 	};
24296 
24297 	static const struct nphy_txiqcal_ladder ladder_iq[] = {
24298 		{3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24299 		{25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24300 		{100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24301 	};
24302 
24303 	bbmult = (core == PHY_CORE_0) ?
24304 		 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24305 		 (pi->nphy_txcal_bbmult & 0xff);
24306 
24307 	for (index = 0; index < 18; index++) {
24308 		bbmult_scale = ladder_lo[index].percent * bbmult;
24309 		bbmult_scale /= 100;
24310 
24311 		tblentry =
24312 			((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24313 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
24314 					 &tblentry);
24315 
24316 		bbmult_scale = ladder_iq[index].percent * bbmult;
24317 		bbmult_scale /= 100;
24318 
24319 		tblentry =
24320 			((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24321 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24322 					 16, &tblentry);
24323 	}
24324 }
24325 
24326 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24327 {
24328 	u16 tmp;
24329 	tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24330 
24331 	tmp = (tmp & (0x7f << 8)) >> 8;
24332 	return (u8) tmp;
24333 }
24334 
24335 static void
24336 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24337 {
24338 	mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24339 
24340 	if (NREV_GT(pi->pubpi.phy_rev, 1))
24341 		mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24342 }
24343 
24344 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24345 {
24346 	u16 m0m1;
24347 
24348 	wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24349 
24350 	return m0m1;
24351 }
24352 
24353 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24354 {
24355 	u16 m0m1 = (u16) ((m0 << 8) | m1);
24356 
24357 	wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24358 	wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24359 }
24360 
24361 static void
24362 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24363 			    struct nphy_papd_restore_state *state, u8 core)
24364 {
24365 	s32 tone_freq;
24366 	u8 off_core;
24367 	u16 mixgain = 0;
24368 
24369 	off_core = core ^ 0x1;
24370 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24371 
24372 		if (NREV_IS(pi->pubpi.phy_rev, 7)
24373 		    || NREV_GE(pi->pubpi.phy_rev, 8))
24374 			wlc_phy_rfctrl_override_nphy_rev7(
24375 				pi, (0x1 << 7),
24376 				wlc_phy_read_lpf_bw_ctl_nphy
24377 					(pi,
24378 					0), 0, 0,
24379 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24380 
24381 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24382 			if (pi->pubpi.radiorev == 5)
24383 				mixgain = (core == 0) ? 0x20 : 0x00;
24384 			else if ((pi->pubpi.radiorev == 7)
24385 				 || (pi->pubpi.radiorev == 8))
24386 				mixgain = 0x00;
24387 			else if ((pi->pubpi.radiorev <= 4)
24388 				 || (pi->pubpi.radiorev == 6))
24389 				mixgain = 0x00;
24390 		} else {
24391 			if ((pi->pubpi.radiorev == 4) ||
24392 			    (pi->pubpi.radiorev == 6))
24393 				mixgain = 0x50;
24394 			else if ((pi->pubpi.radiorev == 3)
24395 				 || (pi->pubpi.radiorev == 7)
24396 				 || (pi->pubpi.radiorev == 8))
24397 				mixgain = 0x0;
24398 		}
24399 
24400 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24401 						  mixgain, (1 << core), 0,
24402 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24403 
24404 		wlc_phy_rfctrl_override_1tomany_nphy(
24405 			pi,
24406 			NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24407 			1, (1 << core), 0);
24408 		wlc_phy_rfctrl_override_1tomany_nphy(
24409 			pi,
24410 			NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24411 			0, (1 << off_core), 0);
24412 
24413 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24414 						  0, 0x3, 0,
24415 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24416 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24417 						  (1 << core), 0,
24418 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24419 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24420 						  (1 << core), 0,
24421 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24422 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24423 						  (1 << core), 0,
24424 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24425 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24426 						  (1 << core), 0,
24427 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24428 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24429 						  (1 << core), 0,
24430 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24431 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24432 						  (1 << core), 0,
24433 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24434 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24435 						  (1 << core), 0,
24436 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24437 
24438 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24439 						  0, (1 << core), 0,
24440 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24441 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24442 						  (1 << core), 0,
24443 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24444 
24445 		state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24446 						    0xa6 : 0xa7);
24447 		state->afeoverride[core] =
24448 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24449 		state->afectrl[off_core] =
24450 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24451 		state->afeoverride[off_core] =
24452 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24453 
24454 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24455 			    (0x1 << 2), 0);
24456 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24457 				 0xa5), (0x1 << 2), (0x1 << 2));
24458 
24459 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24460 			    (0x1 << 2), (0x1 << 2));
24461 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24462 				 0x8f), (0x1 << 2), (0x1 << 2));
24463 
24464 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24465 			state->pwrup[core] =
24466 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24467 						TXRXCOUPLE_2G_PWRUP);
24468 			state->atten[core] =
24469 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24470 						TXRXCOUPLE_2G_ATTEN);
24471 			state->pwrup[off_core] =
24472 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24473 						TXRXCOUPLE_2G_PWRUP);
24474 			state->atten[off_core] =
24475 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24476 						TXRXCOUPLE_2G_ATTEN);
24477 
24478 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24479 					 TXRXCOUPLE_2G_PWRUP, 0xc);
24480 
24481 			if ((pi->pubpi.radiorev == 3) ||
24482 			    (pi->pubpi.radiorev == 4) ||
24483 			    (pi->pubpi.radiorev == 6))
24484 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24485 						 TXRXCOUPLE_2G_ATTEN, 0xf0);
24486 			else if (pi->pubpi.radiorev == 5)
24487 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24488 						 TXRXCOUPLE_2G_ATTEN,
24489 						 (core == 0) ? 0xf7 : 0xf2);
24490 			else if ((pi->pubpi.radiorev == 7)
24491 				 || (pi->pubpi.radiorev == 8))
24492 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24493 						 TXRXCOUPLE_2G_ATTEN, 0xf0);
24494 
24495 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24496 					 TXRXCOUPLE_2G_PWRUP, 0x0);
24497 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24498 					 TXRXCOUPLE_2G_ATTEN, 0xff);
24499 		} else {
24500 			state->pwrup[core] =
24501 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24502 						TXRXCOUPLE_5G_PWRUP);
24503 			state->atten[core] =
24504 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24505 						TXRXCOUPLE_5G_ATTEN);
24506 			state->pwrup[off_core] =
24507 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24508 						TXRXCOUPLE_5G_PWRUP);
24509 			state->atten[off_core] =
24510 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24511 						TXRXCOUPLE_5G_ATTEN);
24512 
24513 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24514 					 TXRXCOUPLE_5G_PWRUP, 0xc);
24515 
24516 			if ((pi->pubpi.radiorev == 7)
24517 			    || (pi->pubpi.radiorev == 8))
24518 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24519 						 TXRXCOUPLE_5G_ATTEN, 0xf4);
24520 
24521 			else
24522 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24523 						 TXRXCOUPLE_5G_ATTEN, 0xf0);
24524 
24525 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24526 					 TXRXCOUPLE_5G_PWRUP, 0x0);
24527 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24528 					 TXRXCOUPLE_5G_ATTEN, 0xff);
24529 		}
24530 
24531 		tone_freq = 4000;
24532 
24533 		wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24534 
24535 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24536 			    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24537 
24538 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24539 			    0x2a4, (0x1 << 13), (1) << 13);
24540 
24541 		mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24542 			    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24543 
24544 		mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24545 			    0x2a4, (0x1 << 13), (0) << 13);
24546 
24547 	} else {
24548 
24549 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24550 
24551 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24552 
24553 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24554 
24555 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24556 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24557 
24558 		state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24559 						    0xa6 : 0xa7);
24560 		state->afeoverride[core] =
24561 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24562 
24563 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24564 			    (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24565 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24566 				 0xa5),
24567 			    (0x1 << 0) |
24568 			    (0x1 << 1) |
24569 			    (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24570 
24571 		state->vga_master[core] =
24572 			READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24573 		WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24574 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24575 			state->fbmix[core] =
24576 				READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24577 						TXFBMIX_G);
24578 			state->intpa_master[core] =
24579 				READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24580 						INTPAG_MASTER);
24581 
24582 			WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24583 					 0x03);
24584 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24585 					 INTPAG_MASTER, 0x04);
24586 		} else {
24587 			state->fbmix[core] =
24588 				READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24589 						TXFBMIX_A);
24590 			state->intpa_master[core] =
24591 				READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24592 						INTPAA_MASTER);
24593 
24594 			WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24595 					 0x03);
24596 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24597 					 INTPAA_MASTER, 0x04);
24598 
24599 		}
24600 
24601 		tone_freq = 4000;
24602 
24603 		wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24604 
24605 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24606 			    0x29b, (0x1 << 0), (1) << 0);
24607 
24608 		mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24609 			    0x29b, (0x1 << 0), (0) << 0);
24610 
24611 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24612 	}
24613 }
24614 
24615 static void
24616 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24617 			      struct nphy_papd_restore_state *state)
24618 {
24619 	u8 core;
24620 
24621 	wlc_phy_stopplayback_nphy(pi);
24622 
24623 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24624 
24625 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24626 
24627 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
24628 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24629 						 TXRXCOUPLE_2G_PWRUP, 0);
24630 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24631 						 TXRXCOUPLE_2G_ATTEN,
24632 						 state->atten[core]);
24633 			} else {
24634 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24635 						 TXRXCOUPLE_5G_PWRUP, 0);
24636 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24637 						 TXRXCOUPLE_5G_ATTEN,
24638 						 state->atten[core]);
24639 			}
24640 		}
24641 
24642 		if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24643 			wlc_phy_rfctrl_override_nphy_rev7(
24644 				pi, (0x1 << 2),
24645 				1, 0x3, 0,
24646 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
24647 		else
24648 			wlc_phy_rfctrl_override_nphy_rev7(
24649 				pi, (0x1 << 2),
24650 				0, 0x3, 1,
24651 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
24652 
24653 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24654 						  0, 0x3, 1,
24655 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24656 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24657 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24658 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24659 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24660 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24661 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24662 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24663 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24664 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24665 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24666 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24667 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24668 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24669 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24670 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24671 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24672 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24673 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24674 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24675 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24676 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24677 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24678 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24679 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24680 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24681 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24682 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24683 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24684 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24685 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24686 
24687 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24688 
24689 			write_phy_reg(pi, (core == PHY_CORE_0) ?
24690 				      0xa6 : 0xa7, state->afectrl[core]);
24691 			write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24692 				      0xa5, state->afeoverride[core]);
24693 		}
24694 
24695 		wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24696 					    (state->mm & 0xff));
24697 
24698 		if (NREV_IS(pi->pubpi.phy_rev, 7)
24699 		    || NREV_GE(pi->pubpi.phy_rev, 8))
24700 			wlc_phy_rfctrl_override_nphy_rev7(
24701 				pi, (0x1 << 7), 0, 0,
24702 				1,
24703 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24704 	} else {
24705 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24706 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24707 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24708 
24709 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24710 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24711 
24712 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24713 
24714 			WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24715 					 state->vga_master[core]);
24716 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
24717 				WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24718 						 TXFBMIX_G, state->fbmix[core]);
24719 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24720 						 INTPAG_MASTER,
24721 						 state->intpa_master[core]);
24722 			} else {
24723 				WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24724 						 TXFBMIX_A, state->fbmix[core]);
24725 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24726 						 INTPAA_MASTER,
24727 						 state->intpa_master[core]);
24728 			}
24729 
24730 			write_phy_reg(pi, (core == PHY_CORE_0) ?
24731 				      0xa6 : 0xa7, state->afectrl[core]);
24732 			write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24733 				      0xa5, state->afeoverride[core]);
24734 		}
24735 
24736 		wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24737 					    (state->mm & 0xff));
24738 
24739 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24740 	}
24741 }
24742 
24743 static void
24744 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24745 		u32 end)
24746 {
24747 	u32 *buf, *src, *dst, sz;
24748 
24749 	sz = end - start + 1;
24750 
24751 	buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24752 	if (NULL == buf)
24753 		return;
24754 
24755 	src = buf;
24756 	dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24757 
24758 	wlc_phy_table_read_nphy(pi,
24759 				(core ==
24760 				 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
24761 				 NPHY_TBL_ID_EPSILONTBL1),
24762 				NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24763 
24764 	do {
24765 		u32 phy_a1, phy_a2;
24766 		s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24767 
24768 		phy_a1 = end - min(end, (winsz >> 1));
24769 		phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24770 			       end + (winsz >> 1));
24771 		phy_a3 = phy_a2 - phy_a1 + 1;
24772 		phy_a6 = 0;
24773 		phy_a7 = 0;
24774 
24775 		do {
24776 			wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24777 						    &phy_a5);
24778 			phy_a6 += phy_a4;
24779 			phy_a7 += phy_a5;
24780 		} while (phy_a2-- != phy_a1);
24781 
24782 		phy_a6 /= phy_a3;
24783 		phy_a7 /= phy_a3;
24784 		dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24785 	} while (end-- != start);
24786 
24787 	wlc_phy_table_write_nphy(pi,
24788 				 (core ==
24789 				  PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
24790 				 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24791 
24792 	kfree(buf);
24793 }
24794 
24795 static void
24796 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24797 		enum phy_cal_mode cal_mode, u8 core)
24798 {
24799 	u16 phy_a1, phy_a2, phy_a3;
24800 	u16 phy_a4, phy_a5;
24801 	bool phy_a6;
24802 	u8 phy_a7, m[2];
24803 	u32 phy_a8 = 0;
24804 	struct nphy_txgains phy_a9;
24805 
24806 	if (NREV_LT(pi->pubpi.phy_rev, 3))
24807 		return;
24808 
24809 	phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24810 
24811 	phy_a6 = ((cal_mode == CAL_GCTRL)
24812 		  || (cal_mode == CAL_SOFT)) ? true : false;
24813 
24814 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24815 
24816 		phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24817 
24818 		if (CHSPEC_IS2G(pi->radio_chanspec))
24819 			phy_a5 = ((phy_a9.txlpf[core] << 15) |
24820 				  (phy_a9.txgm[core] << 12) |
24821 				  (phy_a9.pga[core] << 8) |
24822 				  (txgains->gains.pad[core] << 3) |
24823 				  (phy_a9.ipa[core]));
24824 		else
24825 			phy_a5 = ((phy_a9.txlpf[core] << 15) |
24826 				  (phy_a9.txgm[core] << 12) |
24827 				  (txgains->gains.pga[core] << 8) |
24828 				  (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24829 
24830 		wlc_phy_rfctrl_override_1tomany_nphy(
24831 			pi,
24832 			NPHY_REV7_RfctrlOverride_cmd_txgain,
24833 			phy_a5, (1 << core), 0);
24834 
24835 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24836 			if ((pi->pubpi.radiorev <= 4)
24837 			    || (pi->pubpi.radiorev == 6))
24838 				m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24839 					  60 : 79;
24840 			else
24841 				m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24842 					  45 : 64;
24843 		} else {
24844 			m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24845 		}
24846 
24847 		m[phy_a7] = 0;
24848 		wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24849 
24850 		phy_a2 = 63;
24851 
24852 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24853 			if ((pi->pubpi.radiorev == 4)
24854 			    || (pi->pubpi.radiorev == 6)) {
24855 				phy_a1 = 30;
24856 				phy_a3 = 30;
24857 			} else {
24858 				phy_a1 = 25;
24859 				phy_a3 = 25;
24860 			}
24861 		} else {
24862 			if ((pi->pubpi.radiorev == 5)
24863 			    || (pi->pubpi.radiorev == 7)
24864 			    || (pi->pubpi.radiorev == 8)) {
24865 				phy_a1 = 25;
24866 				phy_a3 = 25;
24867 			} else {
24868 				phy_a1 = 35;
24869 				phy_a3 = 35;
24870 			}
24871 		}
24872 
24873 		if (cal_mode == CAL_GCTRL) {
24874 			if ((pi->pubpi.radiorev == 5)
24875 			    && (CHSPEC_IS2G(pi->radio_chanspec)))
24876 				phy_a1 = 55;
24877 			else if (((pi->pubpi.radiorev == 7) &&
24878 				  (CHSPEC_IS2G(pi->radio_chanspec))) ||
24879 				 ((pi->pubpi.radiorev == 8) &&
24880 				  (CHSPEC_IS2G(pi->radio_chanspec))))
24881 				phy_a1 = 60;
24882 			else
24883 				phy_a1 = 63;
24884 
24885 		} else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
24886 
24887 			phy_a1 = 35;
24888 			phy_a3 = 35;
24889 		}
24890 
24891 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24892 			    0x29b, (0x1 << 0), (1) << 0);
24893 
24894 		mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
24895 			    0x29b, (0x1 << 0), (0) << 0);
24896 
24897 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24898 			    0x2a4, (0x1 << 13), (1) << 13);
24899 
24900 		mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
24901 			    0x2a4, (0x1 << 13), (0) << 13);
24902 
24903 		write_phy_reg(pi, 0x2a1, 0x80);
24904 		write_phy_reg(pi, 0x2a2, 0x100);
24905 
24906 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24907 			    0x2a4, (0x7 << 4), (11) << 4);
24908 
24909 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24910 			    0x2a4, (0x7 << 8), (11) << 8);
24911 
24912 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24913 			    0x2a4, (0x7 << 0), (0x3) << 0);
24914 
24915 		write_phy_reg(pi, 0x2e5, 0x20);
24916 
24917 		mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
24918 
24919 		mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
24920 
24921 		mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
24922 
24923 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24924 						  1, ((core == 0) ? 1 : 2), 0,
24925 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24926 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24927 						  0, ((core == 0) ? 2 : 1), 0,
24928 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24929 
24930 		write_phy_reg(pi, 0x2be, 1);
24931 		SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
24932 
24933 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24934 						  0, 0x3, 0,
24935 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24936 
24937 		wlc_phy_table_write_nphy(pi,
24938 					 (core ==
24939 					  PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
24940 					 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
24941 					 32, &phy_a8);
24942 
24943 		if (cal_mode != CAL_GCTRL) {
24944 			if (CHSPEC_IS5G(pi->radio_chanspec))
24945 				wlc_phy_a1_nphy(pi, core, 5, 0, 35);
24946 		}
24947 
24948 		wlc_phy_rfctrl_override_1tomany_nphy(
24949 			pi,
24950 			NPHY_REV7_RfctrlOverride_cmd_txgain,
24951 			phy_a5, (1 << core), 1);
24952 
24953 	} else {
24954 
24955 		if (txgains) {
24956 			if (txgains->useindex) {
24957 				phy_a4 = 15 - ((txgains->index) >> 3);
24958 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
24959 					if (NREV_GE(pi->pubpi.phy_rev, 6) &&
24960 					    pi->sh->chip == BCMA_CHIP_ID_BCM47162) {
24961 						phy_a5 = 0x10f7 | (phy_a4 << 8);
24962 					} else if (NREV_GE(pi->pubpi.phy_rev, 6)) {
24963 						phy_a5 = 0x00f7 | (phy_a4 << 8);
24964 					} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
24965 						phy_a5 = 0x10f7 | (phy_a4 << 8);
24966 					} else {
24967 						phy_a5 = 0x50f7 | (phy_a4 << 8);
24968 					}
24969 				} else {
24970 					phy_a5 = 0x70f7 | (phy_a4 << 8);
24971 				}
24972 				wlc_phy_rfctrl_override_nphy(pi,
24973 							     (0x1 << 13),
24974 							     phy_a5,
24975 							     (1 << core), 0);
24976 			} else {
24977 				wlc_phy_rfctrl_override_nphy(pi,
24978 							     (0x1 << 13),
24979 							     0x5bf7,
24980 							     (1 << core), 0);
24981 			}
24982 		}
24983 
24984 		if (CHSPEC_IS2G(pi->radio_chanspec))
24985 			m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
24986 		else
24987 			m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24988 
24989 		m[phy_a7] = 0;
24990 		wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24991 
24992 		phy_a2 = 63;
24993 
24994 		if (cal_mode == CAL_FULL) {
24995 			phy_a1 = 25;
24996 			phy_a3 = 25;
24997 		} else if (cal_mode == CAL_SOFT) {
24998 			phy_a1 = 25;
24999 			phy_a3 = 25;
25000 		} else if (cal_mode == CAL_GCTRL) {
25001 			phy_a1 = 63;
25002 			phy_a3 = 25;
25003 		} else {
25004 
25005 			phy_a1 = 25;
25006 			phy_a3 = 25;
25007 		}
25008 
25009 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25010 			    0x29b, (0x1 << 0), (1) << 0);
25011 
25012 		mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25013 			    0x29b, (0x1 << 0), (0) << 0);
25014 
25015 		if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25016 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25017 				    0x2a4, (0x1 << 13), (1) << 13);
25018 
25019 			mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25020 				    0x2a4, (0x1 << 13), (0) << 13);
25021 
25022 			write_phy_reg(pi, 0x2a1, 0x20);
25023 			write_phy_reg(pi, 0x2a2, 0x60);
25024 
25025 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25026 				    0x2a4, (0xf << 4), (9) << 4);
25027 
25028 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25029 				    0x2a4, (0xf << 8), (9) << 8);
25030 
25031 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25032 				    0x2a4, (0xf << 0), (0x2) << 0);
25033 
25034 			write_phy_reg(pi, 0x2e5, 0x20);
25035 		} else {
25036 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25037 				    0x2a4, (0x1 << 11), (1) << 11);
25038 
25039 			mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25040 				    0x2a4, (0x1 << 11), (0) << 11);
25041 
25042 			write_phy_reg(pi, 0x2a1, 0x80);
25043 			write_phy_reg(pi, 0x2a2, 0x600);
25044 
25045 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25046 				    0x2a4, (0x7 << 4), (0) << 4);
25047 
25048 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25049 				    0x2a4, (0x7 << 8), (0) << 8);
25050 
25051 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25052 				    0x2a4, (0x7 << 0), (0x3) << 0);
25053 
25054 			mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
25055 
25056 		}
25057 
25058 		mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25059 
25060 		mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25061 
25062 		mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25063 
25064 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
25065 
25066 		write_phy_reg(pi, 0x2be, 1);
25067 		SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25068 
25069 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
25070 
25071 		wlc_phy_table_write_nphy(pi,
25072 					 (core ==
25073 					  PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25074 					 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25075 					 32, &phy_a8);
25076 
25077 		if (cal_mode != CAL_GCTRL)
25078 			wlc_phy_a1_nphy(pi, core, 5, 0, 40);
25079 	}
25080 }
25081 
25082 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25083 {
25084 	int phy_a1;
25085 	int phy_a2;
25086 	bool phy_a3;
25087 	struct nphy_ipa_txcalgains phy_a4;
25088 	bool phy_a5 = false;
25089 	bool phy_a6 = true;
25090 	s32 phy_a7, phy_a8;
25091 	u32 phy_a9;
25092 	int phy_a10;
25093 	bool phy_a11 = false;
25094 	int phy_a12;
25095 	u8 phy_a13 = 0;
25096 	u8 phy_a14;
25097 	u8 *phy_a15 = NULL;
25098 
25099 	phy_a4.useindex = true;
25100 	phy_a12 = start_gain;
25101 
25102 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25103 
25104 		phy_a2 = 20;
25105 		phy_a1 = 1;
25106 
25107 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
25108 			if (pi->pubpi.radiorev == 5) {
25109 
25110 				phy_a15 = pad_gain_codes_used_2057rev5;
25111 				phy_a13 =
25112 					ARRAY_SIZE(pad_gain_codes_used_2057rev5) - 1;
25113 
25114 			} else if ((pi->pubpi.radiorev == 7)
25115 				   || (pi->pubpi.radiorev == 8)) {
25116 
25117 				phy_a15 = pad_gain_codes_used_2057rev7;
25118 				phy_a13 =
25119 					ARRAY_SIZE(pad_gain_codes_used_2057rev7) - 1;
25120 
25121 			} else {
25122 
25123 				phy_a15 = pad_all_gain_codes_2057;
25124 				phy_a13 = ARRAY_SIZE(pad_all_gain_codes_2057) -
25125 					  1;
25126 			}
25127 
25128 		} else {
25129 
25130 			phy_a15 = pga_all_gain_codes_2057;
25131 			phy_a13 = ARRAY_SIZE(pga_all_gain_codes_2057) - 1;
25132 		}
25133 
25134 		phy_a14 = 0;
25135 
25136 		for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25137 			if (CHSPEC_IS2G(pi->radio_chanspec))
25138 				phy_a4.gains.pad[core] =
25139 					(u16) phy_a15[phy_a12];
25140 			else
25141 				phy_a4.gains.pga[core] =
25142 					(u16) phy_a15[phy_a12];
25143 
25144 			wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25145 
25146 			wlc_phy_table_read_nphy(pi,
25147 						(core ==
25148 						 PHY_CORE_0 ?
25149 						 NPHY_TBL_ID_EPSILONTBL0 :
25150 						 NPHY_TBL_ID_EPSILONTBL1), 1,
25151 						63, 32, &phy_a9);
25152 
25153 			wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25154 
25155 			phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25156 				  (phy_a8 == 4095) || (phy_a8 == -4096));
25157 
25158 			if (!phy_a6 && (phy_a3 != phy_a5)) {
25159 				if (!phy_a3)
25160 					phy_a12 -= (u8) phy_a1;
25161 
25162 				phy_a11 = true;
25163 				break;
25164 			}
25165 
25166 			if (phy_a3)
25167 				phy_a12 += (u8) phy_a1;
25168 			else
25169 				phy_a12 -= (u8) phy_a1;
25170 
25171 			if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25172 				if (phy_a12 < phy_a14)
25173 					phy_a12 = phy_a14;
25174 				else
25175 					phy_a12 = phy_a13;
25176 
25177 				phy_a11 = true;
25178 				break;
25179 			}
25180 
25181 			phy_a6 = false;
25182 			phy_a5 = phy_a3;
25183 		}
25184 
25185 	} else {
25186 		phy_a2 = 10;
25187 		phy_a1 = 8;
25188 		for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25189 			phy_a4.index = (u8) phy_a12;
25190 			wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25191 
25192 			wlc_phy_table_read_nphy(pi,
25193 						(core ==
25194 						 PHY_CORE_0 ?
25195 						 NPHY_TBL_ID_EPSILONTBL0 :
25196 						 NPHY_TBL_ID_EPSILONTBL1), 1,
25197 						63, 32, &phy_a9);
25198 
25199 			wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25200 
25201 			phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25202 				  (phy_a8 == 4095) || (phy_a8 == -4096));
25203 
25204 			if (!phy_a6 && (phy_a3 != phy_a5)) {
25205 				if (!phy_a3)
25206 					phy_a12 -= (u8) phy_a1;
25207 
25208 				phy_a11 = true;
25209 				break;
25210 			}
25211 
25212 			if (phy_a3)
25213 				phy_a12 += (u8) phy_a1;
25214 			else
25215 				phy_a12 -= (u8) phy_a1;
25216 
25217 			if ((phy_a12 < 0) || (phy_a12 > 127)) {
25218 				if (phy_a12 < 0)
25219 					phy_a12 = 0;
25220 				else
25221 					phy_a12 = 127;
25222 
25223 				phy_a11 = true;
25224 				break;
25225 			}
25226 
25227 			phy_a6 = false;
25228 			phy_a5 = phy_a3;
25229 		}
25230 
25231 	}
25232 
25233 	if (NREV_GE(pi->pubpi.phy_rev, 7))
25234 		return (u8) phy_a15[phy_a12];
25235 	else
25236 		return (u8) phy_a12;
25237 
25238 }
25239 
25240 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25241 {
25242 	struct nphy_ipa_txcalgains phy_b1[2];
25243 	struct nphy_papd_restore_state phy_b2;
25244 	bool phy_b3;
25245 	u8 phy_b4;
25246 	u8 phy_b5;
25247 	s16 phy_b6, phy_b7, phy_b8;
25248 	u16 phy_b9;
25249 	s16 phy_b10, phy_b11, phy_b12;
25250 
25251 	phy_b11 = 0;
25252 	phy_b12 = 0;
25253 	phy_b7 = 0;
25254 	phy_b8 = 0;
25255 	phy_b6 = 0;
25256 
25257 	if (pi->nphy_papd_skip == 1)
25258 		return;
25259 
25260 	phy_b3 = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
25261 			MCTL_EN_MAC));
25262 	if (!phy_b3)
25263 		wlapi_suspend_mac_and_wait(pi->sh->physhim);
25264 
25265 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
25266 
25267 	pi->nphy_force_papd_cal = false;
25268 
25269 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25270 		pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25271 			wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25272 
25273 	pi->nphy_papd_last_cal = pi->sh->now;
25274 	pi->nphy_papd_recal_counter++;
25275 
25276 	phy_b4 = pi->nphy_txpwrctrl;
25277 	wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25278 
25279 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
25280 				 nphy_papd_scaltbl);
25281 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
25282 				 nphy_papd_scaltbl);
25283 
25284 	phy_b9 = read_phy_reg(pi, 0x01);
25285 	mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25286 
25287 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25288 		s32 i, val = 0;
25289 		for (i = 0; i < 64; i++)
25290 			wlc_phy_table_write_nphy(pi,
25291 						 ((phy_b5 ==
25292 						   PHY_CORE_0) ?
25293 						  NPHY_TBL_ID_EPSILONTBL0 :
25294 						  NPHY_TBL_ID_EPSILONTBL1), 1,
25295 						 i, 32, &val);
25296 	}
25297 
25298 	wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25299 
25300 	phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25301 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25302 		wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25303 
25304 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25305 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25306 				if ((pi->pubpi.radiorev == 3)
25307 				    || (pi->pubpi.radiorev == 4)
25308 				    || (pi->pubpi.radiorev == 6)) {
25309 					pi->nphy_papd_cal_gain_index[phy_b5] =
25310 						23;
25311 				} else if (pi->pubpi.radiorev == 5) {
25312 					pi->nphy_papd_cal_gain_index[phy_b5] =
25313 						0;
25314 					pi->nphy_papd_cal_gain_index[phy_b5] =
25315 						wlc_phy_a3_nphy(
25316 							pi,
25317 							pi->
25318 							nphy_papd_cal_gain_index
25319 							[phy_b5],
25320 							phy_b5);
25321 
25322 				} else if ((pi->pubpi.radiorev == 7)
25323 					   || (pi->pubpi.radiorev == 8)) {
25324 
25325 					pi->nphy_papd_cal_gain_index[phy_b5] =
25326 						0;
25327 					pi->nphy_papd_cal_gain_index[phy_b5] =
25328 						wlc_phy_a3_nphy(
25329 							pi,
25330 							pi->
25331 							nphy_papd_cal_gain_index
25332 							[phy_b5],
25333 							phy_b5);
25334 
25335 				}
25336 
25337 				phy_b1[phy_b5].gains.pad[phy_b5] =
25338 					pi->nphy_papd_cal_gain_index[phy_b5];
25339 
25340 			} else {
25341 				pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25342 				pi->nphy_papd_cal_gain_index[phy_b5] =
25343 					wlc_phy_a3_nphy(
25344 						pi,
25345 						pi->
25346 						nphy_papd_cal_gain_index
25347 						[phy_b5], phy_b5);
25348 				phy_b1[phy_b5].gains.pga[phy_b5] =
25349 					pi->nphy_papd_cal_gain_index[phy_b5];
25350 			}
25351 		} else {
25352 			phy_b1[phy_b5].useindex = true;
25353 			phy_b1[phy_b5].index = 16;
25354 			phy_b1[phy_b5].index =
25355 				wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25356 						phy_b5);
25357 
25358 			pi->nphy_papd_cal_gain_index[phy_b5] =
25359 				15 - ((phy_b1[phy_b5].index) >> 3);
25360 		}
25361 
25362 		switch (pi->nphy_papd_cal_type) {
25363 		case 0:
25364 			wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25365 			break;
25366 		case 1:
25367 			wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25368 			break;
25369 		}
25370 
25371 		if (NREV_GE(pi->pubpi.phy_rev, 7))
25372 			wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25373 	}
25374 
25375 	if (NREV_LT(pi->pubpi.phy_rev, 7))
25376 		wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25377 
25378 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25379 		int eps_offset = 0;
25380 
25381 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25382 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25383 				if (pi->pubpi.radiorev == 3)
25384 					eps_offset = -2;
25385 				else if (pi->pubpi.radiorev == 5)
25386 					eps_offset = 3;
25387 				else
25388 					eps_offset = -1;
25389 			} else {
25390 				eps_offset = 2;
25391 			}
25392 
25393 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25394 				phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25395 				phy_b10 = 0;
25396 				if ((pi->pubpi.radiorev == 3) ||
25397 				    (pi->pubpi.radiorev == 4) ||
25398 				    (pi->pubpi.radiorev == 6)) {
25399 					phy_b12 = -(
25400 					    nphy_papd_padgain_dlt_2g_2057rev3n4
25401 							     [phy_b8] + 1) / 2;
25402 					phy_b10 = -1;
25403 				} else if (pi->pubpi.radiorev == 5) {
25404 					phy_b12 = -(
25405 					    nphy_papd_padgain_dlt_2g_2057rev5
25406 							     [phy_b8] + 1) / 2;
25407 				} else if ((pi->pubpi.radiorev == 7) ||
25408 					   (pi->pubpi.radiorev == 8)) {
25409 					phy_b12 = -(
25410 					    nphy_papd_padgain_dlt_2g_2057rev7
25411 							     [phy_b8] + 1) / 2;
25412 				}
25413 			} else {
25414 				phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25415 				if ((pi->pubpi.radiorev == 3) ||
25416 				    (pi->pubpi.radiorev == 4) ||
25417 				    (pi->pubpi.radiorev == 6))
25418 					phy_b11 =
25419 						-(nphy_papd_pgagain_dlt_5g_2057
25420 						  [phy_b7]
25421 						  + 1) / 2;
25422 				else if ((pi->pubpi.radiorev == 7)
25423 					 || (pi->pubpi.radiorev == 8))
25424 					phy_b11 = -(
25425 					      nphy_papd_pgagain_dlt_5g_2057rev7
25426 							     [phy_b7] + 1) / 2;
25427 
25428 				phy_b10 = -9;
25429 			}
25430 
25431 			if (CHSPEC_IS2G(pi->radio_chanspec))
25432 				phy_b6 =
25433 					-60 + 27 + eps_offset + phy_b12 +
25434 					phy_b10;
25435 			else
25436 				phy_b6 =
25437 					-60 + 27 + eps_offset + phy_b11 +
25438 					phy_b10;
25439 
25440 			mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25441 				    0x29c, (0x1ff << 7), (phy_b6) << 7);
25442 
25443 			pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25444 		} else {
25445 			if (NREV_LT(pi->pubpi.phy_rev, 5))
25446 				eps_offset = 4;
25447 			else
25448 				eps_offset = 2;
25449 
25450 			phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25451 
25452 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25453 				phy_b11 =
25454 					-(nphy_papd_pga_gain_delta_ipa_2g[
25455 						  phy_b7] +
25456 					  1) / 2;
25457 				phy_b10 = 0;
25458 			} else {
25459 				phy_b11 =
25460 					-(nphy_papd_pga_gain_delta_ipa_5g[
25461 						  phy_b7] +
25462 					  1) / 2;
25463 				phy_b10 = -9;
25464 			}
25465 
25466 			phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25467 
25468 			mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25469 				    0x29c, (0x1ff << 7), (phy_b6) << 7);
25470 
25471 			pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25472 		}
25473 	}
25474 
25475 	mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25476 		    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25477 
25478 	mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25479 		    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25480 
25481 	if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25482 		mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25483 			    0x2a4, (0x1 << 13), (0) << 13);
25484 
25485 		mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25486 			    0x2a4, (0x1 << 13), (0) << 13);
25487 
25488 	} else {
25489 		mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25490 			    0x2a4, (0x1 << 11), (0) << 11);
25491 
25492 		mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25493 			    0x2a4, (0x1 << 11), (0) << 11);
25494 
25495 	}
25496 	pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
25497 
25498 	write_phy_reg(pi, 0x01, phy_b9);
25499 
25500 	wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25501 
25502 	wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25503 	if (phy_b4 == PHY_TPC_HW_OFF) {
25504 		wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25505 					 (s8) (pi->nphy_txpwrindex[0].
25506 					       index_internal), false);
25507 		wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25508 					 (s8) (pi->nphy_txpwrindex[1].
25509 					       index_internal), false);
25510 	}
25511 
25512 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
25513 
25514 	if (!phy_b3)
25515 		wlapi_enable_mac(pi->sh->physhim);
25516 }
25517 
25518 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25519 {
25520 	struct nphy_txgains target_gain;
25521 	u8 tx_pwr_ctrl_state;
25522 	bool fullcal = true;
25523 	bool restore_tx_gain = false;
25524 	bool mphase;
25525 
25526 	if (PHY_MUTED(pi))
25527 		return;
25528 
25529 	if (caltype == PHY_PERICAL_AUTO)
25530 		fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25531 	else if (caltype == PHY_PERICAL_PARTIAL)
25532 		fullcal = false;
25533 
25534 	if (pi->cal_type_override != PHY_PERICAL_AUTO)
25535 		fullcal =
25536 			(pi->cal_type_override ==
25537 			 PHY_PERICAL_FULL) ? true : false;
25538 
25539 	if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
25540 		if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25541 			wlc_phy_cal_perical_mphase_restart(pi);
25542 	}
25543 
25544 	if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
25545 		wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25546 
25547 	wlapi_suspend_mac_and_wait(pi->sh->physhim);
25548 
25549 	wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25550 
25551 	if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
25552 	    (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
25553 		pi->nphy_cal_orig_pwr_idx[0] =
25554 			(u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25555 		pi->nphy_cal_orig_pwr_idx[1] =
25556 			(u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25557 
25558 		if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25559 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
25560 						0x110, 16,
25561 						pi->nphy_cal_orig_tx_gain);
25562 		} else {
25563 			pi->nphy_cal_orig_tx_gain[0] = 0;
25564 			pi->nphy_cal_orig_tx_gain[1] = 0;
25565 		}
25566 	}
25567 	target_gain = wlc_phy_get_tx_gain_nphy(pi);
25568 	tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25569 	wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25570 
25571 	if (pi->antsel_type == ANTSEL_2x3)
25572 		wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25573 
25574 	mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25575 	if (!mphase) {
25576 
25577 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25578 			wlc_phy_precal_txgain_nphy(pi);
25579 			pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25580 			restore_tx_gain = true;
25581 
25582 			target_gain = pi->nphy_cal_target_gain;
25583 		}
25584 		if (0 ==
25585 		    wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25586 					    mphase)) {
25587 			if (PHY_IPA(pi))
25588 				wlc_phy_a4(pi, true);
25589 
25590 			wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25591 			wlapi_enable_mac(pi->sh->physhim);
25592 			wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25593 					     10000);
25594 			wlapi_suspend_mac_and_wait(pi->sh->physhim);
25595 			wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25596 
25597 			if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25598 					(pi->first_cal_after_assoc ||
25599 					(pi->cal_type_override ==
25600 					 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25601 				wlc_phy_savecal_nphy(pi);
25602 
25603 				wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25604 
25605 				pi->nphy_perical_last = pi->sh->now;
25606 			}
25607 		}
25608 		if (caltype != PHY_PERICAL_AUTO)
25609 			wlc_phy_rssi_cal_nphy(pi);
25610 
25611 		if (pi->first_cal_after_assoc
25612 		    || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25613 			pi->first_cal_after_assoc = false;
25614 			wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25615 			wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25616 		}
25617 
25618 		if (NREV_GE(pi->pubpi.phy_rev, 3))
25619 			wlc_phy_radio205x_vcocal_nphy(pi);
25620 	} else {
25621 		switch (pi->mphase_cal_phase_id) {
25622 		case MPHASE_CAL_STATE_INIT:
25623 			pi->nphy_perical_last = pi->sh->now;
25624 			pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25625 
25626 			if (NREV_GE(pi->pubpi.phy_rev, 3))
25627 				wlc_phy_precal_txgain_nphy(pi);
25628 
25629 			pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25630 			pi->mphase_cal_phase_id++;
25631 			break;
25632 
25633 		case MPHASE_CAL_STATE_TXPHASE0:
25634 		case MPHASE_CAL_STATE_TXPHASE1:
25635 		case MPHASE_CAL_STATE_TXPHASE2:
25636 		case MPHASE_CAL_STATE_TXPHASE3:
25637 		case MPHASE_CAL_STATE_TXPHASE4:
25638 		case MPHASE_CAL_STATE_TXPHASE5:
25639 			if ((pi->radar_percal_mask & 0x10) != 0)
25640 				pi->nphy_rxcal_active = true;
25641 
25642 			if (wlc_phy_cal_txiqlo_nphy
25643 				    (pi, pi->nphy_cal_target_gain, fullcal,
25644 				    true) != 0) {
25645 
25646 				wlc_phy_cal_perical_mphase_reset(pi);
25647 				break;
25648 			}
25649 
25650 			if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25651 			    (pi->mphase_cal_phase_id ==
25652 			     MPHASE_CAL_STATE_TXPHASE4))
25653 				pi->mphase_cal_phase_id += 2;
25654 			else
25655 				pi->mphase_cal_phase_id++;
25656 			break;
25657 
25658 		case MPHASE_CAL_STATE_PAPDCAL:
25659 			if ((pi->radar_percal_mask & 0x2) != 0)
25660 				pi->nphy_rxcal_active = true;
25661 
25662 			if (PHY_IPA(pi))
25663 				wlc_phy_a4(pi, true);
25664 
25665 			pi->mphase_cal_phase_id++;
25666 			break;
25667 
25668 		case MPHASE_CAL_STATE_RXCAL:
25669 			if ((pi->radar_percal_mask & 0x1) != 0)
25670 				pi->nphy_rxcal_active = true;
25671 			if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25672 						  (pi->first_cal_after_assoc ||
25673 						   (pi->cal_type_override ==
25674 						    PHY_PERICAL_FULL)) ? 2 : 0,
25675 						  false) == 0)
25676 				wlc_phy_savecal_nphy(pi);
25677 
25678 			pi->mphase_cal_phase_id++;
25679 			break;
25680 
25681 		case MPHASE_CAL_STATE_RSSICAL:
25682 			if ((pi->radar_percal_mask & 0x4) != 0)
25683 				pi->nphy_rxcal_active = true;
25684 			wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25685 			wlc_phy_rssi_cal_nphy(pi);
25686 
25687 			if (NREV_GE(pi->pubpi.phy_rev, 3))
25688 				wlc_phy_radio205x_vcocal_nphy(pi);
25689 
25690 			restore_tx_gain = true;
25691 
25692 			if (pi->first_cal_after_assoc)
25693 				pi->mphase_cal_phase_id++;
25694 			else
25695 				wlc_phy_cal_perical_mphase_reset(pi);
25696 
25697 			break;
25698 
25699 		case MPHASE_CAL_STATE_IDLETSSI:
25700 			if ((pi->radar_percal_mask & 0x8) != 0)
25701 				pi->nphy_rxcal_active = true;
25702 
25703 			if (pi->first_cal_after_assoc) {
25704 				pi->first_cal_after_assoc = false;
25705 				wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25706 				wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25707 			}
25708 
25709 			wlc_phy_cal_perical_mphase_reset(pi);
25710 			break;
25711 
25712 		default:
25713 			wlc_phy_cal_perical_mphase_reset(pi);
25714 			break;
25715 		}
25716 	}
25717 
25718 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25719 		if (restore_tx_gain) {
25720 			if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25721 
25722 				wlc_phy_txpwr_index_nphy(pi, 1,
25723 							 pi->
25724 							 nphy_cal_orig_pwr_idx
25725 							 [0], false);
25726 				wlc_phy_txpwr_index_nphy(pi, 2,
25727 							 pi->
25728 							 nphy_cal_orig_pwr_idx
25729 							 [1], false);
25730 
25731 				pi->nphy_txpwrindex[0].index = -1;
25732 				pi->nphy_txpwrindex[1].index = -1;
25733 			} else {
25734 				wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25735 							 (s8) (pi->
25736 							       nphy_txpwrindex
25737 							       [0].
25738 							       index_internal),
25739 							 false);
25740 				wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25741 							 (s8) (pi->
25742 							       nphy_txpwrindex
25743 							       [1].
25744 							       index_internal),
25745 							 false);
25746 			}
25747 		}
25748 	}
25749 
25750 	wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25751 	wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25752 	wlapi_enable_mac(pi->sh->physhim);
25753 }
25754 
25755 int
25756 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25757 			bool fullcal, bool mphase)
25758 {
25759 	u16 val;
25760 	u16 tbl_buf[11];
25761 	u8 cal_cnt;
25762 	u16 cal_cmd;
25763 	u8 num_cals, max_cal_cmds;
25764 	u16 core_no, cal_type;
25765 	u16 diq_start = 0;
25766 	u8 phy_bw;
25767 	u16 max_val;
25768 	u16 tone_freq;
25769 	u16 gain_save[2];
25770 	u16 cal_gain[2];
25771 	struct nphy_iqcal_params cal_params[2];
25772 	u32 tbl_len;
25773 	const void *tbl_ptr;
25774 	bool ladder_updated[2];
25775 	u8 mphase_cal_lastphase = 0;
25776 	int bcmerror = 0;
25777 	bool phyhang_avoid_state = false;
25778 
25779 	static const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
25780 		0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25781 		0x1902,
25782 		0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25783 		0x6407
25784 	};
25785 
25786 	static const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
25787 		0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25788 		0x3200,
25789 		0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25790 		0x6407
25791 	};
25792 
25793 	static const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
25794 		0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25795 		0x1202,
25796 		0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25797 		0x4707
25798 	};
25799 
25800 	static const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
25801 		0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25802 		0x2300,
25803 		0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25804 		0x4707
25805 	};
25806 
25807 	static const u16 tbl_tx_iqlo_cal_startcoefs[] = {
25808 		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25809 		0x0000
25810 	};
25811 
25812 	static const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
25813 		0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25814 		0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25815 	};
25816 
25817 	static const u16 tbl_tx_iqlo_cal_cmds_recal[] = {
25818 		0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25819 		0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25820 	};
25821 
25822 	static const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
25823 		0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25824 		0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25825 		0x0000
25826 	};
25827 
25828 	static const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
25829 		0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25830 		0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25831 	};
25832 
25833 	static const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
25834 		0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25835 		0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25836 	};
25837 
25838 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
25839 
25840 	if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25841 		phyhang_avoid_state = pi->phyhang_avoid;
25842 		pi->phyhang_avoid = false;
25843 	}
25844 
25845 	if (CHSPEC_IS40(pi->radio_chanspec))
25846 		phy_bw = 40;
25847 	else
25848 		phy_bw = 20;
25849 
25850 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25851 
25852 	for (core_no = 0; core_no <= 1; core_no++) {
25853 		wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25854 					      &cal_params[core_no]);
25855 		cal_gain[core_no] = cal_params[core_no].cal_gain;
25856 	}
25857 
25858 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25859 
25860 	wlc_phy_txcal_radio_setup_nphy(pi);
25861 
25862 	wlc_phy_txcal_physetup_nphy(pi);
25863 
25864 	ladder_updated[0] = ladder_updated[1] = false;
25865 	if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
25866 	      (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
25867 	       && (CHSPEC_IS2G(pi->radio_chanspec))))) {
25868 
25869 		if (phy_bw == 40) {
25870 			tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
25871 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
25872 		} else {
25873 			tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
25874 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
25875 		}
25876 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
25877 					 16, tbl_ptr);
25878 
25879 		if (phy_bw == 40) {
25880 			tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
25881 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
25882 		} else {
25883 			tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
25884 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
25885 		}
25886 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
25887 					 16, tbl_ptr);
25888 	}
25889 
25890 	if (NREV_GE(pi->pubpi.phy_rev, 7))
25891 		write_phy_reg(pi, 0xc2, 0x8ad9);
25892 	else
25893 		write_phy_reg(pi, 0xc2, 0x8aa9);
25894 
25895 	max_val = 250;
25896 	tone_freq = (phy_bw == 20) ? 2500 : 5000;
25897 
25898 	if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
25899 		wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
25900 		bcmerror = 0;
25901 	} else {
25902 		bcmerror =
25903 			wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
25904 					     false);
25905 	}
25906 
25907 	if (bcmerror == 0) {
25908 
25909 		if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
25910 			tbl_ptr = pi->mphase_txcal_bestcoeffs;
25911 			tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
25912 			if (NREV_LT(pi->pubpi.phy_rev, 3))
25913 				tbl_len -= 2;
25914 		} else {
25915 			if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
25916 
25917 				tbl_ptr = pi->nphy_txiqlocal_bestc;
25918 				tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
25919 				if (NREV_LT(pi->pubpi.phy_rev, 3))
25920 					tbl_len -= 2;
25921 			} else {
25922 
25923 				fullcal = true;
25924 
25925 				if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25926 					tbl_ptr =
25927 					    tbl_tx_iqlo_cal_startcoefs_nphyrev3;
25928 					tbl_len = ARRAY_SIZE(
25929 					   tbl_tx_iqlo_cal_startcoefs_nphyrev3);
25930 				} else {
25931 					tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
25932 					tbl_len = ARRAY_SIZE(
25933 						    tbl_tx_iqlo_cal_startcoefs);
25934 				}
25935 			}
25936 		}
25937 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
25938 					 16, tbl_ptr);
25939 
25940 		if (fullcal) {
25941 			max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25942 				       ARRAY_SIZE(
25943 				tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
25944 				       ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
25945 		} else {
25946 			max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25947 				       ARRAY_SIZE(
25948 				tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
25949 				       ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
25950 		}
25951 
25952 		if (mphase) {
25953 			cal_cnt = pi->mphase_txcal_cmdidx;
25954 			if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
25955 				num_cals = cal_cnt + pi->mphase_txcal_numcmds;
25956 			else
25957 				num_cals = max_cal_cmds;
25958 		} else {
25959 			cal_cnt = 0;
25960 			num_cals = max_cal_cmds;
25961 		}
25962 
25963 		for (; cal_cnt < num_cals; cal_cnt++) {
25964 
25965 			if (fullcal) {
25966 				cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25967 					  tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
25968 					  [cal_cnt] :
25969 					  tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
25970 			} else {
25971 				cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25972 					  tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
25973 					cal_cnt]
25974 					  : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
25975 			}
25976 
25977 			core_no = ((cal_cmd & 0x3000) >> 12);
25978 			cal_type = ((cal_cmd & 0x0F00) >> 8);
25979 
25980 			if (NREV_GE(pi->pubpi.phy_rev, 6) ||
25981 			    (NREV_IS(pi->pubpi.phy_rev, 5) &&
25982 			     PHY_IPA(pi)
25983 			     && (CHSPEC_IS2G(pi->radio_chanspec)))) {
25984 				if (!ladder_updated[core_no]) {
25985 					wlc_phy_update_txcal_ladder_nphy(
25986 						pi,
25987 						core_no);
25988 					ladder_updated[core_no] = true;
25989 				}
25990 			}
25991 
25992 			val =
25993 				(cal_params[core_no].
25994 				 ncorr[cal_type] << 8) | NPHY_N_GCTL;
25995 			write_phy_reg(pi, 0xc1, val);
25996 
25997 			if ((cal_type == 1) || (cal_type == 3)
25998 			    || (cal_type == 4)) {
25999 
26000 				wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26001 							1, 69 + core_no, 16,
26002 							tbl_buf);
26003 
26004 				diq_start = tbl_buf[0];
26005 
26006 				tbl_buf[0] = 0;
26007 				wlc_phy_table_write_nphy(pi,
26008 							 NPHY_TBL_ID_IQLOCAL, 1,
26009 							 69 + core_no, 16,
26010 							 tbl_buf);
26011 			}
26012 
26013 			write_phy_reg(pi, 0xc0, cal_cmd);
26014 
26015 			SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
26016 				 20000);
26017 			if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
26018 				 "HW error: txiq calib"))
26019 				return -EIO;
26020 
26021 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26022 						tbl_len, 96, 16, tbl_buf);
26023 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26024 						 tbl_len, 64, 16, tbl_buf);
26025 
26026 			if ((cal_type == 1) || (cal_type == 3)
26027 			    || (cal_type == 4)) {
26028 
26029 				tbl_buf[0] = diq_start;
26030 
26031 			}
26032 
26033 		}
26034 
26035 		if (mphase) {
26036 			pi->mphase_txcal_cmdidx = num_cals;
26037 			if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
26038 				pi->mphase_txcal_cmdidx = 0;
26039 		}
26040 
26041 		mphase_cal_lastphase =
26042 			(NREV_LE(pi->pubpi.phy_rev, 2)) ?
26043 			MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
26044 
26045 		if (!mphase
26046 		    || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
26047 
26048 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
26049 						16, tbl_buf);
26050 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26051 						 16, tbl_buf);
26052 
26053 			if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26054 
26055 				tbl_buf[0] = 0;
26056 				tbl_buf[1] = 0;
26057 				tbl_buf[2] = 0;
26058 				tbl_buf[3] = 0;
26059 
26060 			}
26061 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26062 						 16, tbl_buf);
26063 
26064 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
26065 						16, tbl_buf);
26066 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26067 						 16, tbl_buf);
26068 
26069 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26070 						 16, tbl_buf);
26071 
26072 			tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26073 			if (NREV_LT(pi->pubpi.phy_rev, 3))
26074 				tbl_len -= 2;
26075 
26076 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26077 						tbl_len, 96, 16,
26078 						pi->nphy_txiqlocal_bestc);
26079 
26080 			pi->nphy_txiqlocal_coeffsvalid = true;
26081 			pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
26082 		} else {
26083 			tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26084 			if (NREV_LT(pi->pubpi.phy_rev, 3))
26085 				tbl_len -= 2;
26086 
26087 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26088 						tbl_len, 96, 16,
26089 						pi->mphase_txcal_bestcoeffs);
26090 		}
26091 
26092 		wlc_phy_stopplayback_nphy(pi);
26093 
26094 		write_phy_reg(pi, 0xc2, 0x0000);
26095 
26096 	}
26097 
26098 	wlc_phy_txcal_phycleanup_nphy(pi);
26099 
26100 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26101 				 gain_save);
26102 
26103 	wlc_phy_txcal_radio_cleanup_nphy(pi);
26104 
26105 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26106 		if (!mphase
26107 		    || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26108 			wlc_phy_tx_iq_war_nphy(pi);
26109 	}
26110 
26111 	if (NREV_GE(pi->pubpi.phy_rev, 4))
26112 		pi->phyhang_avoid = phyhang_avoid_state;
26113 
26114 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
26115 
26116 	return bcmerror;
26117 }
26118 
26119 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26120 {
26121 	u16 tbl_buf[7];
26122 
26123 	if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26124 	    (pi->nphy_txiqlocal_coeffsvalid)) {
26125 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26126 					ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26127 
26128 		if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26129 		    (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26130 		    (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26131 		    (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26132 
26133 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26134 						 16, pi->nphy_txiqlocal_bestc);
26135 
26136 			tbl_buf[0] = 0;
26137 			tbl_buf[1] = 0;
26138 			tbl_buf[2] = 0;
26139 			tbl_buf[3] = 0;
26140 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26141 						 16, tbl_buf);
26142 
26143 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26144 						 16,
26145 						 &pi->nphy_txiqlocal_bestc[5]);
26146 
26147 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26148 						 16,
26149 						 &pi->nphy_txiqlocal_bestc[5]);
26150 		}
26151 	}
26152 }
26153 
26154 void
26155 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
26156 			  struct nphy_iq_comp *pcomp)
26157 {
26158 	if (write) {
26159 		write_phy_reg(pi, 0x9a, pcomp->a0);
26160 		write_phy_reg(pi, 0x9b, pcomp->b0);
26161 		write_phy_reg(pi, 0x9c, pcomp->a1);
26162 		write_phy_reg(pi, 0x9d, pcomp->b1);
26163 	} else {
26164 		pcomp->a0 = read_phy_reg(pi, 0x9a);
26165 		pcomp->b0 = read_phy_reg(pi, 0x9b);
26166 		pcomp->a1 = read_phy_reg(pi, 0x9c);
26167 		pcomp->b1 = read_phy_reg(pi, 0x9d);
26168 	}
26169 }
26170 
26171 void
26172 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
26173 		       u16 num_samps, u8 wait_time, u8 wait_for_crs)
26174 {
26175 	u8 core;
26176 
26177 	write_phy_reg(pi, 0x12b, num_samps);
26178 	mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26179 	mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26180 		    (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26181 
26182 	mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
26183 
26184 	SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26185 		 10000);
26186 	if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26187 		 "HW error: rxiq est"))
26188 		return;
26189 
26190 	if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26191 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26192 			est[core].i_pwr =
26193 				(read_phy_reg(pi,
26194 					      NPHY_IqestipwrAccHi(core)) << 16)
26195 				| read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26196 			est[core].q_pwr =
26197 				(read_phy_reg(pi,
26198 					      NPHY_IqestqpwrAccHi(core)) << 16)
26199 				| read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26200 			est[core].iq_prod =
26201 				(read_phy_reg(pi,
26202 					      NPHY_IqestIqAccHi(core)) << 16) |
26203 				read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26204 		}
26205 	}
26206 }
26207 
26208 #define CAL_RETRY_CNT 2
26209 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26210 {
26211 	u8 curr_core;
26212 	struct phy_iq_est est[PHY_CORE_MAX];
26213 	struct nphy_iq_comp old_comp, new_comp;
26214 	s32 iq = 0;
26215 	u32 ii = 0, qq = 0;
26216 	s16 iq_nbits, qq_nbits, brsh, arsh;
26217 	s32 a, b, temp;
26218 	int bcmerror = 0;
26219 	uint cal_retry = 0;
26220 
26221 	if (core_mask == 0x0)
26222 		return;
26223 
26224 	wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26225 	new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26226 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26227 
26228 cal_try:
26229 	wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26230 
26231 	new_comp = old_comp;
26232 
26233 	for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26234 
26235 		if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26236 			iq = est[curr_core].iq_prod;
26237 			ii = est[curr_core].i_pwr;
26238 			qq = est[curr_core].q_pwr;
26239 		} else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26240 			iq = est[curr_core].iq_prod;
26241 			ii = est[curr_core].i_pwr;
26242 			qq = est[curr_core].q_pwr;
26243 		} else {
26244 			continue;
26245 		}
26246 
26247 		if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26248 			bcmerror = -EBADE;
26249 			break;
26250 		}
26251 
26252 		iq_nbits = wlc_phy_nbits(iq);
26253 		qq_nbits = wlc_phy_nbits(qq);
26254 
26255 		arsh = 10 - (30 - iq_nbits);
26256 		if (arsh >= 0) {
26257 			a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26258 			temp = (s32) (ii >> arsh);
26259 			if (temp == 0) {
26260 				bcmerror = -EBADE;
26261 				break;
26262 			}
26263 		} else {
26264 			a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26265 			temp = (s32) (ii << -arsh);
26266 			if (temp == 0) {
26267 				bcmerror = -EBADE;
26268 				break;
26269 			}
26270 		}
26271 
26272 		a /= temp;
26273 
26274 		brsh = qq_nbits - 31 + 20;
26275 		if (brsh >= 0) {
26276 			b = (qq << (31 - qq_nbits));
26277 			temp = (s32) (ii >> brsh);
26278 			if (temp == 0) {
26279 				bcmerror = -EBADE;
26280 				break;
26281 			}
26282 		} else {
26283 			b = (qq << (31 - qq_nbits));
26284 			temp = (s32) (ii << -brsh);
26285 			if (temp == 0) {
26286 				bcmerror = -EBADE;
26287 				break;
26288 			}
26289 		}
26290 		b /= temp;
26291 		b -= a * a;
26292 		b = (s32) int_sqrt((unsigned long) b);
26293 		b -= (1 << 10);
26294 
26295 		if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26296 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26297 				new_comp.a0 = (s16) a & 0x3ff;
26298 				new_comp.b0 = (s16) b & 0x3ff;
26299 			} else {
26300 
26301 				new_comp.a0 = (s16) b & 0x3ff;
26302 				new_comp.b0 = (s16) a & 0x3ff;
26303 			}
26304 		}
26305 		if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26306 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26307 				new_comp.a1 = (s16) a & 0x3ff;
26308 				new_comp.b1 = (s16) b & 0x3ff;
26309 			} else {
26310 
26311 				new_comp.a1 = (s16) b & 0x3ff;
26312 				new_comp.b1 = (s16) a & 0x3ff;
26313 			}
26314 		}
26315 	}
26316 
26317 	if (bcmerror != 0) {
26318 		pr_debug("%s: Failed, cnt = %d\n", __func__, cal_retry);
26319 
26320 		if (cal_retry < CAL_RETRY_CNT) {
26321 			cal_retry++;
26322 			goto cal_try;
26323 		}
26324 
26325 		new_comp = old_comp;
26326 	}
26327 
26328 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26329 }
26330 
26331 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26332 {
26333 	u16 offtune_val;
26334 	u16 bias_g = 0;
26335 	u16 bias_a = 0;
26336 
26337 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26338 		if (rx_core == PHY_CORE_0) {
26339 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26340 				pi->tx_rx_cal_radio_saveregs[0] =
26341 					read_radio_reg(pi,
26342 					    RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
26343 				pi->tx_rx_cal_radio_saveregs[1] =
26344 					read_radio_reg(pi,
26345 					    RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
26346 
26347 				write_radio_reg(pi,
26348 					RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26349 					0x3);
26350 				write_radio_reg(pi,
26351 					RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26352 					0xaf);
26353 
26354 			} else {
26355 				pi->tx_rx_cal_radio_saveregs[0] =
26356 					read_radio_reg(pi,
26357 					    RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
26358 				pi->tx_rx_cal_radio_saveregs[1] =
26359 					read_radio_reg(pi,
26360 					    RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
26361 
26362 				write_radio_reg(
26363 					pi,
26364 					RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26365 					0x3);
26366 				write_radio_reg(
26367 					pi,
26368 					RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26369 					0x7f);
26370 			}
26371 
26372 		} else {
26373 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26374 				pi->tx_rx_cal_radio_saveregs[0] =
26375 					read_radio_reg(pi,
26376 					    RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
26377 				pi->tx_rx_cal_radio_saveregs[1] =
26378 					read_radio_reg(pi,
26379 					    RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
26380 
26381 				write_radio_reg(
26382 					pi,
26383 					RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26384 					0x3);
26385 				write_radio_reg(
26386 					pi,
26387 					RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26388 					0xaf);
26389 
26390 			} else {
26391 				pi->tx_rx_cal_radio_saveregs[0] =
26392 					read_radio_reg(pi,
26393 					    RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
26394 				pi->tx_rx_cal_radio_saveregs[1] =
26395 					read_radio_reg(pi,
26396 					    RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
26397 
26398 				write_radio_reg(pi,
26399 					RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26400 					0x3);
26401 				write_radio_reg(pi,
26402 					RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26403 					0x7f);
26404 			}
26405 		}
26406 
26407 	} else {
26408 		if (rx_core == PHY_CORE_0) {
26409 			pi->tx_rx_cal_radio_saveregs[0] =
26410 				read_radio_reg(pi,
26411 					       RADIO_2056_TX_RXIQCAL_TXMUX |
26412 					       RADIO_2056_TX1);
26413 			pi->tx_rx_cal_radio_saveregs[1] =
26414 				read_radio_reg(pi,
26415 					       RADIO_2056_RX_RXIQCAL_RXMUX |
26416 					       RADIO_2056_RX0);
26417 
26418 			if (pi->pubpi.radiorev >= 5) {
26419 				pi->tx_rx_cal_radio_saveregs[2] =
26420 					read_radio_reg(pi,
26421 						       RADIO_2056_RX_RXSPARE2 |
26422 						       RADIO_2056_RX0);
26423 				pi->tx_rx_cal_radio_saveregs[3] =
26424 					read_radio_reg(pi,
26425 						       RADIO_2056_TX_TXSPARE2 |
26426 						       RADIO_2056_TX1);
26427 			}
26428 
26429 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26430 
26431 				if (pi->pubpi.radiorev >= 5) {
26432 					pi->tx_rx_cal_radio_saveregs[4] =
26433 						read_radio_reg(pi,
26434 						      RADIO_2056_RX_LNAA_MASTER
26435 						      | RADIO_2056_RX0);
26436 
26437 					write_radio_reg(
26438 						pi,
26439 						RADIO_2056_RX_LNAA_MASTER
26440 						| RADIO_2056_RX0, 0x40);
26441 
26442 					write_radio_reg(pi,
26443 						RADIO_2056_TX_TXSPARE2 |
26444 						RADIO_2056_TX1, bias_a);
26445 
26446 					write_radio_reg(pi,
26447 						RADIO_2056_RX_RXSPARE2 |
26448 						RADIO_2056_RX0, bias_a);
26449 				} else {
26450 					pi->tx_rx_cal_radio_saveregs[4] =
26451 						read_radio_reg(pi,
26452 							RADIO_2056_RX_LNAA_TUNE
26453 							| RADIO_2056_RX0);
26454 
26455 					offtune_val =
26456 						(pi->tx_rx_cal_radio_saveregs
26457 						 [2] & 0xF0) >> 8;
26458 					offtune_val =
26459 						(offtune_val <= 0x7) ? 0xF : 0;
26460 
26461 					mod_radio_reg(pi,
26462 						      RADIO_2056_RX_LNAA_TUNE |
26463 						      RADIO_2056_RX0, 0xF0,
26464 						      (offtune_val << 8));
26465 				}
26466 
26467 				write_radio_reg(pi,
26468 						RADIO_2056_TX_RXIQCAL_TXMUX |
26469 						RADIO_2056_TX1, 0x9);
26470 				write_radio_reg(pi,
26471 						RADIO_2056_RX_RXIQCAL_RXMUX |
26472 						RADIO_2056_RX0, 0x9);
26473 			} else {
26474 				if (pi->pubpi.radiorev >= 5) {
26475 					pi->tx_rx_cal_radio_saveregs[4] =
26476 						read_radio_reg(
26477 						      pi,
26478 						      RADIO_2056_RX_LNAG_MASTER
26479 						    | RADIO_2056_RX0);
26480 
26481 					write_radio_reg(
26482 						pi,
26483 						RADIO_2056_RX_LNAG_MASTER
26484 						| RADIO_2056_RX0, 0x40);
26485 
26486 					write_radio_reg(
26487 						pi,
26488 						RADIO_2056_TX_TXSPARE2
26489 						|
26490 						RADIO_2056_TX1, bias_g);
26491 
26492 					write_radio_reg(
26493 						pi,
26494 						RADIO_2056_RX_RXSPARE2
26495 						|
26496 						RADIO_2056_RX0, bias_g);
26497 
26498 				} else {
26499 					pi->tx_rx_cal_radio_saveregs[4] =
26500 						read_radio_reg(
26501 							pi,
26502 							RADIO_2056_RX_LNAG_TUNE
26503 							| RADIO_2056_RX0);
26504 
26505 					offtune_val =
26506 						(pi->
26507 						 tx_rx_cal_radio_saveregs[2] &
26508 						 0xF0) >> 8;
26509 					offtune_val =
26510 						(offtune_val <= 0x7) ? 0xF : 0;
26511 
26512 					mod_radio_reg(pi,
26513 						      RADIO_2056_RX_LNAG_TUNE |
26514 						      RADIO_2056_RX0, 0xF0,
26515 						      (offtune_val << 8));
26516 				}
26517 
26518 				write_radio_reg(pi,
26519 						RADIO_2056_TX_RXIQCAL_TXMUX |
26520 						RADIO_2056_TX1, 0x6);
26521 				write_radio_reg(pi,
26522 						RADIO_2056_RX_RXIQCAL_RXMUX |
26523 						RADIO_2056_RX0, 0x6);
26524 			}
26525 
26526 		} else {
26527 			pi->tx_rx_cal_radio_saveregs[0] =
26528 				read_radio_reg(pi,
26529 					       RADIO_2056_TX_RXIQCAL_TXMUX |
26530 					       RADIO_2056_TX0);
26531 			pi->tx_rx_cal_radio_saveregs[1] =
26532 				read_radio_reg(pi,
26533 					       RADIO_2056_RX_RXIQCAL_RXMUX |
26534 					       RADIO_2056_RX1);
26535 
26536 			if (pi->pubpi.radiorev >= 5) {
26537 				pi->tx_rx_cal_radio_saveregs[2] =
26538 					read_radio_reg(pi,
26539 						       RADIO_2056_RX_RXSPARE2 |
26540 						       RADIO_2056_RX1);
26541 				pi->tx_rx_cal_radio_saveregs[3] =
26542 					read_radio_reg(pi,
26543 						       RADIO_2056_TX_TXSPARE2 |
26544 						       RADIO_2056_TX0);
26545 			}
26546 
26547 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26548 
26549 				if (pi->pubpi.radiorev >= 5) {
26550 					pi->tx_rx_cal_radio_saveregs[4] =
26551 						read_radio_reg(
26552 						       pi,
26553 						       RADIO_2056_RX_LNAA_MASTER
26554 						       | RADIO_2056_RX1);
26555 
26556 					write_radio_reg(
26557 						pi,
26558 						RADIO_2056_RX_LNAA_MASTER |
26559 						RADIO_2056_RX1, 0x40);
26560 
26561 					write_radio_reg(
26562 						pi,
26563 						RADIO_2056_TX_TXSPARE2
26564 						|
26565 						RADIO_2056_TX0, bias_a);
26566 
26567 					write_radio_reg(
26568 						pi,
26569 						RADIO_2056_RX_RXSPARE2
26570 						|
26571 						RADIO_2056_RX1, bias_a);
26572 				} else {
26573 					pi->tx_rx_cal_radio_saveregs[4] =
26574 						read_radio_reg(
26575 							pi,
26576 							RADIO_2056_RX_LNAA_TUNE
26577 							| RADIO_2056_RX1);
26578 
26579 					offtune_val =
26580 						(pi->
26581 						 tx_rx_cal_radio_saveregs[2] &
26582 						 0xF0) >> 8;
26583 					offtune_val =
26584 						(offtune_val <= 0x7) ? 0xF : 0;
26585 
26586 					mod_radio_reg(pi,
26587 						      RADIO_2056_RX_LNAA_TUNE |
26588 						      RADIO_2056_RX1, 0xF0,
26589 						      (offtune_val << 8));
26590 				}
26591 
26592 				write_radio_reg(pi,
26593 						RADIO_2056_TX_RXIQCAL_TXMUX |
26594 						RADIO_2056_TX0, 0x9);
26595 				write_radio_reg(pi,
26596 						RADIO_2056_RX_RXIQCAL_RXMUX |
26597 						RADIO_2056_RX1, 0x9);
26598 			} else {
26599 				if (pi->pubpi.radiorev >= 5) {
26600 					pi->tx_rx_cal_radio_saveregs[4] =
26601 						read_radio_reg(
26602 						      pi,
26603 						      RADIO_2056_RX_LNAG_MASTER
26604 						    | RADIO_2056_RX1);
26605 
26606 					write_radio_reg(
26607 						pi,
26608 						RADIO_2056_RX_LNAG_MASTER
26609 						| RADIO_2056_RX1, 0x40);
26610 
26611 					write_radio_reg(
26612 						pi,
26613 						RADIO_2056_TX_TXSPARE2
26614 						|
26615 						RADIO_2056_TX0, bias_g);
26616 
26617 					write_radio_reg(
26618 						pi,
26619 						RADIO_2056_RX_RXSPARE2
26620 						|
26621 						RADIO_2056_RX1, bias_g);
26622 				} else {
26623 					pi->tx_rx_cal_radio_saveregs[4] =
26624 						read_radio_reg(
26625 							pi,
26626 							RADIO_2056_RX_LNAG_TUNE
26627 							| RADIO_2056_RX1);
26628 
26629 					offtune_val =
26630 						(pi->
26631 						 tx_rx_cal_radio_saveregs[2] &
26632 						 0xF0) >> 8;
26633 					offtune_val =
26634 						(offtune_val <= 0x7) ? 0xF : 0;
26635 
26636 					mod_radio_reg(pi,
26637 						      RADIO_2056_RX_LNAG_TUNE |
26638 						      RADIO_2056_RX1, 0xF0,
26639 						      (offtune_val << 8));
26640 				}
26641 
26642 				write_radio_reg(pi,
26643 						RADIO_2056_TX_RXIQCAL_TXMUX |
26644 						RADIO_2056_TX0, 0x6);
26645 				write_radio_reg(pi,
26646 						RADIO_2056_RX_RXIQCAL_RXMUX |
26647 						RADIO_2056_RX1, 0x6);
26648 			}
26649 		}
26650 	}
26651 }
26652 
26653 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26654 {
26655 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26656 		if (rx_core == PHY_CORE_0) {
26657 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26658 				write_radio_reg(
26659 					pi,
26660 					RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26661 					pi->
26662 					tx_rx_cal_radio_saveregs[0]);
26663 				write_radio_reg(
26664 					pi,
26665 					RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26666 					pi->
26667 					tx_rx_cal_radio_saveregs[1]);
26668 
26669 			} else {
26670 				write_radio_reg(
26671 					pi,
26672 					RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26673 					pi->
26674 					tx_rx_cal_radio_saveregs[0]);
26675 				write_radio_reg(
26676 					pi,
26677 					RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26678 					pi->
26679 					tx_rx_cal_radio_saveregs[1]);
26680 			}
26681 
26682 		} else {
26683 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26684 				write_radio_reg(
26685 					pi,
26686 					RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26687 					pi->
26688 					tx_rx_cal_radio_saveregs[0]);
26689 				write_radio_reg(
26690 					pi,
26691 					RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26692 					pi->
26693 					tx_rx_cal_radio_saveregs[1]);
26694 
26695 			} else {
26696 				write_radio_reg(
26697 					pi,
26698 					RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26699 					pi->
26700 					tx_rx_cal_radio_saveregs[0]);
26701 				write_radio_reg(
26702 					pi,
26703 					RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26704 					pi->
26705 					tx_rx_cal_radio_saveregs[1]);
26706 			}
26707 		}
26708 
26709 	} else {
26710 		if (rx_core == PHY_CORE_0) {
26711 			write_radio_reg(pi,
26712 					RADIO_2056_TX_RXIQCAL_TXMUX |
26713 					RADIO_2056_TX1,
26714 					pi->tx_rx_cal_radio_saveregs[0]);
26715 
26716 			write_radio_reg(pi,
26717 					RADIO_2056_RX_RXIQCAL_RXMUX |
26718 					RADIO_2056_RX0,
26719 					pi->tx_rx_cal_radio_saveregs[1]);
26720 
26721 			if (pi->pubpi.radiorev >= 5) {
26722 				write_radio_reg(pi,
26723 						RADIO_2056_RX_RXSPARE2 |
26724 						RADIO_2056_RX0,
26725 						pi->
26726 						tx_rx_cal_radio_saveregs[2]);
26727 
26728 				write_radio_reg(pi,
26729 						RADIO_2056_TX_TXSPARE2 |
26730 						RADIO_2056_TX1,
26731 						pi->
26732 						tx_rx_cal_radio_saveregs[3]);
26733 			}
26734 
26735 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26736 				if (pi->pubpi.radiorev >= 5)
26737 					write_radio_reg(
26738 						pi,
26739 						RADIO_2056_RX_LNAA_MASTER
26740 						| RADIO_2056_RX0,
26741 						pi->
26742 						tx_rx_cal_radio_saveregs
26743 						[4]);
26744 				else
26745 					write_radio_reg(
26746 						pi,
26747 						RADIO_2056_RX_LNAA_TUNE
26748 						| RADIO_2056_RX0,
26749 						pi->
26750 						tx_rx_cal_radio_saveregs
26751 						[4]);
26752 			} else {
26753 				if (pi->pubpi.radiorev >= 5)
26754 					write_radio_reg(
26755 						pi,
26756 						RADIO_2056_RX_LNAG_MASTER
26757 						| RADIO_2056_RX0,
26758 						pi->
26759 						tx_rx_cal_radio_saveregs
26760 						[4]);
26761 				else
26762 					write_radio_reg(
26763 						pi,
26764 						RADIO_2056_RX_LNAG_TUNE
26765 						| RADIO_2056_RX0,
26766 						pi->
26767 						tx_rx_cal_radio_saveregs
26768 						[4]);
26769 			}
26770 
26771 		} else {
26772 			write_radio_reg(pi,
26773 					RADIO_2056_TX_RXIQCAL_TXMUX |
26774 					RADIO_2056_TX0,
26775 					pi->tx_rx_cal_radio_saveregs[0]);
26776 
26777 			write_radio_reg(pi,
26778 					RADIO_2056_RX_RXIQCAL_RXMUX |
26779 					RADIO_2056_RX1,
26780 					pi->tx_rx_cal_radio_saveregs[1]);
26781 
26782 			if (pi->pubpi.radiorev >= 5) {
26783 				write_radio_reg(pi,
26784 						RADIO_2056_RX_RXSPARE2 |
26785 						RADIO_2056_RX1,
26786 						pi->
26787 						tx_rx_cal_radio_saveregs[2]);
26788 
26789 				write_radio_reg(pi,
26790 						RADIO_2056_TX_TXSPARE2 |
26791 						RADIO_2056_TX0,
26792 						pi->
26793 						tx_rx_cal_radio_saveregs[3]);
26794 			}
26795 
26796 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26797 				if (pi->pubpi.radiorev >= 5)
26798 					write_radio_reg(
26799 						pi,
26800 						RADIO_2056_RX_LNAA_MASTER
26801 						| RADIO_2056_RX1,
26802 						pi->
26803 						tx_rx_cal_radio_saveregs
26804 						[4]);
26805 				else
26806 					write_radio_reg(
26807 						pi,
26808 						RADIO_2056_RX_LNAA_TUNE
26809 						| RADIO_2056_RX1,
26810 						pi->
26811 						tx_rx_cal_radio_saveregs
26812 						[4]);
26813 			} else {
26814 				if (pi->pubpi.radiorev >= 5)
26815 					write_radio_reg(
26816 						pi,
26817 						RADIO_2056_RX_LNAG_MASTER
26818 						| RADIO_2056_RX1,
26819 						pi->
26820 						tx_rx_cal_radio_saveregs
26821 						[4]);
26822 				else
26823 					write_radio_reg(
26824 						pi,
26825 						RADIO_2056_RX_LNAG_TUNE
26826 						| RADIO_2056_RX1,
26827 						pi->
26828 						tx_rx_cal_radio_saveregs
26829 						[4]);
26830 			}
26831 		}
26832 	}
26833 }
26834 
26835 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26836 {
26837 	u8 tx_core;
26838 	u16 rx_antval, tx_antval;
26839 
26840 	if (NREV_GE(pi->pubpi.phy_rev, 7))
26841 		tx_core = rx_core;
26842 	else
26843 		tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26844 
26845 	pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26846 	pi->tx_rx_cal_phy_saveregs[1] =
26847 		read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26848 	pi->tx_rx_cal_phy_saveregs[2] =
26849 		read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
26850 	pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
26851 	pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
26852 	pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
26853 	pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
26854 	pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
26855 	pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
26856 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26857 		pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
26858 		pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
26859 		pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
26860 		pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
26861 	}
26862 
26863 	pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
26864 	pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
26865 	mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
26866 		    0x29b, (0x1 << 0), (0) << 0);
26867 
26868 	mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
26869 		    0x29b, (0x1 << 0), (0) << 0);
26870 
26871 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26872 
26873 		mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26874 
26875 		mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
26876 
26877 	} else {
26878 
26879 		mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
26880 		mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26881 		mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
26882 		mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
26883 	}
26884 
26885 	mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
26886 	mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
26887 		    (0x1 << 2), (0x1 << 2));
26888 	if (NREV_LT(pi->pubpi.phy_rev, 7)) {
26889 		mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
26890 			    (0x1 << 0) | (0x1 << 1), 0);
26891 		mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
26892 			    0x8f : 0xa5,
26893 			    (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
26894 	}
26895 
26896 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
26897 					 RADIO_MIMO_CORESEL_CORE1 |
26898 					 RADIO_MIMO_CORESEL_CORE2);
26899 
26900 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26901 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26902 						  0, 0, 0,
26903 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
26904 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
26905 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26906 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
26907 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26908 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
26909 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26910 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
26911 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
26912 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
26913 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26914 		if (CHSPEC_IS40(pi->radio_chanspec))
26915 			wlc_phy_rfctrl_override_nphy_rev7(
26916 				pi,
26917 				(0x1 << 7),
26918 				2, 0, 0,
26919 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
26920 		else
26921 			wlc_phy_rfctrl_override_nphy_rev7(
26922 				pi,
26923 				(0x1 << 7),
26924 				0, 0, 0,
26925 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
26926 
26927 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26928 						  0, 0, 0,
26929 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26930 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
26931 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26932 	} else {
26933 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
26934 	}
26935 
26936 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
26937 
26938 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26939 
26940 		wlc_phy_rfctrlintc_override_nphy(pi,
26941 						 NPHY_RfctrlIntc_override_TRSW,
26942 						 0x1, rx_core + 1);
26943 	} else {
26944 
26945 		if (rx_core == PHY_CORE_0) {
26946 			rx_antval = 0x1;
26947 			tx_antval = 0x8;
26948 		} else {
26949 			rx_antval = 0x4;
26950 			tx_antval = 0x2;
26951 		}
26952 
26953 		wlc_phy_rfctrlintc_override_nphy(pi,
26954 						 NPHY_RfctrlIntc_override_TRSW,
26955 						 rx_antval, rx_core + 1);
26956 		wlc_phy_rfctrlintc_override_nphy(pi,
26957 						 NPHY_RfctrlIntc_override_TRSW,
26958 						 tx_antval, tx_core + 1);
26959 	}
26960 }
26961 
26962 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26963 {
26964 
26965 	write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
26966 	write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
26967 		      pi->tx_rx_cal_phy_saveregs[1]);
26968 	write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
26969 		      pi->tx_rx_cal_phy_saveregs[2]);
26970 	write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
26971 	write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
26972 
26973 	write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
26974 	write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
26975 	write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
26976 	write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
26977 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26978 		write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
26979 		write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
26980 		write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
26981 		write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
26982 	}
26983 
26984 	write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
26985 	write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
26986 }
26987 
26988 static void
26989 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
26990 				 u16 *rxgain, u8 cal_type)
26991 {
26992 
26993 	u16 num_samps;
26994 	struct phy_iq_est est[PHY_CORE_MAX];
26995 	u8 tx_core;
26996 	struct nphy_iq_comp save_comp, zero_comp;
26997 	u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
26998 	    thresh_pwr = 10000;
26999 	s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
27000 	bool gainctrl_done = false;
27001 	u8 mix_tia_gain = 3;
27002 	s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
27003 	s8 curr_gaintbl_index = 3;
27004 	u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
27005 	const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
27006 	u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
27007 	int fine_gain_idx;
27008 	s8 txpwrindex;
27009 	u16 nphy_rxcal_txgain[2];
27010 
27011 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27012 		tx_core = rx_core;
27013 	else
27014 		tx_core = 1 - rx_core;
27015 
27016 	num_samps = 1024;
27017 	desired_log2_pwr = 13;
27018 
27019 	wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
27020 	zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
27021 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
27022 
27023 	if (CHSPEC_IS5G(pi->radio_chanspec)) {
27024 		if (NREV_GE(pi->pubpi.phy_rev, 7))
27025 			mix_tia_gain = 3;
27026 		else if (NREV_GE(pi->pubpi.phy_rev, 4))
27027 			mix_tia_gain = 4;
27028 		else
27029 			mix_tia_gain = 6;
27030 		if (NREV_GE(pi->pubpi.phy_rev, 7))
27031 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
27032 		else
27033 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
27034 	} else {
27035 		if (NREV_GE(pi->pubpi.phy_rev, 7))
27036 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
27037 		else
27038 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
27039 	}
27040 
27041 	do {
27042 
27043 		hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
27044 			0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
27045 		lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
27046 		lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
27047 		lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
27048 		lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
27049 		txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
27050 
27051 		if (NREV_GE(pi->pubpi.phy_rev, 7))
27052 			wlc_phy_rfctrl_override_1tomany_nphy(
27053 				pi,
27054 				NPHY_REV7_RfctrlOverride_cmd_rxgain,
27055 				((lpf_biq1 << 12) |
27056 				 (lpf_biq0 << 8) |
27057 				 (mix_tia_gain << 4) | (lna2 << 2)
27058 				 | lna1), 0x3, 0);
27059 		else
27060 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27061 						     ((hpvga << 12) |
27062 						      (lpf_biq1 << 10) |
27063 						      (lpf_biq0 << 8) |
27064 						      (mix_tia_gain << 4) |
27065 						      (lna2 << 2) | lna1), 0x3,
27066 						     0);
27067 
27068 		pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
27069 
27070 		if (txpwrindex == -1) {
27071 			nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
27072 			nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
27073 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
27074 						 2, 0x110, 16,
27075 						 nphy_rxcal_txgain);
27076 		} else {
27077 			wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
27078 						 false);
27079 		}
27080 
27081 		wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
27082 				     NPHY_RXCAL_TONEFREQ_40MHz :
27083 				     NPHY_RXCAL_TONEFREQ_20MHz,
27084 				     NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27085 
27086 		wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27087 		i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27088 		q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27089 		curr_pwr = i_pwr + q_pwr;
27090 
27091 		switch (gainctrl_dirn) {
27092 		case NPHY_RXCAL_GAIN_INIT:
27093 			if (curr_pwr > thresh_pwr) {
27094 				gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27095 				prev_gaintbl_index = curr_gaintbl_index;
27096 				curr_gaintbl_index--;
27097 			} else {
27098 				gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27099 				prev_gaintbl_index = curr_gaintbl_index;
27100 				curr_gaintbl_index++;
27101 			}
27102 			break;
27103 
27104 		case NPHY_RXCAL_GAIN_UP:
27105 			if (curr_pwr > thresh_pwr) {
27106 				gainctrl_done = true;
27107 				optim_pwr = prev_pwr;
27108 				optim_gaintbl_index = prev_gaintbl_index;
27109 			} else {
27110 				prev_gaintbl_index = curr_gaintbl_index;
27111 				curr_gaintbl_index++;
27112 			}
27113 			break;
27114 
27115 		case NPHY_RXCAL_GAIN_DOWN:
27116 			if (curr_pwr > thresh_pwr) {
27117 				prev_gaintbl_index = curr_gaintbl_index;
27118 				curr_gaintbl_index--;
27119 			} else {
27120 				gainctrl_done = true;
27121 				optim_pwr = curr_pwr;
27122 				optim_gaintbl_index = curr_gaintbl_index;
27123 			}
27124 			break;
27125 
27126 		default:
27127 			break;
27128 		}
27129 
27130 		if ((curr_gaintbl_index < 0) ||
27131 		    (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27132 			gainctrl_done = true;
27133 			optim_pwr = curr_pwr;
27134 			optim_gaintbl_index = prev_gaintbl_index;
27135 		} else {
27136 			prev_pwr = curr_pwr;
27137 		}
27138 
27139 		wlc_phy_stopplayback_nphy(pi);
27140 	} while (!gainctrl_done);
27141 
27142 	hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27143 	lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27144 	lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27145 	lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27146 	lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27147 	txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27148 
27149 	actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27150 	delta_pwr = desired_log2_pwr - actual_log2_pwr;
27151 
27152 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27153 		fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27154 
27155 		if (fine_gain_idx + (int)lpf_biq0 > 10)
27156 			lpf_biq1 = 10 - lpf_biq0;
27157 		else
27158 			lpf_biq1 = (u16) max(fine_gain_idx, 0);
27159 
27160 		wlc_phy_rfctrl_override_1tomany_nphy(
27161 			pi,
27162 			NPHY_REV7_RfctrlOverride_cmd_rxgain,
27163 			((lpf_biq1 << 12) |
27164 			 (lpf_biq0 << 8) |
27165 			 (mix_tia_gain << 4) |
27166 			 (lna2 << 2) | lna1), 0x3,
27167 			0);
27168 	} else {
27169 		hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27170 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27171 					     ((hpvga << 12) |
27172 					      (lpf_biq1 << 10) |
27173 					      (lpf_biq0 << 8) |
27174 					      (mix_tia_gain << 4) |
27175 					      (lna2 << 2) |
27176 					      lna1), 0x3, 0);
27177 	}
27178 
27179 	if (rxgain != NULL) {
27180 		*rxgain++ = lna1;
27181 		*rxgain++ = lna2;
27182 		*rxgain++ = mix_tia_gain;
27183 		*rxgain++ = lpf_biq0;
27184 		*rxgain++ = lpf_biq1;
27185 		*rxgain = hpvga;
27186 	}
27187 
27188 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27189 }
27190 
27191 static void
27192 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27193 			    u8 cal_type)
27194 {
27195 	wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27196 }
27197 
27198 static u8
27199 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27200 {
27201 	u32 target_bws[2] = { 9500, 21000 };
27202 	u32 ref_tones[2] = { 3000, 6000 };
27203 	u32 target_bw, ref_tone;
27204 
27205 	u32 target_pwr_ratios[2] = { 28606, 18468 };
27206 	u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27207 
27208 	u16 start_rccal_ovr_val = 128;
27209 	u16 txlpf_rccal_lpc_ovr_val = 128;
27210 	u16 rxlpf_rccal_hpc_ovr_val = 159;
27211 
27212 	u16 orig_txlpf_rccal_lpc_ovr_val;
27213 	u16 orig_rxlpf_rccal_hpc_ovr_val;
27214 	u16 radio_addr_offset_rx;
27215 	u16 radio_addr_offset_tx;
27216 	u16 orig_dcBypass;
27217 	u16 orig_RxStrnFilt40Num[6];
27218 	u16 orig_RxStrnFilt40Den[4];
27219 	u16 orig_rfctrloverride[2];
27220 	u16 orig_rfctrlauxreg[2];
27221 	u16 orig_rfctrlrssiothers;
27222 	u16 tx_lpf_bw = 4;
27223 
27224 	u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27225 	u16 lpf_hpc = 7, hpvga_hpc = 7;
27226 
27227 	s8 rccal_stepsize;
27228 	u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27229 	u32 ref_iq_vals = 0, target_iq_vals = 0;
27230 	u16 num_samps, log_num_samps = 10;
27231 	struct phy_iq_est est[PHY_CORE_MAX];
27232 
27233 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27234 		return 0;
27235 
27236 	num_samps = (1 << log_num_samps);
27237 
27238 	if (CHSPEC_IS40(pi->radio_chanspec)) {
27239 		target_bw = target_bws[1];
27240 		target_pwr_ratio = target_pwr_ratios[1];
27241 		ref_tone = ref_tones[1];
27242 		rx_lpf_bw = rx_lpf_bws[1];
27243 	} else {
27244 		target_bw = target_bws[0];
27245 		target_pwr_ratio = target_pwr_ratios[0];
27246 		ref_tone = ref_tones[0];
27247 		rx_lpf_bw = rx_lpf_bws[0];
27248 	}
27249 
27250 	if (core_idx == 0) {
27251 		radio_addr_offset_rx = RADIO_2056_RX0;
27252 		radio_addr_offset_tx =
27253 			(loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27254 	} else {
27255 		radio_addr_offset_rx = RADIO_2056_RX1;
27256 		radio_addr_offset_tx =
27257 			(loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27258 	}
27259 
27260 	orig_txlpf_rccal_lpc_ovr_val =
27261 		read_radio_reg(pi,
27262 			       (RADIO_2056_TX_TXLPF_RCCAL |
27263 				radio_addr_offset_tx));
27264 	orig_rxlpf_rccal_hpc_ovr_val =
27265 		read_radio_reg(pi,
27266 			       (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27267 				radio_addr_offset_rx));
27268 
27269 	orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27270 
27271 	orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27272 	orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27273 	orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27274 	orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27275 	orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27276 	orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27277 	orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27278 	orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27279 	orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27280 	orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27281 
27282 	orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27283 	orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27284 	orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27285 	orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27286 	orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27287 
27288 	write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27289 			txlpf_rccal_lpc_ovr_val);
27290 
27291 	write_radio_reg(pi,
27292 			(RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27293 			rxlpf_rccal_hpc_ovr_val);
27294 
27295 	mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27296 
27297 	write_phy_reg(pi, 0x267, 0x02d4);
27298 	write_phy_reg(pi, 0x268, 0x0000);
27299 	write_phy_reg(pi, 0x269, 0x0000);
27300 	write_phy_reg(pi, 0x26a, 0x0000);
27301 	write_phy_reg(pi, 0x26b, 0x0000);
27302 	write_phy_reg(pi, 0x26c, 0x02d4);
27303 	write_phy_reg(pi, 0x26d, 0x0000);
27304 	write_phy_reg(pi, 0x26e, 0x0000);
27305 	write_phy_reg(pi, 0x26f, 0x0000);
27306 	write_phy_reg(pi, 0x270, 0x0000);
27307 
27308 	or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27309 	or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27310 	or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27311 	or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27312 
27313 	mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27314 		    (0x7 << 10), (tx_lpf_bw << 10));
27315 	mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27316 		    (0x7 << 0), (hpvga_hpc << 0));
27317 	mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27318 		    (0x7 << 4), (lpf_hpc << 4));
27319 	mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27320 		    (0x7 << 8), (rx_lpf_bw << 8));
27321 
27322 	rccal_stepsize = 16;
27323 	rccal_val = start_rccal_ovr_val + rccal_stepsize;
27324 
27325 	while (rccal_stepsize >= 0) {
27326 		write_radio_reg(pi,
27327 				(RADIO_2056_RX_RXLPF_RCCAL_LPC |
27328 				 radio_addr_offset_rx), rccal_val);
27329 
27330 		if (rccal_stepsize == 16) {
27331 
27332 			wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
27333 					     0, 1, false);
27334 			udelay(2);
27335 
27336 			wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27337 
27338 			if (core_idx == 0)
27339 				ref_iq_vals =
27340 					max_t(u32, (est[0].i_pwr +
27341 						    est[0].q_pwr) >>
27342 					      (log_num_samps + 1),
27343 					      1);
27344 			else
27345 				ref_iq_vals =
27346 					max_t(u32, (est[1].i_pwr +
27347 						    est[1].q_pwr) >>
27348 					      (log_num_samps + 1),
27349 					      1);
27350 
27351 			wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
27352 					     0, 1, false);
27353 			udelay(2);
27354 		}
27355 
27356 		wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27357 
27358 		if (core_idx == 0)
27359 			target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27360 					 (log_num_samps + 1);
27361 		else
27362 			target_iq_vals =
27363 				(est[1].i_pwr +
27364 				 est[1].q_pwr) >> (log_num_samps + 1);
27365 
27366 		pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27367 
27368 		if (rccal_stepsize == 0)
27369 			rccal_stepsize--;
27370 		else if (rccal_stepsize == 1) {
27371 			last_rccal_val = rccal_val;
27372 			rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27373 			last_pwr_ratio = pwr_ratio;
27374 			rccal_stepsize--;
27375 		} else {
27376 			rccal_stepsize = (rccal_stepsize >> 1);
27377 			rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27378 				      rccal_stepsize : (-rccal_stepsize));
27379 		}
27380 
27381 		if (rccal_stepsize == -1) {
27382 			best_rccal_val =
27383 				(abs((int)last_pwr_ratio -
27384 				     (int)target_pwr_ratio) <
27385 				 abs((int)pwr_ratio -
27386 				     (int)target_pwr_ratio)) ? last_rccal_val :
27387 				rccal_val;
27388 
27389 			if (CHSPEC_IS40(pi->radio_chanspec)) {
27390 				if ((best_rccal_val > 140)
27391 				    || (best_rccal_val < 135))
27392 					best_rccal_val = 138;
27393 			} else {
27394 				if ((best_rccal_val > 142)
27395 				    || (best_rccal_val < 137))
27396 					best_rccal_val = 140;
27397 			}
27398 
27399 			write_radio_reg(pi,
27400 					(RADIO_2056_RX_RXLPF_RCCAL_LPC |
27401 					 radio_addr_offset_rx), best_rccal_val);
27402 		}
27403 	}
27404 
27405 	wlc_phy_stopplayback_nphy(pi);
27406 
27407 	write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27408 			orig_txlpf_rccal_lpc_ovr_val);
27409 	write_radio_reg(pi,
27410 			(RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27411 			orig_rxlpf_rccal_hpc_ovr_val);
27412 
27413 	mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27414 
27415 	write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27416 	write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27417 	write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27418 	write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27419 	write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27420 	write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27421 	write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27422 	write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27423 	write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27424 	write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27425 
27426 	write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27427 	write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27428 	write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27429 	write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27430 	write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27431 
27432 	pi->nphy_anarxlpf_adjusted = false;
27433 
27434 	return best_rccal_val - 0x80;
27435 }
27436 
27437 #define WAIT_FOR_SCOPE  4000
27438 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27439 				      struct nphy_txgains target_gain,
27440 				      u8 cal_type, bool debug)
27441 {
27442 	u16 orig_BBConfig;
27443 	u8 core_no, rx_core;
27444 	u8 best_rccal[2];
27445 	u16 gain_save[2];
27446 	u16 cal_gain[2];
27447 	struct nphy_iqcal_params cal_params[2];
27448 	u8 rxcore_state;
27449 	s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27450 	s8 txlpf_idac;
27451 	bool phyhang_avoid_state = false;
27452 	bool skip_rxiqcal = false;
27453 
27454 	orig_BBConfig = read_phy_reg(pi, 0x01);
27455 	mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27456 
27457 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
27458 
27459 	if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27460 		phyhang_avoid_state = pi->phyhang_avoid;
27461 		pi->phyhang_avoid = false;
27462 	}
27463 
27464 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27465 
27466 	for (core_no = 0; core_no <= 1; core_no++) {
27467 		wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27468 					      &cal_params[core_no]);
27469 		cal_gain[core_no] = cal_params[core_no].cal_gain;
27470 	}
27471 
27472 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27473 
27474 	rxcore_state = wlc_phy_rxcore_getstate_nphy(
27475 		(struct brcms_phy_pub *) pi);
27476 
27477 	for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27478 
27479 		skip_rxiqcal =
27480 			((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27481 
27482 		wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27483 
27484 		wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27485 
27486 		if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27487 
27488 			wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27489 
27490 			wlc_phy_tx_tone_nphy(pi,
27491 					     (CHSPEC_IS40(
27492 						      pi->radio_chanspec)) ?
27493 					     NPHY_RXCAL_TONEFREQ_40MHz :
27494 					     NPHY_RXCAL_TONEFREQ_20MHz,
27495 					     NPHY_RXCAL_TONEAMP, 0, cal_type,
27496 					     false);
27497 
27498 			if (debug)
27499 				mdelay(WAIT_FOR_SCOPE);
27500 
27501 			wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27502 			wlc_phy_stopplayback_nphy(pi);
27503 		}
27504 
27505 		if (((cal_type == 1) || (cal_type == 2))
27506 		    && NREV_LT(pi->pubpi.phy_rev, 7)) {
27507 
27508 			if (rx_core == PHY_CORE_1) {
27509 
27510 				if (rxcore_state == 1)
27511 					wlc_phy_rxcore_setstate_nphy(
27512 						(struct brcms_phy_pub *) pi, 3);
27513 
27514 				wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27515 							    1);
27516 
27517 				best_rccal[rx_core] =
27518 					wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27519 				pi->nphy_rccal_value = best_rccal[rx_core];
27520 
27521 				if (rxcore_state == 1)
27522 					wlc_phy_rxcore_setstate_nphy(
27523 						(struct brcms_phy_pub *) pi,
27524 						rxcore_state);
27525 			}
27526 		}
27527 
27528 		wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27529 
27530 		wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27531 		wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27532 	}
27533 
27534 	if ((cal_type == 1) || (cal_type == 2)) {
27535 
27536 		best_rccal[0] = best_rccal[1];
27537 		write_radio_reg(pi,
27538 				(RADIO_2056_RX_RXLPF_RCCAL_LPC |
27539 				 RADIO_2056_RX0), (best_rccal[0] | 0x80));
27540 
27541 		for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27542 			rxlpf_rccal_hpc =
27543 				(((int)best_rccal[rx_core] - 12) >> 1) + 10;
27544 			txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27545 
27546 			if (PHY_IPA(pi)) {
27547 				txlpf_rccal_lpc +=
27548 					(pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27549 				txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27550 					     0x0e : 0x13;
27551 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27552 						 TXLPF_IDAC_4, txlpf_idac);
27553 			}
27554 
27555 			rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27556 					      0);
27557 			txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27558 					      0);
27559 
27560 			write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27561 					     ((rx_core ==
27562 					       PHY_CORE_0) ? RADIO_2056_RX0 :
27563 					      RADIO_2056_RX1)),
27564 					(rxlpf_rccal_hpc | 0x80));
27565 
27566 			write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
27567 					     ((rx_core ==
27568 					       PHY_CORE_0) ? RADIO_2056_TX0 :
27569 					      RADIO_2056_TX1)),
27570 					(txlpf_rccal_lpc | 0x80));
27571 		}
27572 	}
27573 
27574 	write_phy_reg(pi, 0x01, orig_BBConfig);
27575 
27576 	wlc_phy_resetcca_nphy(pi);
27577 
27578 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27579 		wlc_phy_rfctrl_override_1tomany_nphy(
27580 			pi,
27581 			NPHY_REV7_RfctrlOverride_cmd_rxgain,
27582 			0, 0x3, 1);
27583 	else
27584 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27585 
27586 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27587 
27588 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27589 				 gain_save);
27590 
27591 	if (NREV_GE(pi->pubpi.phy_rev, 4))
27592 		pi->phyhang_avoid = phyhang_avoid_state;
27593 
27594 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
27595 
27596 	return 0;
27597 }
27598 
27599 static int
27600 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27601 			   struct nphy_txgains target_gain, bool debug)
27602 {
27603 	struct phy_iq_est est[PHY_CORE_MAX];
27604 	u8 core_num, rx_core, tx_core;
27605 	u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27606 	u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27607 	u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27608 	s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27609 	s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27610 	u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27611 	u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27612 	u16 num_samps;
27613 	u32 i_pwr, q_pwr, tot_pwr[3];
27614 	u8 gain_pass, use_hpf_num;
27615 	u16 mask, val1, val2;
27616 	u16 core_no;
27617 	u16 gain_save[2];
27618 	u16 cal_gain[2];
27619 	struct nphy_iqcal_params cal_params[2];
27620 	u8 phy_bw;
27621 	int bcmerror = 0;
27622 	bool first_playtone = true;
27623 
27624 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
27625 
27626 	if (NREV_LT(pi->pubpi.phy_rev, 2))
27627 		wlc_phy_reapply_txcal_coeffs_nphy(pi);
27628 
27629 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27630 
27631 	for (core_no = 0; core_no <= 1; core_no++) {
27632 		wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27633 					      &cal_params[core_no]);
27634 		cal_gain[core_no] = cal_params[core_no].cal_gain;
27635 	}
27636 
27637 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27638 
27639 	num_samps = 1024;
27640 	desired_log2_pwr = 13;
27641 
27642 	for (core_num = 0; core_num < 2; core_num++) {
27643 
27644 		rx_core = core_num;
27645 		tx_core = 1 - core_num;
27646 
27647 		orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27648 		orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27649 						0xa6 : 0xa7);
27650 		orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27651 		orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27652 						 0x91 : 0x92);
27653 		orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27654 						 0x91 : 0x92);
27655 
27656 		mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27657 		mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27658 
27659 		or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27660 			   ((0x1 << 1) | (0x1 << 2)));
27661 		or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27662 
27663 		if (((pi->nphy_rxcalparams) & 0xff000000))
27664 			write_phy_reg(pi,
27665 				      (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27666 				      (CHSPEC_IS5G(pi->radio_chanspec) ?
27667 					0x140 : 0x110));
27668 		else
27669 			write_phy_reg(pi,
27670 				      (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27671 				      (CHSPEC_IS5G(pi->radio_chanspec) ?
27672 				       0x180 : 0x120));
27673 
27674 		write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27675 			      (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27676 			       0x114));
27677 
27678 		mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
27679 		if (rx_core == PHY_CORE_0) {
27680 			val1 = RADIO_2055_COUPLE_RX_MASK;
27681 			val2 = RADIO_2055_COUPLE_TX_MASK;
27682 		} else {
27683 			val1 = RADIO_2055_COUPLE_TX_MASK;
27684 			val2 = RADIO_2055_COUPLE_RX_MASK;
27685 		}
27686 
27687 		if ((pi->nphy_rxcalparams & 0x10000)) {
27688 			mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
27689 				      val1);
27690 			mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
27691 				      val2);
27692 		}
27693 
27694 		for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27695 
27696 			if (debug)
27697 				mdelay(WAIT_FOR_SCOPE);
27698 
27699 			if (gain_pass < 3) {
27700 				curr_lna = lna_vals[gain_pass];
27701 				curr_hpf1 = hpf1_vals[gain_pass];
27702 				curr_hpf2 = hpf2_vals[gain_pass];
27703 			} else {
27704 
27705 				if (tot_pwr[1] > 10000) {
27706 					curr_lna = lna_vals[2];
27707 					curr_hpf1 = hpf1_vals[2];
27708 					curr_hpf2 = hpf2_vals[2];
27709 					use_hpf_num = 1;
27710 					curr_hpf = curr_hpf1;
27711 					actual_log2_pwr =
27712 						wlc_phy_nbits(tot_pwr[2]);
27713 				} else {
27714 					if (tot_pwr[0] > 10000) {
27715 						curr_lna = lna_vals[1];
27716 						curr_hpf1 = hpf1_vals[1];
27717 						curr_hpf2 = hpf2_vals[1];
27718 						use_hpf_num = 1;
27719 						curr_hpf = curr_hpf1;
27720 						actual_log2_pwr =
27721 							wlc_phy_nbits(
27722 								tot_pwr[1]);
27723 					} else {
27724 						curr_lna = lna_vals[0];
27725 						curr_hpf1 = hpf1_vals[0];
27726 						curr_hpf2 = hpf2_vals[0];
27727 						use_hpf_num = 2;
27728 						curr_hpf = curr_hpf2;
27729 						actual_log2_pwr =
27730 							wlc_phy_nbits(
27731 								tot_pwr[0]);
27732 					}
27733 				}
27734 
27735 				hpf_change = desired_log2_pwr - actual_log2_pwr;
27736 				curr_hpf += hpf_change;
27737 				curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27738 				if (use_hpf_num == 1)
27739 					curr_hpf1 = curr_hpf;
27740 				else
27741 					curr_hpf2 = curr_hpf;
27742 			}
27743 
27744 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27745 						     ((curr_hpf2 << 8) |
27746 						      (curr_hpf1 << 4) |
27747 						      (curr_lna << 2)), 0x3, 0);
27748 			wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27749 
27750 			wlc_phy_stopplayback_nphy(pi);
27751 
27752 			if (first_playtone) {
27753 				bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27754 						(u16) (pi->nphy_rxcalparams &
27755 						       0xffff), 0, 0, true);
27756 				first_playtone = false;
27757 			} else {
27758 				phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27759 					  40 : 20;
27760 				wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27761 							0, 0, 0, true);
27762 			}
27763 
27764 			if (bcmerror == 0) {
27765 				if (gain_pass < 3) {
27766 
27767 					wlc_phy_rx_iq_est_nphy(pi, est,
27768 							       num_samps, 32,
27769 							       0);
27770 					i_pwr =	(est[rx_core].i_pwr +
27771 						 num_samps / 2) / num_samps;
27772 					q_pwr =	(est[rx_core].q_pwr +
27773 						 num_samps / 2) / num_samps;
27774 					tot_pwr[gain_pass] = i_pwr + q_pwr;
27775 				} else {
27776 
27777 					wlc_phy_calc_rx_iq_comp_nphy(pi,
27778 								     (1 <<
27779 								      rx_core));
27780 				}
27781 
27782 				wlc_phy_stopplayback_nphy(pi);
27783 			}
27784 
27785 			if (bcmerror != 0)
27786 				break;
27787 		}
27788 
27789 		and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
27790 		and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
27791 
27792 		write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27793 			      0x92, orig_RfctrlIntcTx);
27794 		write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27795 			      0x92, orig_RfctrlIntcRx);
27796 		write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27797 		write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27798 			      0xa7, orig_AfectrlCore);
27799 		write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27800 
27801 		if (bcmerror != 0)
27802 			break;
27803 	}
27804 
27805 	wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27806 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27807 
27808 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27809 				 gain_save);
27810 
27811 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
27812 
27813 	return bcmerror;
27814 }
27815 
27816 int
27817 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27818 		      u8 cal_type, bool debug)
27819 {
27820 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27821 		cal_type = 0;
27822 
27823 	if (NREV_GE(pi->pubpi.phy_rev, 3))
27824 		return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27825 						  debug);
27826 	else
27827 		return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27828 }
27829 
27830 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27831 {
27832 	uint core;
27833 	u32 txgain;
27834 	u16 rad_gain, dac_gain, bbmult, m1m2;
27835 	u8 txpi[2], chan_freq_range;
27836 	s32 rfpwr_offset;
27837 
27838 	if (pi->phyhang_avoid)
27839 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
27840 
27841 	if (pi->sh->sromrev < 4) {
27842 		txpi[0] = txpi[1] = 72;
27843 	} else {
27844 
27845 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27846 		switch (chan_freq_range) {
27847 		case WL_CHAN_FREQ_RANGE_2G:
27848 		case WL_CHAN_FREQ_RANGE_5GL:
27849 		case WL_CHAN_FREQ_RANGE_5GM:
27850 		case WL_CHAN_FREQ_RANGE_5GH:
27851 			txpi[0] = 0;
27852 			txpi[1] = 0;
27853 			break;
27854 		default:
27855 			txpi[0] = txpi[1] = 91;
27856 			break;
27857 		}
27858 	}
27859 
27860 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27861 		txpi[0] = txpi[1] = 30;
27862 	else if (NREV_GE(pi->pubpi.phy_rev, 3))
27863 		txpi[0] = txpi[1] = 40;
27864 
27865 	if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27866 
27867 		if ((txpi[0] < 40) || (txpi[0] > 100) ||
27868 		    (txpi[1] < 40) || (txpi[1] > 100))
27869 			txpi[0] = txpi[1] = 91;
27870 	}
27871 
27872 	pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27873 	pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27874 	pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27875 	pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27876 
27877 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27878 		uint phyrev = pi->pubpi.phy_rev;
27879 
27880 		if (NREV_GE(phyrev, 3)) {
27881 			if (PHY_IPA(pi)) {
27882 				u32 *tx_gaintbl =
27883 					wlc_phy_get_ipa_gaintbl_nphy(pi);
27884 				txgain = tx_gaintbl[txpi[core]];
27885 			} else {
27886 				if (CHSPEC_IS5G(pi->radio_chanspec)) {
27887 					if (NREV_IS(phyrev, 3)) {
27888 						txgain =
27889 						      nphy_tpc_5GHz_txgain_rev3
27890 								   [txpi[core]];
27891 					} else if (NREV_IS(phyrev, 4)) {
27892 						txgain = (
27893 						  pi->srom_fem5g.extpagain ==
27894 						  3) ?
27895 						  nphy_tpc_5GHz_txgain_HiPwrEPA
27896 						 [txpi[core]] :
27897 						 nphy_tpc_5GHz_txgain_rev4
27898 						 [txpi[core]];
27899 					} else {
27900 						txgain =
27901 						      nphy_tpc_5GHz_txgain_rev5
27902 								   [txpi[core]];
27903 					}
27904 				} else {
27905 					if (NREV_GE(phyrev, 5) &&
27906 					    (pi->srom_fem2g.extpagain == 3)) {
27907 						txgain =
27908 							nphy_tpc_txgain_HiPwrEPA
27909 							[txpi[core]];
27910 					} else {
27911 						txgain = nphy_tpc_txgain_rev3
27912 							 [txpi[core]];
27913 					}
27914 				}
27915 			}
27916 		} else {
27917 			txgain = nphy_tpc_txgain[txpi[core]];
27918 		}
27919 
27920 		if (NREV_GE(phyrev, 3))
27921 			rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27922 		else
27923 			rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27924 
27925 		if (NREV_GE(phyrev, 7))
27926 			dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27927 		else
27928 			dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27929 
27930 		bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27931 
27932 		if (NREV_GE(phyrev, 3))
27933 			mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27934 					 0xa5), (0x1 << 8), (0x1 << 8));
27935 		else
27936 			mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27937 
27938 		write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27939 
27940 		wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27941 					 &rad_gain);
27942 
27943 		wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27944 		m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27945 		m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27946 		wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27947 
27948 		if (PHY_IPA(pi)) {
27949 			wlc_phy_table_read_nphy(pi,
27950 						(core ==
27951 						 PHY_CORE_0 ?
27952 						 NPHY_TBL_ID_CORE1TXPWRCTL :
27953 						 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27954 						576 + txpi[core], 32,
27955 						&rfpwr_offset);
27956 
27957 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27958 				    0x29b, (0x1ff << 4),
27959 				    ((s16) rfpwr_offset) << 4);
27960 
27961 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27962 				    0x29b, (0x1 << 2), (1) << 2);
27963 
27964 		}
27965 	}
27966 
27967 	and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
27968 
27969 	if (pi->phyhang_avoid)
27970 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
27971 }
27972 
27973 static void
27974 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
27975 				u8 tmp_max_pwr, u8 rate_start,
27976 				u8 rate_end)
27977 {
27978 	u8 rate;
27979 	u8 word_num, nibble_num;
27980 	u8 tmp_nibble;
27981 
27982 	for (rate = rate_start; rate <= rate_end; rate++) {
27983 		word_num = (rate - rate_start) >> 2;
27984 		nibble_num = (rate - rate_start) & 0x3;
27985 		tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27986 
27987 		srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27988 	}
27989 }
27990 
27991 static void
27992 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27993 			    u8 rate_start, u8 rate_end)
27994 {
27995 	u8 rate;
27996 
27997 	for (rate = rate_start; rate <= rate_end; rate++)
27998 		srom_max[rate] -= 2 * pwr_offset;
27999 }
28000 
28001 void
28002 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
28003 				u8 rate_mcs_end, u8 rate_ofdm_start)
28004 {
28005 	u8 rate1, rate2;
28006 
28007 	rate2 = rate_ofdm_start;
28008 	for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
28009 		power[rate1] = power[rate2];
28010 		rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
28011 	}
28012 	power[rate_mcs_end] = power[rate_mcs_end - 1];
28013 }
28014 
28015 void
28016 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
28017 				u8 rate_ofdm_end, u8 rate_mcs_start)
28018 {
28019 	u8 rate1, rate2;
28020 
28021 	for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
28022 	     rate1 <= rate_ofdm_end; rate1++, rate2++) {
28023 		power[rate1] = power[rate2];
28024 		if (rate1 == rate_ofdm_start)
28025 			power[++rate1] = power[rate2];
28026 	}
28027 }
28028 
28029 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
28030 {
28031 	uint rate1, rate2, band_num;
28032 	u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
28033 	u8 tmp_max_pwr = 0;
28034 	u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
28035 	u8 *tx_srom_max_rate = NULL;
28036 
28037 	for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
28038 	     band_num++) {
28039 		switch (band_num) {
28040 		case 0:
28041 
28042 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
28043 					  pi->nphy_pwrctrl_info[1].max_pwr_2g);
28044 
28045 			pwr_offsets1[0] = pi->cck2gpo;
28046 			wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
28047 							pwr_offsets1,
28048 							tmp_max_pwr,
28049 							TXP_FIRST_CCK,
28050 							TXP_LAST_CCK);
28051 
28052 			pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
28053 			pwr_offsets1[1] =
28054 				(u16) (pi->ofdm2gpo >> 16) & 0xffff;
28055 
28056 			pwr_offsets2 = pi->mcs2gpo;
28057 
28058 			tmp_cddpo = pi->cdd2gpo;
28059 			tmp_stbcpo = pi->stbc2gpo;
28060 			tmp_bw40po = pi->bw402gpo;
28061 
28062 			tx_srom_max_rate = pi->tx_srom_max_rate_2g;
28063 			break;
28064 		case 1:
28065 
28066 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
28067 					  pi->nphy_pwrctrl_info[1].max_pwr_5gm);
28068 
28069 			pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
28070 			pwr_offsets1[1] =
28071 				(u16) (pi->ofdm5gpo >> 16) & 0xffff;
28072 
28073 			pwr_offsets2 = pi->mcs5gpo;
28074 
28075 			tmp_cddpo = pi->cdd5gpo;
28076 			tmp_stbcpo = pi->stbc5gpo;
28077 			tmp_bw40po = pi->bw405gpo;
28078 
28079 			tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
28080 			break;
28081 		case 2:
28082 
28083 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28084 					  pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28085 
28086 			pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28087 			pwr_offsets1[1] =
28088 				(u16) (pi->ofdm5glpo >> 16) & 0xffff;
28089 
28090 			pwr_offsets2 = pi->mcs5glpo;
28091 
28092 			tmp_cddpo = pi->cdd5glpo;
28093 			tmp_stbcpo = pi->stbc5glpo;
28094 			tmp_bw40po = pi->bw405glpo;
28095 
28096 			tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28097 			break;
28098 		case 3:
28099 
28100 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28101 					  pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28102 
28103 			pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28104 			pwr_offsets1[1] =
28105 				(u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28106 
28107 			pwr_offsets2 = pi->mcs5ghpo;
28108 
28109 			tmp_cddpo = pi->cdd5ghpo;
28110 			tmp_stbcpo = pi->stbc5ghpo;
28111 			tmp_bw40po = pi->bw405ghpo;
28112 
28113 			tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28114 			break;
28115 		}
28116 
28117 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28118 						tmp_max_pwr, TXP_FIRST_OFDM,
28119 						TXP_LAST_OFDM);
28120 
28121 		wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28122 						TXP_FIRST_MCS_20_SISO,
28123 						TXP_LAST_MCS_20_SISO,
28124 						TXP_FIRST_OFDM);
28125 
28126 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28127 						tmp_max_pwr,
28128 						TXP_FIRST_MCS_20_CDD,
28129 						TXP_LAST_MCS_20_CDD);
28130 
28131 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28132 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28133 						    TXP_FIRST_MCS_20_CDD,
28134 						    TXP_LAST_MCS_20_CDD);
28135 
28136 		wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28137 						TXP_FIRST_OFDM_20_CDD,
28138 						TXP_LAST_OFDM_20_CDD,
28139 						TXP_FIRST_MCS_20_CDD);
28140 
28141 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28142 						tmp_max_pwr,
28143 						TXP_FIRST_MCS_20_STBC,
28144 						TXP_LAST_MCS_20_STBC);
28145 
28146 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28147 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28148 						    tmp_stbcpo,
28149 						    TXP_FIRST_MCS_20_STBC,
28150 						    TXP_LAST_MCS_20_STBC);
28151 
28152 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28153 						&pwr_offsets2[2], tmp_max_pwr,
28154 						TXP_FIRST_MCS_20_SDM,
28155 						TXP_LAST_MCS_20_SDM);
28156 
28157 		if (NPHY_IS_SROM_REINTERPRET) {
28158 
28159 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28160 							&pwr_offsets2[4],
28161 							tmp_max_pwr,
28162 							TXP_FIRST_MCS_40_SISO,
28163 							TXP_LAST_MCS_40_SISO);
28164 
28165 			wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28166 							TXP_FIRST_OFDM_40_SISO,
28167 							TXP_LAST_OFDM_40_SISO,
28168 							TXP_FIRST_MCS_40_SISO);
28169 
28170 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28171 							&pwr_offsets2[4],
28172 							tmp_max_pwr,
28173 							TXP_FIRST_MCS_40_CDD,
28174 							TXP_LAST_MCS_40_CDD);
28175 
28176 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28177 						    TXP_FIRST_MCS_40_CDD,
28178 						    TXP_LAST_MCS_40_CDD);
28179 
28180 			wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28181 							TXP_FIRST_OFDM_40_CDD,
28182 							TXP_LAST_OFDM_40_CDD,
28183 							TXP_FIRST_MCS_40_CDD);
28184 
28185 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28186 							&pwr_offsets2[4],
28187 							tmp_max_pwr,
28188 							TXP_FIRST_MCS_40_STBC,
28189 							TXP_LAST_MCS_40_STBC);
28190 
28191 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28192 						    tmp_stbcpo,
28193 						    TXP_FIRST_MCS_40_STBC,
28194 						    TXP_LAST_MCS_40_STBC);
28195 
28196 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28197 							&pwr_offsets2[6],
28198 							tmp_max_pwr,
28199 							TXP_FIRST_MCS_40_SDM,
28200 							TXP_LAST_MCS_40_SDM);
28201 		} else {
28202 
28203 			for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28204 				     TXP_FIRST_OFDM;
28205 			     rate1 <= TXP_LAST_MCS_40_SDM;
28206 			     rate1++, rate2++)
28207 				tx_srom_max_rate[rate1] =
28208 					tx_srom_max_rate[rate2];
28209 		}
28210 
28211 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28212 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28213 						    tmp_bw40po,
28214 						    TXP_FIRST_OFDM_40_SISO,
28215 						    TXP_LAST_MCS_40_SDM);
28216 
28217 		tx_srom_max_rate[TXP_MCS_32] =
28218 			tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28219 	}
28220 
28221 	return;
28222 }
28223 
28224 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
28225 {
28226 	u8 tx_pwr_ctrl_state;
28227 	wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28228 	wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28229 
28230 	tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28231 
28232 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28233 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28234 		(void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
28235 		udelay(1);
28236 	}
28237 
28238 	wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28239 
28240 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28241 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28242 }
28243 
28244 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28245 {
28246 	return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28247 					    (0x1 << 14) | (0x1 << 13));
28248 }
28249 
28250 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28251 {
28252 	u16 tmp;
28253 	u16 pwr_idx[2];
28254 
28255 	if (wlc_phy_txpwr_ison_nphy(pi)) {
28256 		pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28257 		pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28258 
28259 		tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28260 	} else {
28261 		tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28262 			<< 8) |
28263 			(pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28264 	}
28265 
28266 	return tmp;
28267 }
28268 
28269 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28270 {
28271 	if (PHY_IPA(pi)
28272 	    && (pi->nphy_force_papd_cal
28273 		|| (wlc_phy_txpwr_ison_nphy(pi)
28274 		    &&
28275 		    (((u32)
28276 		      abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28277 			  pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28278 		     || ((u32)
28279 			 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28280 			     pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28281 		wlc_phy_a4(pi, true);
28282 }
28283 
28284 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28285 {
28286 	u16 mask = 0, val = 0, ishw = 0;
28287 	u8 ctr;
28288 	uint core;
28289 	u32 tbl_offset;
28290 	u32 tbl_len;
28291 	u16 regval[84];
28292 
28293 	if (pi->phyhang_avoid)
28294 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
28295 
28296 	switch (ctrl_type) {
28297 	case PHY_TPC_HW_OFF:
28298 	case PHY_TPC_HW_ON:
28299 		pi->nphy_txpwrctrl = ctrl_type;
28300 		break;
28301 	default:
28302 		break;
28303 	}
28304 
28305 	if (ctrl_type == PHY_TPC_HW_OFF) {
28306 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28307 
28308 			if (wlc_phy_txpwr_ison_nphy(pi)) {
28309 				for (core = 0; core < pi->pubpi.phy_corenum;
28310 				     core++)
28311 					pi->nphy_txpwr_idx[core] =
28312 						wlc_phy_txpwr_idx_cur_get_nphy(
28313 							pi,
28314 							(u8) core);
28315 			}
28316 
28317 		}
28318 
28319 		tbl_len = 84;
28320 		tbl_offset = 64;
28321 		for (ctr = 0; ctr < tbl_len; ctr++)
28322 			regval[ctr] = 0;
28323 		wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28324 					 regval);
28325 		wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28326 					 regval);
28327 
28328 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28329 			and_phy_reg(pi, 0x1e7,
28330 				    (u16) (~((0x1 << 15) |
28331 					     (0x1 << 14) | (0x1 << 13))));
28332 		else
28333 			and_phy_reg(pi, 0x1e7,
28334 				    (u16) (~((0x1 << 14) | (0x1 << 13))));
28335 
28336 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28337 			or_phy_reg(pi, 0x8f, (0x1 << 8));
28338 			or_phy_reg(pi, 0xa5, (0x1 << 8));
28339 		} else {
28340 			or_phy_reg(pi, 0xa5, (0x1 << 14));
28341 		}
28342 
28343 		if (NREV_IS(pi->pubpi.phy_rev, 2))
28344 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28345 		else if (NREV_LT(pi->pubpi.phy_rev, 2))
28346 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28347 
28348 		if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28349 		    pi->bw == WL_CHANSPEC_BW_40)
28350 			wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28351 				       MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28352 
28353 	} else {
28354 
28355 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28356 					 8, pi->adj_pwr_tbl_nphy);
28357 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28358 					 8, pi->adj_pwr_tbl_nphy);
28359 
28360 		ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28361 		mask = (0x1 << 14) | (0x1 << 13);
28362 		val = (ishw << 14) | (ishw << 13);
28363 
28364 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28365 			mask |= (0x1 << 15);
28366 			val |= (ishw << 15);
28367 		}
28368 
28369 		mod_phy_reg(pi, 0x1e7, mask, val);
28370 
28371 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
28372 			if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28373 				mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28374 				mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28375 			} else {
28376 				mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28377 				if (NREV_GT(pi->pubpi.phy_rev, 1))
28378 					mod_phy_reg(pi, 0x222,
28379 						    (0xff << 0), 0x64);
28380 			}
28381 		}
28382 
28383 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28384 			if ((pi->nphy_txpwr_idx[0] != 128)
28385 			    && (pi->nphy_txpwr_idx[1] != 128))
28386 				wlc_phy_txpwr_idx_cur_set_nphy(pi,
28387 							       pi->
28388 							       nphy_txpwr_idx
28389 							       [0],
28390 							       pi->
28391 							       nphy_txpwr_idx
28392 							       [1]);
28393 		}
28394 
28395 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28396 			and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28397 			and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28398 		} else {
28399 			and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28400 		}
28401 
28402 		if (NREV_IS(pi->pubpi.phy_rev, 2))
28403 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28404 		else if (NREV_LT(pi->pubpi.phy_rev, 2))
28405 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28406 
28407 		if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28408 		    pi->bw == WL_CHANSPEC_BW_40)
28409 			wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28410 				       0x0, BRCM_BAND_ALL);
28411 
28412 		if (PHY_IPA(pi)) {
28413 			mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28414 				    0x29b, (0x1 << 2), (0) << 2);
28415 
28416 			mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28417 				    0x29b, (0x1 << 2), (0) << 2);
28418 
28419 		}
28420 
28421 	}
28422 
28423 	if (pi->phyhang_avoid)
28424 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
28425 }
28426 
28427 void
28428 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28429 			 bool restore_cals)
28430 {
28431 	u8 core, txpwrctl_tbl;
28432 	u16 tx_ind0, iq_ind0, lo_ind0;
28433 	u16 m1m2;
28434 	u32 txgain;
28435 	u16 rad_gain, dac_gain;
28436 	u8 bbmult;
28437 	u32 iqcomp;
28438 	u16 iqcomp_a, iqcomp_b;
28439 	u32 locomp;
28440 	u16 tmpval;
28441 	u8 tx_pwr_ctrl_state;
28442 	s32 rfpwr_offset;
28443 	u16 regval[2];
28444 
28445 	if (pi->phyhang_avoid)
28446 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
28447 
28448 	tx_ind0 = 192;
28449 	iq_ind0 = 320;
28450 	lo_ind0 = 448;
28451 
28452 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28453 
28454 		if ((core_mask & (1 << core)) == 0)
28455 			continue;
28456 
28457 		txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28458 
28459 		if (txpwrindex < 0) {
28460 			if (pi->nphy_txpwrindex[core].index < 0)
28461 				continue;
28462 
28463 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28464 				mod_phy_reg(pi, 0x8f,
28465 					    (0x1 << 8),
28466 					    pi->nphy_txpwrindex[core].
28467 					    AfectrlOverride);
28468 				mod_phy_reg(pi, 0xa5, (0x1 << 8),
28469 					    pi->nphy_txpwrindex[core].
28470 					    AfectrlOverride);
28471 			} else {
28472 				mod_phy_reg(pi, 0xa5,
28473 					    (0x1 << 14),
28474 					    pi->nphy_txpwrindex[core].
28475 					    AfectrlOverride);
28476 			}
28477 
28478 			write_phy_reg(pi, (core == PHY_CORE_0) ?
28479 				      0xaa : 0xab,
28480 				      pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28481 
28482 			wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28483 						 &pi->nphy_txpwrindex[core].
28484 						 rad_gain);
28485 
28486 			wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28487 			m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28488 			m1m2 |= ((core == PHY_CORE_0) ?
28489 				 (pi->nphy_txpwrindex[core].bbmult << 8) :
28490 				 (pi->nphy_txpwrindex[core].bbmult << 0));
28491 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28492 
28493 			if (restore_cals) {
28494 				wlc_phy_table_write_nphy(
28495 					pi, 15, 2, (80 + 2 * core), 16,
28496 					&pi->nphy_txpwrindex[core].iqcomp_a);
28497 				wlc_phy_table_write_nphy(
28498 					pi, 15, 1, (85 + core), 16,
28499 					&pi->nphy_txpwrindex[core].locomp);
28500 				wlc_phy_table_write_nphy(
28501 					pi, 15, 1, (93 + core), 16,
28502 					&pi->nphy_txpwrindex[core].locomp);
28503 			}
28504 
28505 			wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28506 
28507 			pi->nphy_txpwrindex[core].index_internal =
28508 				pi->nphy_txpwrindex[core].index_internal_save;
28509 		} else {
28510 
28511 			if (pi->nphy_txpwrindex[core].index < 0) {
28512 
28513 				if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28514 					mod_phy_reg(pi, 0x8f,
28515 						    (0x1 << 8),
28516 						    pi->nphy_txpwrindex[core].
28517 						    AfectrlOverride);
28518 					mod_phy_reg(pi, 0xa5, (0x1 << 8),
28519 						    pi->nphy_txpwrindex[core].
28520 						    AfectrlOverride);
28521 				} else {
28522 					pi->nphy_txpwrindex[core].
28523 					AfectrlOverride =
28524 						read_phy_reg(pi, 0xa5);
28525 				}
28526 
28527 				pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28528 					read_phy_reg(pi, (core == PHY_CORE_0) ?
28529 							 0xaa : 0xab);
28530 
28531 				wlc_phy_table_read_nphy(pi, 7, 1,
28532 							(0x110 + core), 16,
28533 							&pi->
28534 							nphy_txpwrindex[core].
28535 							rad_gain);
28536 
28537 				wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28538 							&tmpval);
28539 				tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28540 				tmpval &= 0xff;
28541 				pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28542 
28543 				wlc_phy_table_read_nphy(pi, 15, 2,
28544 							(80 + 2 * core), 16,
28545 							&pi->
28546 							nphy_txpwrindex[core].
28547 							iqcomp_a);
28548 
28549 				wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28550 							16,
28551 							&pi->
28552 							nphy_txpwrindex[core].
28553 							locomp);
28554 
28555 				pi->nphy_txpwrindex[core].index_internal_save =
28556 					pi->nphy_txpwrindex[core].
28557 					index_internal;
28558 			}
28559 
28560 			tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28561 			wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28562 
28563 			if (NREV_IS(pi->pubpi.phy_rev, 1))
28564 				wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28565 
28566 			wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28567 						(tx_ind0 + txpwrindex), 32,
28568 						&txgain);
28569 
28570 			if (NREV_GE(pi->pubpi.phy_rev, 3))
28571 				rad_gain = (txgain >> 16) &
28572 					   ((1 << (32 - 16 + 1)) - 1);
28573 			else
28574 				rad_gain = (txgain >> 16) &
28575 					   ((1 << (28 - 16 + 1)) - 1);
28576 
28577 			dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28578 			bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28579 
28580 			if (NREV_GE(pi->pubpi.phy_rev, 3))
28581 				mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28582 						 0xa5), (0x1 << 8), (0x1 << 8));
28583 			else
28584 				mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28585 
28586 			write_phy_reg(pi, (core == PHY_CORE_0) ?
28587 				      0xaa : 0xab, dac_gain);
28588 
28589 			wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28590 						 &rad_gain);
28591 
28592 			wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28593 			m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28594 			m1m2 |= ((core == PHY_CORE_0) ?
28595 				(bbmult << 8) : (bbmult << 0));
28596 
28597 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28598 
28599 			wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28600 						(iq_ind0 + txpwrindex), 32,
28601 						&iqcomp);
28602 			iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28603 			iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28604 
28605 			if (restore_cals) {
28606 				regval[0] = (u16) iqcomp_a;
28607 				regval[1] = (u16) iqcomp_b;
28608 				wlc_phy_table_write_nphy(pi, 15, 2,
28609 							 (80 + 2 * core), 16,
28610 							 regval);
28611 			}
28612 
28613 			wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28614 						(lo_ind0 + txpwrindex), 32,
28615 						&locomp);
28616 			if (restore_cals)
28617 				wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28618 							 16, &locomp);
28619 
28620 			if (NREV_IS(pi->pubpi.phy_rev, 1))
28621 				wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28622 
28623 			if (PHY_IPA(pi)) {
28624 				wlc_phy_table_read_nphy(pi,
28625 						(core == PHY_CORE_0 ?
28626 						 NPHY_TBL_ID_CORE1TXPWRCTL :
28627 						 NPHY_TBL_ID_CORE2TXPWRCTL),
28628 						1, 576 + txpwrindex, 32,
28629 						&rfpwr_offset);
28630 
28631 				mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28632 					    0x29b, (0x1ff << 4),
28633 					    ((s16) rfpwr_offset) << 4);
28634 
28635 				mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28636 					    0x29b, (0x1 << 2), (1) << 2);
28637 
28638 			}
28639 
28640 			wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28641 		}
28642 
28643 		pi->nphy_txpwrindex[core].index = txpwrindex;
28644 	}
28645 
28646 	if (pi->phyhang_avoid)
28647 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
28648 }
28649 
28650 void
28651 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28652 				   u8 txp_rate_idx)
28653 {
28654 	u8 chan_freq_range;
28655 
28656 	chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28657 	switch (chan_freq_range) {
28658 	case WL_CHAN_FREQ_RANGE_2G:
28659 		*max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28660 		break;
28661 	case WL_CHAN_FREQ_RANGE_5GM:
28662 		*max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28663 		break;
28664 	case WL_CHAN_FREQ_RANGE_5GL:
28665 		*max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28666 		break;
28667 	case WL_CHAN_FREQ_RANGE_5GH:
28668 		*max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28669 		break;
28670 	default:
28671 		*max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28672 		break;
28673 	}
28674 
28675 	return;
28676 }
28677 
28678 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28679 {
28680 	u16 clip_off[] = { 0xffff, 0xffff };
28681 
28682 	if (enable) {
28683 		if (pi->nphy_deaf_count == 0) {
28684 			pi->classifier_state =
28685 				wlc_phy_classifier_nphy(pi, 0, 0);
28686 			wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28687 			wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28688 			wlc_phy_clip_det_nphy(pi, 1, clip_off);
28689 		}
28690 
28691 		pi->nphy_deaf_count++;
28692 
28693 		wlc_phy_resetcca_nphy(pi);
28694 
28695 	} else {
28696 		pi->nphy_deaf_count--;
28697 
28698 		if (pi->nphy_deaf_count == 0) {
28699 			wlc_phy_classifier_nphy(pi, (0x7 << 0),
28700 						pi->classifier_state);
28701 			wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28702 		}
28703 	}
28704 }
28705 
28706 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28707 {
28708 	wlapi_suspend_mac_and_wait(pi->sh->physhim);
28709 
28710 	if (mode) {
28711 		if (pi->nphy_deaf_count == 0)
28712 			wlc_phy_stay_in_carriersearch_nphy(pi, true);
28713 	} else if (pi->nphy_deaf_count > 0) {
28714 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
28715 	}
28716 
28717 	wlapi_enable_mac(pi->sh->physhim);
28718 }
28719