xref: /linux/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c (revision 307797159ac25fe5a2048bf5c6a5718298edca57)
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 				       ARRAY_SIZE(rfseq_updategainu_events));
16053 
16054 		mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16055 
16056 		if (CHSPEC_IS2G(pi->radio_chanspec))
16057 			mod_phy_reg(pi,
16058 				    (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16059 				    0x7f, 0x4);
16060 	}
16061 }
16062 
16063 static void wlc_phy_workarounds_nphy_rev7(struct brcms_phy *pi)
16064 {
16065 	static const u8 rfseq_rx2tx_events_rev3_ipa[] = {
16066 		NPHY_REV3_RFSEQ_CMD_NOP,
16067 		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16068 		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16069 		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16070 		NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16071 		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16072 		NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16073 		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16074 		NPHY_REV3_RFSEQ_CMD_END
16075 	};
16076 	static const u8 rfseq_rx2tx_dlys_rev3_ipa[] =
16077 		{ 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16078 	static const u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16079 	u32 leg_data_weights;
16080 	u8 chan_freq_range = 0;
16081 	static const u16 dac_control = 0x0002;
16082 	u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16083 	u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16084 	u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16085 	s32 min_nvar_val = 0x18d;
16086 	s32 min_nvar_offset_6mbps = 20;
16087 	u8 pdetrange;
16088 	u16 afectrl_adc_ctrl1_rev7 = 0x20;
16089 	u16 afectrl_adc_ctrl2_rev7 = 0x0;
16090 	u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16091 	u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16092 	u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16093 	static const u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16094 	static const u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16095 	static const u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16096 	u16 ipalvlshift_3p3_war_en = 0;
16097 	u16 rccal_bcap_val, rccal_scap_val;
16098 	u16 rccal_tx20_11b_bcap = 0;
16099 	u16 rccal_tx20_11b_scap = 0;
16100 	u16 rccal_tx20_11n_bcap = 0;
16101 	u16 rccal_tx20_11n_scap = 0;
16102 	u16 rccal_tx40_11n_bcap = 0;
16103 	u16 rccal_tx40_11n_scap = 0;
16104 	u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16105 	u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16106 	u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16107 	u16 tx_lpf_bw_ofdm_20mhz = 0;
16108 	u16 tx_lpf_bw_ofdm_40mhz = 0;
16109 	u16 tx_lpf_bw_11b = 0;
16110 	u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16111 	u16 txgm_idac_bleed = 0;
16112 	bool rccal_ovrd = false;
16113 	u16 freq;
16114 	int coreNum;
16115 
16116 
16117 	if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16118 		mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16119 
16120 		mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16121 		mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16122 		mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16123 		mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16124 		mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16125 		mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16126 		mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16127 		mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16128 		mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16129 		mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16130 		mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16131 		mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16132 		mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16133 		mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16134 		mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16135 		mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16136 	}
16137 
16138 	if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16139 		write_phy_reg(pi, 0x23f, 0x1b0);
16140 		write_phy_reg(pi, 0x240, 0x1b0);
16141 	}
16142 
16143 	if (NREV_GE(pi->pubpi.phy_rev, 8))
16144 		mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16145 
16146 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16147 				 &dac_control);
16148 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16149 				 &dac_control);
16150 
16151 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16152 				1, 0, 32, &leg_data_weights);
16153 	leg_data_weights = leg_data_weights & 0xffffff;
16154 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16155 				 1, 0, 32, &leg_data_weights);
16156 
16157 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16158 				 2, 0x15e, 16, rfseq_rx2tx_dacbufpu_rev7);
16159 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16160 				 rfseq_rx2tx_dacbufpu_rev7);
16161 
16162 	if (PHY_IPA(pi))
16163 		wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16164 				       rfseq_rx2tx_events_rev3_ipa,
16165 				       rfseq_rx2tx_dlys_rev3_ipa,
16166 				       ARRAY_SIZE
16167 				       (rfseq_rx2tx_events_rev3_ipa));
16168 
16169 	mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16170 	mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16171 
16172 	tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16173 	tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16174 	tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16175 
16176 	if (PHY_IPA(pi)) {
16177 
16178 		if (((pi->pubpi.radiorev == 5)
16179 		     && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16180 		    || (pi->pubpi.radiorev == 7)
16181 		    || (pi->pubpi.radiorev == 8)) {
16182 
16183 			rccal_bcap_val =
16184 			    read_radio_reg(pi, RADIO_2057_RCCAL_BCAP_VAL);
16185 			rccal_scap_val =
16186 			    read_radio_reg(pi, RADIO_2057_RCCAL_SCAP_VAL);
16187 
16188 			rccal_tx20_11b_bcap = rccal_bcap_val;
16189 			rccal_tx20_11b_scap = rccal_scap_val;
16190 
16191 			if ((pi->pubpi.radiorev == 5) &&
16192 			    (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16193 
16194 				rccal_tx20_11n_bcap = rccal_bcap_val;
16195 				rccal_tx20_11n_scap = rccal_scap_val;
16196 				rccal_tx40_11n_bcap = 0xc;
16197 				rccal_tx40_11n_scap = 0xc;
16198 
16199 				rccal_ovrd = true;
16200 
16201 			} else if ((pi->pubpi.radiorev == 7)
16202 				   || (pi->pubpi.radiorev == 8)) {
16203 
16204 				tx_lpf_bw_ofdm_20mhz = 4;
16205 				tx_lpf_bw_11b = 1;
16206 
16207 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
16208 					rccal_tx20_11n_bcap = 0xc;
16209 					rccal_tx20_11n_scap = 0xc;
16210 					rccal_tx40_11n_bcap = 0xa;
16211 					rccal_tx40_11n_scap = 0xa;
16212 				} else {
16213 					rccal_tx20_11n_bcap = 0x14;
16214 					rccal_tx20_11n_scap = 0x14;
16215 					rccal_tx40_11n_bcap = 0xf;
16216 					rccal_tx40_11n_scap = 0xf;
16217 				}
16218 
16219 				rccal_ovrd = true;
16220 			}
16221 		}
16222 
16223 	} else {
16224 
16225 		if (pi->pubpi.radiorev == 5) {
16226 
16227 			tx_lpf_bw_ofdm_20mhz = 1;
16228 			tx_lpf_bw_ofdm_40mhz = 3;
16229 
16230 			rccal_bcap_val =
16231 			    read_radio_reg(pi, RADIO_2057_RCCAL_BCAP_VAL);
16232 			rccal_scap_val =
16233 			    read_radio_reg(pi, RADIO_2057_RCCAL_SCAP_VAL);
16234 
16235 			rccal_tx20_11b_bcap = rccal_bcap_val;
16236 			rccal_tx20_11b_scap = rccal_scap_val;
16237 
16238 			rccal_tx20_11n_bcap = 0x13;
16239 			rccal_tx20_11n_scap = 0x11;
16240 			rccal_tx40_11n_bcap = 0x13;
16241 			rccal_tx40_11n_scap = 0x11;
16242 
16243 			rccal_ovrd = true;
16244 		}
16245 	}
16246 
16247 	if (rccal_ovrd) {
16248 
16249 		rx2tx_lpf_rc_lut_tx20_11b =
16250 		    (rccal_tx20_11b_bcap << 8) |
16251 		    (rccal_tx20_11b_scap << 3) | tx_lpf_bw_11b;
16252 		rx2tx_lpf_rc_lut_tx20_11n =
16253 		    (rccal_tx20_11n_bcap << 8) |
16254 		    (rccal_tx20_11n_scap << 3) | tx_lpf_bw_ofdm_20mhz;
16255 		rx2tx_lpf_rc_lut_tx40_11n =
16256 		    (rccal_tx40_11n_bcap << 8) |
16257 		    (rccal_tx40_11n_scap << 3) | tx_lpf_bw_ofdm_40mhz;
16258 
16259 		for (coreNum = 0; coreNum <= 1; coreNum++) {
16260 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16261 						 0x152 + coreNum * 0x10, 16,
16262 						 &rx2tx_lpf_rc_lut_tx20_11b);
16263 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16264 						 0x153 + coreNum * 0x10, 16,
16265 						 &rx2tx_lpf_rc_lut_tx20_11n);
16266 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16267 						 0x154 + coreNum * 0x10, 16,
16268 						 &rx2tx_lpf_rc_lut_tx20_11n);
16269 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16270 						 0x155 + coreNum * 0x10, 16,
16271 						 &rx2tx_lpf_rc_lut_tx40_11n);
16272 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16273 						 0x156 + coreNum * 0x10, 16,
16274 						 &rx2tx_lpf_rc_lut_tx40_11n);
16275 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16276 						 0x157 + coreNum * 0x10, 16,
16277 						 &rx2tx_lpf_rc_lut_tx40_11n);
16278 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16279 						 0x158 + coreNum * 0x10, 16,
16280 						 &rx2tx_lpf_rc_lut_tx40_11n);
16281 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
16282 						 0x159 + coreNum * 0x10, 16,
16283 						 &rx2tx_lpf_rc_lut_tx40_11n);
16284 		}
16285 
16286 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 1, 0x3, 0,
16287 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
16288 	}
16289 
16290 	write_phy_reg(pi, 0x32f, 0x3);
16291 
16292 	if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16293 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 0,
16294 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
16295 
16296 	if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16297 	    (pi->pubpi.radiorev == 6)) {
16298 		if ((pi->sh->sromrev >= 8)
16299 		    && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16300 			ipalvlshift_3p3_war_en = 1;
16301 
16302 		if (ipalvlshift_3p3_war_en) {
16303 			write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG, 0x5);
16304 			write_radio_reg(pi, RADIO_2057_GPAIO_SEL1, 0x30);
16305 			write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
16306 			or_radio_reg(pi, RADIO_2057_RXTXBIAS_CONFIG_CORE0, 0x1);
16307 			or_radio_reg(pi, RADIO_2057_RXTXBIAS_CONFIG_CORE1, 0x1);
16308 
16309 			ipa2g_mainbias = 0x1f;
16310 
16311 			ipa2g_casconv = 0x6f;
16312 
16313 			ipa2g_biasfilt = 0xaa;
16314 		} else {
16315 
16316 			ipa2g_mainbias = 0x2b;
16317 
16318 			ipa2g_casconv = 0x7f;
16319 
16320 			ipa2g_biasfilt = 0xee;
16321 		}
16322 
16323 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
16324 			for (coreNum = 0; coreNum <= 1; coreNum++) {
16325 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16326 						 coreNum, IPA2G_IMAIN,
16327 						 ipa2g_mainbias);
16328 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16329 						 coreNum, IPA2G_CASCONV,
16330 						 ipa2g_casconv);
16331 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16332 						 coreNum,
16333 						 IPA2G_BIAS_FILTER,
16334 						 ipa2g_biasfilt);
16335 			}
16336 		}
16337 	}
16338 
16339 	if (PHY_IPA(pi)) {
16340 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
16341 			if ((pi->pubpi.radiorev == 3)
16342 			    || (pi->pubpi.radiorev == 4)
16343 			    || (pi->pubpi.radiorev == 6))
16344 				txgm_idac_bleed = 0x7f;
16345 
16346 			for (coreNum = 0; coreNum <= 1; coreNum++) {
16347 				if (txgm_idac_bleed != 0)
16348 					WRITE_RADIO_REG4(pi, RADIO_2057,
16349 							 CORE, coreNum,
16350 							 TXGM_IDAC_BLEED,
16351 							 txgm_idac_bleed);
16352 			}
16353 
16354 			if (pi->pubpi.radiorev == 5) {
16355 				for (coreNum = 0; coreNum <= 1; coreNum++) {
16356 					WRITE_RADIO_REG4(pi, RADIO_2057,
16357 							 CORE, coreNum,
16358 							 IPA2G_CASCONV,
16359 							 0x13);
16360 					WRITE_RADIO_REG4(pi, RADIO_2057,
16361 							 CORE, coreNum,
16362 							 IPA2G_IMAIN,
16363 							 0x1f);
16364 					WRITE_RADIO_REG4(pi, RADIO_2057,
16365 							 CORE, coreNum,
16366 							 IPA2G_BIAS_FILTER,
16367 							 0xee);
16368 					WRITE_RADIO_REG4(pi, RADIO_2057,
16369 							 CORE, coreNum,
16370 							 PAD2G_IDACS,
16371 							 0x8a);
16372 					WRITE_RADIO_REG4(pi, RADIO_2057,
16373 							 CORE, coreNum,
16374 							 PAD_BIAS_FILTER_BWS,
16375 							 0x3e);
16376 				}
16377 			} else if ((pi->pubpi.radiorev == 7) ||
16378 				   (pi->pubpi.radiorev == 8)) {
16379 
16380 				if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16381 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16382 							 0, IPA2G_IMAIN, 0x14);
16383 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16384 							 1, IPA2G_IMAIN, 0x12);
16385 				} else {
16386 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16387 							 0, IPA2G_IMAIN, 0x16);
16388 					WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16389 							 1, IPA2G_IMAIN, 0x16);
16390 				}
16391 			}
16392 
16393 		} else {
16394 			freq =
16395 			    CHAN5G_FREQ(CHSPEC_CHANNEL
16396 					(pi->radio_chanspec));
16397 			if (((freq >= 5180) && (freq <= 5230))
16398 			    || ((freq >= 5745) && (freq <= 5805))) {
16399 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16400 						 0, IPA5G_BIAS_FILTER, 0xff);
16401 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16402 						 1, IPA5G_BIAS_FILTER, 0xff);
16403 			}
16404 		}
16405 	} else {
16406 
16407 		if (pi->pubpi.radiorev != 5) {
16408 			for (coreNum = 0; coreNum <= 1; coreNum++) {
16409 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16410 						 TXMIX2G_TUNE_BOOST_PU, 0x61);
16411 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16412 						 TXGM_IDAC_BLEED, 0x70);
16413 			}
16414 		}
16415 	}
16416 
16417 	if (pi->pubpi.radiorev == 4) {
16418 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x05, 16,
16419 					 &afectrl_adc_ctrl1_rev7);
16420 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x15, 16,
16421 					 &afectrl_adc_ctrl1_rev7);
16422 
16423 		for (coreNum = 0; coreNum <= 1; coreNum++) {
16424 			WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16425 					 AFE_VCM_CAL_MASTER, 0x0);
16426 			WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16427 					 AFE_SET_VCM_I, 0x3f);
16428 			WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16429 					 AFE_SET_VCM_Q, 0x3f);
16430 		}
16431 	} else {
16432 		mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16433 		mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16434 		mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16435 		mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16436 
16437 		mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16438 		mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16439 		mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16440 		mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16441 
16442 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x05, 16,
16443 					 &afectrl_adc_ctrl2_rev7);
16444 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x15, 16,
16445 					 &afectrl_adc_ctrl2_rev7);
16446 
16447 		mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16448 		mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16449 		mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16450 		mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16451 	}
16452 
16453 	write_phy_reg(pi, 0x6a, 0x2);
16454 
16455 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
16456 				 &min_nvar_offset_6mbps);
16457 
16458 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16459 				 &rfseq_pktgn_lpf_hpc_rev7);
16460 
16461 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16462 				 &rfseq_pktgn_lpf_h_hpc_rev7);
16463 
16464 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16465 				 &rfseq_htpktgn_lpf_hpc_rev7);
16466 
16467 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16468 				 &rfseq_cckpktgn_lpf_hpc_rev7);
16469 
16470 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16471 				 &rfseq_tx2rx_lpf_h_hpc_rev7);
16472 
16473 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16474 				 &rfseq_rx2tx_lpf_h_hpc_rev7);
16475 
16476 	if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16477 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16478 					 32, &min_nvar_val);
16479 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16480 					 127, 32, &min_nvar_val);
16481 	} else {
16482 		min_nvar_val = noise_var_tbl_rev7[3];
16483 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16484 					 32, &min_nvar_val);
16485 
16486 		min_nvar_val = noise_var_tbl_rev7[127];
16487 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16488 					 127, 32, &min_nvar_val);
16489 	}
16490 
16491 	wlc_phy_workarounds_nphy_gainctrl(pi);
16492 
16493 	pdetrange = (CHSPEC_IS5G(pi->radio_chanspec)) ?
16494 		    pi->srom_fem5g.pdetrange : pi->srom_fem2g.pdetrange;
16495 
16496 	if (pdetrange == 0) {
16497 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
16498 		if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16499 			aux_adc_vmid_rev7_core0[3] = 0x70;
16500 			aux_adc_vmid_rev7_core1[3] = 0x70;
16501 			aux_adc_gain_rev7[3] = 2;
16502 		} else {
16503 			aux_adc_vmid_rev7_core0[3] = 0x80;
16504 			aux_adc_vmid_rev7_core1[3] = 0x80;
16505 			aux_adc_gain_rev7[3] = 3;
16506 		}
16507 	} else if (pdetrange == 1) {
16508 		if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16509 			aux_adc_vmid_rev7_core0[3] = 0x7c;
16510 			aux_adc_vmid_rev7_core1[3] = 0x7c;
16511 			aux_adc_gain_rev7[3] = 2;
16512 		} else {
16513 			aux_adc_vmid_rev7_core0[3] = 0x8c;
16514 			aux_adc_vmid_rev7_core1[3] = 0x8c;
16515 			aux_adc_gain_rev7[3] = 1;
16516 		}
16517 	} else if (pdetrange == 2) {
16518 		if (pi->pubpi.radioid == BCM2057_ID) {
16519 			if ((pi->pubpi.radiorev == 5)
16520 			    || (pi->pubpi.radiorev == 7)
16521 			    || (pi->pubpi.radiorev == 8)) {
16522 				if (chan_freq_range ==
16523 				    WL_CHAN_FREQ_RANGE_2G) {
16524 					aux_adc_vmid_rev7_core0[3] = 0x8c;
16525 					aux_adc_vmid_rev7_core1[3] = 0x8c;
16526 					aux_adc_gain_rev7[3] = 0;
16527 				} else {
16528 					aux_adc_vmid_rev7_core0[3] = 0x96;
16529 					aux_adc_vmid_rev7_core1[3] = 0x96;
16530 					aux_adc_gain_rev7[3] = 0;
16531 				}
16532 			}
16533 		}
16534 
16535 	} else if (pdetrange == 3) {
16536 		if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16537 			aux_adc_vmid_rev7_core0[3] = 0x89;
16538 			aux_adc_vmid_rev7_core1[3] = 0x89;
16539 			aux_adc_gain_rev7[3] = 0;
16540 		}
16541 
16542 	} else if (pdetrange == 5) {
16543 
16544 		if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16545 			aux_adc_vmid_rev7_core0[3] = 0x80;
16546 			aux_adc_vmid_rev7_core1[3] = 0x80;
16547 			aux_adc_gain_rev7[3] = 3;
16548 		} else {
16549 			aux_adc_vmid_rev7_core0[3] = 0x70;
16550 			aux_adc_vmid_rev7_core1[3] = 0x70;
16551 			aux_adc_gain_rev7[3] = 2;
16552 		}
16553 	}
16554 
16555 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
16556 				 &aux_adc_vmid_rev7_core0);
16557 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
16558 				 &aux_adc_vmid_rev7_core1);
16559 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
16560 				 &aux_adc_gain_rev7);
16561 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
16562 				 &aux_adc_gain_rev7);
16563 }
16564 
16565 static void wlc_phy_workarounds_nphy_rev3(struct brcms_phy *pi)
16566 {
16567 	static const u8 rfseq_tx2rx_events_rev3[] = {
16568 		NPHY_REV3_RFSEQ_CMD_EXT_PA,
16569 		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16570 		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16571 		NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16572 		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16573 		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16574 		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16575 		NPHY_REV3_RFSEQ_CMD_END
16576 	};
16577 	static const u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16578 	u8 rfseq_rx2tx_events_rev3[] = {
16579 		NPHY_REV3_RFSEQ_CMD_NOP,
16580 		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16581 		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16582 		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16583 		NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16584 		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16585 		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16586 		NPHY_REV3_RFSEQ_CMD_EXT_PA,
16587 		NPHY_REV3_RFSEQ_CMD_END
16588 	};
16589 	u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16590 	static const u8 rfseq_rx2tx_events_rev3_ipa[] = {
16591 		NPHY_REV3_RFSEQ_CMD_NOP,
16592 		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16593 		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16594 		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16595 		NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16596 		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16597 		NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16598 		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16599 		NPHY_REV3_RFSEQ_CMD_END
16600 	};
16601 	static const u8 rfseq_rx2tx_dlys_rev3_ipa[] =
16602 	    { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16603 	s16 alpha0, alpha1, alpha2;
16604 	s16 beta0, beta1, beta2;
16605 	u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16606 	    stbc_data_weights;
16607 	u8 chan_freq_range = 0;
16608 	static const u16 dac_control = 0x0002;
16609 	u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16610 	u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16611 	u16 *aux_adc_vmid;
16612 	u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16613 	u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16614 	u16 *aux_adc_gain;
16615 	static const u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16616 	static const u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16617 	s32 min_nvar_val = 0x18d;
16618 	u8 pdetrange;
16619 	u8 triso;
16620 
16621 	write_phy_reg(pi, 0x23f, 0x1f8);
16622 	write_phy_reg(pi, 0x240, 0x1f8);
16623 
16624 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16625 				1, 0, 32, &leg_data_weights);
16626 	leg_data_weights = leg_data_weights & 0xffffff;
16627 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16628 				 1, 0, 32, &leg_data_weights);
16629 
16630 	alpha0 = 293;
16631 	alpha1 = 435;
16632 	alpha2 = 261;
16633 	beta0 = 366;
16634 	beta1 = 205;
16635 	beta2 = 32;
16636 	write_phy_reg(pi, 0x145, alpha0);
16637 	write_phy_reg(pi, 0x146, alpha1);
16638 	write_phy_reg(pi, 0x147, alpha2);
16639 	write_phy_reg(pi, 0x148, beta0);
16640 	write_phy_reg(pi, 0x149, beta1);
16641 	write_phy_reg(pi, 0x14a, beta2);
16642 
16643 	write_phy_reg(pi, 0x38, 0xC);
16644 	write_phy_reg(pi, 0x2ae, 0xC);
16645 
16646 	wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16647 			       rfseq_tx2rx_events_rev3,
16648 			       rfseq_tx2rx_dlys_rev3,
16649 			       ARRAY_SIZE(rfseq_tx2rx_events_rev3));
16650 
16651 	if (PHY_IPA(pi))
16652 		wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16653 				       rfseq_rx2tx_events_rev3_ipa,
16654 				       rfseq_rx2tx_dlys_rev3_ipa,
16655 				       ARRAY_SIZE (rfseq_rx2tx_events_rev3_ipa));
16656 
16657 	if ((pi->sh->hw_phyrxchain != 0x3) &&
16658 	    (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16659 
16660 		if (PHY_IPA(pi)) {
16661 			rfseq_rx2tx_dlys_rev3[5] = 59;
16662 			rfseq_rx2tx_dlys_rev3[6] = 1;
16663 			rfseq_rx2tx_events_rev3[7] = NPHY_REV3_RFSEQ_CMD_END;
16664 		}
16665 
16666 		wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16667 				       rfseq_rx2tx_events_rev3,
16668 				       rfseq_rx2tx_dlys_rev3,
16669 				       ARRAY_SIZE (rfseq_rx2tx_events_rev3));
16670 	}
16671 
16672 	if (CHSPEC_IS2G(pi->radio_chanspec))
16673 		write_phy_reg(pi, 0x6a, 0x2);
16674 	else
16675 		write_phy_reg(pi, 0x6a, 0x9c40);
16676 
16677 	mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16678 
16679 	if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16680 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16681 					 32, &min_nvar_val);
16682 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16683 					 127, 32, &min_nvar_val);
16684 	} else {
16685 		min_nvar_val = noise_var_tbl_rev3[3];
16686 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16687 					 32, &min_nvar_val);
16688 
16689 		min_nvar_val = noise_var_tbl_rev3[127];
16690 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16691 					 127, 32, &min_nvar_val);
16692 	}
16693 
16694 	wlc_phy_workarounds_nphy_gainctrl(pi);
16695 
16696 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16697 				 &dac_control);
16698 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16699 				 &dac_control);
16700 
16701 	pdetrange = (CHSPEC_IS5G(pi->radio_chanspec)) ?
16702 			pi->srom_fem5g.pdetrange : pi->srom_fem2g.pdetrange;
16703 
16704 	if (pdetrange == 0) {
16705 		if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16706 			aux_adc_vmid = aux_adc_vmid_rev4;
16707 			aux_adc_gain = aux_adc_gain_rev4;
16708 		} else {
16709 			aux_adc_vmid = aux_adc_vmid_rev3;
16710 			aux_adc_gain = aux_adc_gain_rev3;
16711 		}
16712 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
16713 		if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16714 			switch (chan_freq_range) {
16715 			case WL_CHAN_FREQ_RANGE_5GL:
16716 				aux_adc_vmid[3] = 0x89;
16717 				aux_adc_gain[3] = 0;
16718 				break;
16719 			case WL_CHAN_FREQ_RANGE_5GM:
16720 				aux_adc_vmid[3] = 0x89;
16721 				aux_adc_gain[3] = 0;
16722 				break;
16723 			case WL_CHAN_FREQ_RANGE_5GH:
16724 				aux_adc_vmid[3] = 0x89;
16725 				aux_adc_gain[3] = 0;
16726 				break;
16727 			default:
16728 				break;
16729 			}
16730 		}
16731 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16732 					 0x08, 16, aux_adc_vmid);
16733 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16734 					 0x18, 16, aux_adc_vmid);
16735 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16736 					 0x0c, 16, aux_adc_gain);
16737 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16738 					 0x1c, 16, aux_adc_gain);
16739 	} else if (pdetrange == 1) {
16740 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16741 					 0x08, 16, sk_adc_vmid);
16742 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16743 					 0x18, 16, sk_adc_vmid);
16744 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16745 					 0x0c, 16, sk_adc_gain);
16746 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16747 					 0x1c, 16, sk_adc_gain);
16748 	} else if (pdetrange == 2) {
16749 
16750 		u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16751 		u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16752 
16753 		if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16754 			chan_freq_range =
16755 			    wlc_phy_get_chan_freq_range_nphy(pi, 0);
16756 			if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16757 				bcm_adc_vmid[3] = 0x8e;
16758 				bcm_adc_gain[3] = 0x03;
16759 			} else {
16760 				bcm_adc_vmid[3] = 0x94;
16761 				bcm_adc_gain[3] = 0x03;
16762 			}
16763 		} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16764 			bcm_adc_vmid[3] = 0x84;
16765 			bcm_adc_gain[3] = 0x02;
16766 		}
16767 
16768 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16769 					 0x08, 16, bcm_adc_vmid);
16770 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16771 					 0x18, 16, bcm_adc_vmid);
16772 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16773 					 0x0c, 16, bcm_adc_gain);
16774 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16775 					 0x1c, 16, bcm_adc_gain);
16776 	} else if (pdetrange == 3) {
16777 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
16778 		if ((NREV_GE(pi->pubpi.phy_rev, 4)) &&
16779 		    (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16780 			u16 auxadc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x270 };
16781 			u16 auxadc_gain[] = { 0x02, 0x02, 0x02, 0x00 };
16782 
16783 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16784 						 0x08, 16, auxadc_vmid);
16785 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16786 						 0x18, 16, auxadc_vmid);
16787 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16788 						 0x0c, 16, auxadc_gain);
16789 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16790 						 0x1c, 16, auxadc_gain);
16791 		}
16792 	} else if ((pdetrange == 4) || (pdetrange == 5)) {
16793 		u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16794 		u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16795 		u16 Vmid[2], Av[2];
16796 
16797 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
16798 		if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16799 			Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16800 			Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16801 			Av[0] = (pdetrange == 4) ? 2 : 0;
16802 			Av[1] = (pdetrange == 4) ? 2 : 0;
16803 		} else {
16804 			Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16805 			Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16806 			Av[0] = (pdetrange == 4) ? 2 : 0;
16807 			Av[1] = (pdetrange == 4) ? 2 : 0;
16808 		}
16809 
16810 		bcm_adc_vmid[3] = Vmid[0];
16811 		bcm_adc_gain[3] = Av[0];
16812 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16813 					 0x08, 16, bcm_adc_vmid);
16814 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16815 					 0x0c, 16, bcm_adc_gain);
16816 
16817 		bcm_adc_vmid[3] = Vmid[1];
16818 		bcm_adc_gain[3] = Av[1];
16819 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16820 					 0x18, 16, bcm_adc_vmid);
16821 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16822 					 0x1c, 16, bcm_adc_gain);
16823 	}
16824 
16825 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0), 0x0);
16826 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1), 0x0);
16827 
16828 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0), 0x6);
16829 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1), 0x6);
16830 
16831 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0), 0x7);
16832 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1), 0x7);
16833 
16834 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0), 0x88);
16835 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1), 0x88);
16836 
16837 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0), 0x0);
16838 	write_radio_reg(pi, (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1), 0x0);
16839 
16840 	write_radio_reg(pi, (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0), 0x0);
16841 	write_radio_reg(pi, (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1), 0x0);
16842 
16843 	triso = (CHSPEC_IS5G(pi->radio_chanspec)) ?
16844 		 pi->srom_fem5g.triso : pi->srom_fem2g.triso;
16845 	if (triso == 7) {
16846 		wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16847 		wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16848 	}
16849 
16850 	wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16851 
16852 	if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16853 	     (CHSPEC_IS5G(pi->radio_chanspec))) ||
16854 	    (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16855 	      (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16856 	     (CHSPEC_IS2G(pi->radio_chanspec)))) {
16857 		nss1_data_weights = 0x00088888;
16858 		ht_data_weights = 0x00088888;
16859 		stbc_data_weights = 0x00088888;
16860 	} else {
16861 		nss1_data_weights = 0x88888888;
16862 		ht_data_weights = 0x88888888;
16863 		stbc_data_weights = 0x88888888;
16864 	}
16865 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16866 				 1, 1, 32, &nss1_data_weights);
16867 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16868 				 1, 2, 32, &ht_data_weights);
16869 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16870 				 1, 3, 32, &stbc_data_weights);
16871 
16872 	if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16873 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
16874 			write_radio_reg(pi,
16875 					RADIO_2056_TX_GMBB_IDAC |
16876 					RADIO_2056_TX0, 0x70);
16877 			write_radio_reg(pi,
16878 					RADIO_2056_TX_GMBB_IDAC |
16879 					RADIO_2056_TX1, 0x70);
16880 		}
16881 	}
16882 
16883 	if (!pi->edcrs_threshold_lock) {
16884 		write_phy_reg(pi, 0x224, 0x3eb);
16885 		write_phy_reg(pi, 0x225, 0x3eb);
16886 		write_phy_reg(pi, 0x226, 0x341);
16887 		write_phy_reg(pi, 0x227, 0x341);
16888 		write_phy_reg(pi, 0x228, 0x42b);
16889 		write_phy_reg(pi, 0x229, 0x42b);
16890 		write_phy_reg(pi, 0x22a, 0x381);
16891 		write_phy_reg(pi, 0x22b, 0x381);
16892 		write_phy_reg(pi, 0x22c, 0x42b);
16893 		write_phy_reg(pi, 0x22d, 0x42b);
16894 		write_phy_reg(pi, 0x22e, 0x381);
16895 		write_phy_reg(pi, 0x22f, 0x381);
16896 	}
16897 
16898 	if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16899 
16900 		if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
16901 			wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16902 				       MHF4_BPHY_TXCORE0,
16903 				       MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
16904 	}
16905 }
16906 
16907 static void wlc_phy_workarounds_nphy_rev1(struct brcms_phy *pi)
16908 {
16909 	static const u8 rfseq_rx2tx_events[] = {
16910 		NPHY_RFSEQ_CMD_NOP,
16911 		NPHY_RFSEQ_CMD_RXG_FBW,
16912 		NPHY_RFSEQ_CMD_TR_SWITCH,
16913 		NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16914 		NPHY_RFSEQ_CMD_RXPD_TXPD,
16915 		NPHY_RFSEQ_CMD_TX_GAIN,
16916 		NPHY_RFSEQ_CMD_EXT_PA
16917 	};
16918 	u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16919 	static const u8 rfseq_tx2rx_events[] = {
16920 		NPHY_RFSEQ_CMD_NOP,
16921 		NPHY_RFSEQ_CMD_EXT_PA,
16922 		NPHY_RFSEQ_CMD_TX_GAIN,
16923 		NPHY_RFSEQ_CMD_RXPD_TXPD,
16924 		NPHY_RFSEQ_CMD_TR_SWITCH,
16925 		NPHY_RFSEQ_CMD_RXG_FBW,
16926 		NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16927 	};
16928 	static const u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16929 	s16 alpha0, alpha1, alpha2;
16930 	s16 beta0, beta1, beta2;
16931 	u16 regval;
16932 
16933 	if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16934 	    (pi->sh->boardtype == 0x8b)) {
16935 		uint i;
16936 		u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
16937 		for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
16938 			rfseq_rx2tx_dlys[i] = war_dlys[i];
16939 	}
16940 
16941 	if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16942 		and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16943 		and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16944 	} else {
16945 		or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16946 		or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16947 	}
16948 
16949 	regval = 0x000a;
16950 	wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16951 	wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16952 
16953 	if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16954 		regval = 0xcdaa;
16955 		wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16956 		wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16957 	}
16958 
16959 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16960 		regval = 0x0000;
16961 		wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16962 		wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16963 
16964 		regval = 0x7aab;
16965 		wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16966 		wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16967 
16968 		regval = 0x0800;
16969 		wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16970 		wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
16971 	}
16972 
16973 	write_phy_reg(pi, 0xf8, 0x02d8);
16974 	write_phy_reg(pi, 0xf9, 0x0301);
16975 	write_phy_reg(pi, 0xfa, 0x02d8);
16976 	write_phy_reg(pi, 0xfb, 0x0301);
16977 
16978 	wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16979 			       rfseq_rx2tx_dlys,
16980 			       ARRAY_SIZE(rfseq_rx2tx_events));
16981 
16982 	wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16983 			       rfseq_tx2rx_dlys,
16984 			       ARRAY_SIZE(rfseq_tx2rx_events));
16985 
16986 	wlc_phy_workarounds_nphy_gainctrl(pi);
16987 
16988 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16989 
16990 		if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16991 			wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16992 				       MHF3_NPHY_MLADV_WAR,
16993 				       MHF3_NPHY_MLADV_WAR, BRCM_BAND_ALL);
16994 
16995 	} else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16996 		write_phy_reg(pi, 0x1e3, 0x0);
16997 		write_phy_reg(pi, 0x1e4, 0x0);
16998 	}
16999 
17000 	if (NREV_LT(pi->pubpi.phy_rev, 2))
17001 		mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17002 
17003 	alpha0 = 293;
17004 	alpha1 = 435;
17005 	alpha2 = 261;
17006 	beta0 = 366;
17007 	beta1 = 205;
17008 	beta2 = 32;
17009 	write_phy_reg(pi, 0x145, alpha0);
17010 	write_phy_reg(pi, 0x146, alpha1);
17011 	write_phy_reg(pi, 0x147, alpha2);
17012 	write_phy_reg(pi, 0x148, beta0);
17013 	write_phy_reg(pi, 0x149, beta1);
17014 	write_phy_reg(pi, 0x14a, beta2);
17015 
17016 	if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17017 		mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17018 
17019 		write_phy_reg(pi, 0x192, 0xb5);
17020 		write_phy_reg(pi, 0x193, 0xa4);
17021 		write_phy_reg(pi, 0x194, 0x0);
17022 	}
17023 
17024 	if (NREV_IS(pi->pubpi.phy_rev, 2))
17025 		mod_phy_reg(pi, 0x221,
17026 			    NPHY_FORCESIG_DECODEGATEDCLKS,
17027 			    NPHY_FORCESIG_DECODEGATEDCLKS);
17028 }
17029 
17030 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
17031 {
17032 	if (CHSPEC_IS5G(pi->radio_chanspec))
17033 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
17034 	else
17035 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
17036 
17037 	if (pi->phyhang_avoid)
17038 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
17039 
17040 	or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
17041 
17042 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17043 		wlc_phy_workarounds_nphy_rev7(pi);
17044 	else if (NREV_GE(pi->pubpi.phy_rev, 3))
17045 		wlc_phy_workarounds_nphy_rev3(pi);
17046 	else
17047 		wlc_phy_workarounds_nphy_rev1(pi);
17048 
17049 	if (pi->phyhang_avoid)
17050 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
17051 }
17052 
17053 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17054 {
17055 	int j, type = 2;
17056 	u16 addr_offset = 0x2c5;
17057 
17058 	for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17059 		write_phy_reg(pi, addr_offset + j,
17060 			      NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17061 }
17062 
17063 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17064 {
17065 
17066 	if (write == 0) {
17067 		vals[0] = read_phy_reg(pi, 0x2c);
17068 		vals[1] = read_phy_reg(pi, 0x42);
17069 	} else {
17070 		write_phy_reg(pi, 0x2c, vals[0]);
17071 		write_phy_reg(pi, 0x42, vals[1]);
17072 	}
17073 }
17074 
17075 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17076 {
17077 	u8 core;
17078 
17079 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17080 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17081 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
17082 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17083 						 TX_SSI_MASTER, 0x5);
17084 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17085 						 TX_SSI_MUX, 0xe);
17086 
17087 				if (pi->pubpi.radiorev != 5)
17088 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17089 							 core, TSSIA, 0);
17090 
17091 				if (!NREV_IS(pi->pubpi.phy_rev, 7))
17092 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17093 							 core, TSSIG, 0x1);
17094 				else
17095 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17096 							 core, TSSIG, 0x31);
17097 			} else {
17098 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17099 						 TX_SSI_MASTER, 0x9);
17100 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17101 						 TX_SSI_MUX, 0xc);
17102 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17103 						 TSSIG, 0);
17104 
17105 				if (pi->pubpi.radiorev != 5) {
17106 					if (!NREV_IS(pi->pubpi.phy_rev, 7))
17107 						WRITE_RADIO_REG3(pi, RADIO_2057,
17108 								 TX, core,
17109 								 TSSIA, 0x1);
17110 					else
17111 						WRITE_RADIO_REG3(pi, RADIO_2057,
17112 								 TX, core,
17113 								 TSSIA, 0x31);
17114 				}
17115 			}
17116 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17117 					 0);
17118 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17119 					 0);
17120 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17121 					 0x3);
17122 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17123 					 0x0);
17124 		}
17125 	} else {
17126 		WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17127 				(CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17128 				0x80);
17129 		WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17130 		WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17131 
17132 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17133 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17134 					 0x0);
17135 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17136 					 0x0);
17137 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17138 					 0x3);
17139 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17140 					 0x0);
17141 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17142 					 0x8);
17143 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17144 					 0x0);
17145 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17146 					 0x0);
17147 
17148 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
17149 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17150 						 TX_SSI_MASTER, 0x5);
17151 
17152 				if (pi->pubpi.radiorev != 5)
17153 					WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17154 							 core, TSSIA, 0x0);
17155 				if (NREV_GE(pi->pubpi.phy_rev, 5))
17156 					WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17157 							 core, TSSIG, 0x31);
17158 				else
17159 					WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17160 							 core, TSSIG, 0x11);
17161 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17162 						 TX_SSI_MUX, 0xe);
17163 			} else {
17164 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17165 						 TX_SSI_MASTER, 0x9);
17166 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17167 						 TSSIA, 0x31);
17168 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17169 						 TSSIG, 0x0);
17170 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17171 						 TX_SSI_MUX, 0xc);
17172 			}
17173 		}
17174 	}
17175 }
17176 
17177 static void
17178 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17179 			     u8 core_mask, u8 off)
17180 {
17181 	u8 core_num;
17182 	u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17183 		0, val_mask = 0;
17184 	u8 shift = 0, val_shift = 0;
17185 
17186 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17187 
17188 		en_mask = field;
17189 		for (core_num = 0; core_num < 2; core_num++) {
17190 
17191 			switch (field) {
17192 			case (0x1 << 1):
17193 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17194 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17195 				val_mask = (0x1 << 0);
17196 				val_shift = 0;
17197 				break;
17198 			case (0x1 << 2):
17199 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17200 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17201 				val_mask = (0x1 << 1);
17202 				val_shift = 1;
17203 				break;
17204 			case (0x1 << 3):
17205 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17206 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17207 				val_mask = (0x1 << 2);
17208 				val_shift = 2;
17209 				break;
17210 			case (0x1 << 4):
17211 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17212 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17213 				val_mask = (0x1 << 4);
17214 				val_shift = 4;
17215 				break;
17216 			case (0x1 << 5):
17217 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17218 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17219 				val_mask = (0x1 << 5);
17220 				val_shift = 5;
17221 				break;
17222 			case (0x1 << 6):
17223 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17224 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17225 				val_mask = (0x1 << 6);
17226 				val_shift = 6;
17227 				break;
17228 			case (0x1 << 7):
17229 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17230 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17231 				val_mask = (0x1 << 7);
17232 				val_shift = 7;
17233 				break;
17234 			case (0x1 << 8):
17235 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17236 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17237 				val_mask = (0x7 << 8);
17238 				val_shift = 8;
17239 				break;
17240 			case (0x1 << 11):
17241 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17242 				val_addr = (core_num == 0) ? 0x7a : 0x7d;
17243 				val_mask = (0x7 << 13);
17244 				val_shift = 13;
17245 				break;
17246 
17247 			case (0x1 << 9):
17248 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17249 				val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17250 				val_mask = (0x7 << 0);
17251 				val_shift = 0;
17252 				break;
17253 
17254 			case (0x1 << 10):
17255 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17256 				val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17257 				val_mask = (0x7 << 4);
17258 				val_shift = 4;
17259 				break;
17260 
17261 			case (0x1 << 12):
17262 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17263 				val_addr = (core_num == 0) ? 0x7b : 0x7e;
17264 				val_mask = (0xffff << 0);
17265 				val_shift = 0;
17266 				break;
17267 			case (0x1 << 13):
17268 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17269 				val_addr = (core_num == 0) ? 0x7c : 0x7f;
17270 				val_mask = (0xffff << 0);
17271 				val_shift = 0;
17272 				break;
17273 			case (0x1 << 14):
17274 				en_addr = (core_num == 0) ? 0xe7 : 0xec;
17275 				val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17276 				val_mask = (0x3 << 6);
17277 				val_shift = 6;
17278 				break;
17279 			case (0x1 << 0):
17280 				en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17281 				val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17282 				val_mask = (0x1 << 15);
17283 				val_shift = 15;
17284 				break;
17285 			default:
17286 				addr = 0xffff;
17287 				break;
17288 			}
17289 
17290 			if (off) {
17291 				and_phy_reg(pi, en_addr, ~en_mask);
17292 				and_phy_reg(pi, val_addr, ~val_mask);
17293 			} else {
17294 
17295 				if ((core_mask == 0)
17296 				    || (core_mask & (1 << core_num))) {
17297 					or_phy_reg(pi, en_addr, en_mask);
17298 
17299 					if (addr != 0xffff)
17300 						mod_phy_reg(pi, val_addr,
17301 							    val_mask,
17302 							    (value <<
17303 							     val_shift));
17304 				}
17305 			}
17306 		}
17307 	} else {
17308 
17309 		if (off) {
17310 			and_phy_reg(pi, 0xec, ~field);
17311 			value = 0x0;
17312 		} else {
17313 			or_phy_reg(pi, 0xec, field);
17314 		}
17315 
17316 		for (core_num = 0; core_num < 2; core_num++) {
17317 
17318 			switch (field) {
17319 			case (0x1 << 1):
17320 			case (0x1 << 9):
17321 			case (0x1 << 12):
17322 			case (0x1 << 13):
17323 			case (0x1 << 14):
17324 				addr = 0x78;
17325 
17326 				core_mask = 0x1;
17327 				break;
17328 			case (0x1 << 2):
17329 			case (0x1 << 3):
17330 			case (0x1 << 4):
17331 			case (0x1 << 5):
17332 			case (0x1 << 6):
17333 			case (0x1 << 7):
17334 			case (0x1 << 8):
17335 				addr = (core_num == 0) ? 0x7a : 0x7d;
17336 				break;
17337 			case (0x1 << 10):
17338 				addr = (core_num == 0) ? 0x7b : 0x7e;
17339 				break;
17340 			case (0x1 << 11):
17341 				addr = (core_num == 0) ? 0x7c : 0x7f;
17342 				break;
17343 			default:
17344 				addr = 0xffff;
17345 			}
17346 
17347 			switch (field) {
17348 			case (0x1 << 1):
17349 				mask = (0x7 << 3);
17350 				shift = 3;
17351 				break;
17352 			case (0x1 << 9):
17353 				mask = (0x1 << 2);
17354 				shift = 2;
17355 				break;
17356 			case (0x1 << 12):
17357 				mask = (0x1 << 8);
17358 				shift = 8;
17359 				break;
17360 			case (0x1 << 13):
17361 				mask = (0x1 << 9);
17362 				shift = 9;
17363 				break;
17364 			case (0x1 << 14):
17365 				mask = (0xf << 12);
17366 				shift = 12;
17367 				break;
17368 			case (0x1 << 2):
17369 				mask = (0x1 << 0);
17370 				shift = 0;
17371 				break;
17372 			case (0x1 << 3):
17373 				mask = (0x1 << 1);
17374 				shift = 1;
17375 				break;
17376 			case (0x1 << 4):
17377 				mask = (0x1 << 2);
17378 				shift = 2;
17379 				break;
17380 			case (0x1 << 5):
17381 				mask = (0x3 << 4);
17382 				shift = 4;
17383 				break;
17384 			case (0x1 << 6):
17385 				mask = (0x3 << 6);
17386 				shift = 6;
17387 				break;
17388 			case (0x1 << 7):
17389 				mask = (0x1 << 8);
17390 				shift = 8;
17391 				break;
17392 			case (0x1 << 8):
17393 				mask = (0x1 << 9);
17394 				shift = 9;
17395 				break;
17396 			case (0x1 << 10):
17397 				mask = 0x1fff;
17398 				shift = 0x0;
17399 				break;
17400 			case (0x1 << 11):
17401 				mask = 0x1fff;
17402 				shift = 0x0;
17403 				break;
17404 			default:
17405 				mask = 0x0;
17406 				shift = 0x0;
17407 				break;
17408 			}
17409 
17410 			if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17411 				mod_phy_reg(pi, addr, mask, (value << shift));
17412 		}
17413 
17414 		or_phy_reg(pi, 0xec, (0x1 << 0));
17415 		or_phy_reg(pi, 0x78, (0x1 << 0));
17416 		udelay(1);
17417 		and_phy_reg(pi, 0xec, ~(0x1 << 0));
17418 	}
17419 }
17420 
17421 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17422 {
17423 	s32 rssi_buf[4];
17424 	s32 int_val;
17425 
17426 	if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17427 
17428 		return;
17429 
17430 	if (PHY_IPA(pi))
17431 		wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17432 
17433 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17434 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17435 						  0, 0x3, 0,
17436 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
17437 	else if (NREV_GE(pi->pubpi.phy_rev, 3))
17438 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17439 
17440 	wlc_phy_stopplayback_nphy(pi);
17441 
17442 	wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17443 
17444 	udelay(20);
17445 	int_val =
17446 		wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
17447 				       1);
17448 	wlc_phy_stopplayback_nphy(pi);
17449 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
17450 
17451 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17452 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17453 						  0, 0x3, 1,
17454 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
17455 	else if (NREV_GE(pi->pubpi.phy_rev, 3))
17456 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17457 
17458 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17459 
17460 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17461 			(u8) ((int_val >> 24) & 0xff);
17462 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17463 			(u8) ((int_val >> 24) & 0xff);
17464 
17465 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17466 			(u8) ((int_val >> 8) & 0xff);
17467 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17468 			(u8) ((int_val >> 8) & 0xff);
17469 	} else {
17470 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17471 			(u8) ((int_val >> 24) & 0xff);
17472 
17473 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17474 			(u8) ((int_val >> 8) & 0xff);
17475 
17476 		pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17477 			(u8) ((int_val >> 16) & 0xff);
17478 		pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17479 			(u8) ((int_val) & 0xff);
17480 	}
17481 
17482 }
17483 
17484 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17485 {
17486 	u8 idx, idx2, i, delta_ind;
17487 
17488 	for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17489 		pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17490 
17491 	for (i = 0; i < 4; i++) {
17492 		idx2 = 0;
17493 
17494 		delta_ind = 0;
17495 
17496 		switch (i) {
17497 		case 0:
17498 
17499 			if (CHSPEC_IS40(pi->radio_chanspec)
17500 			    && NPHY_IS_SROM_REINTERPRET) {
17501 				idx = TXP_FIRST_MCS_40_SISO;
17502 			} else {
17503 				idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17504 				      TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
17505 				delta_ind = 1;
17506 			}
17507 			break;
17508 
17509 		case 1:
17510 
17511 			idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17512 			      TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
17513 			break;
17514 
17515 		case 2:
17516 
17517 			idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17518 			      TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
17519 			break;
17520 
17521 		case 3:
17522 
17523 			idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17524 			      TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
17525 			break;
17526 		}
17527 
17528 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17529 			pi->tx_power_offset[idx];
17530 		idx = idx + delta_ind;
17531 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17532 			pi->tx_power_offset[idx];
17533 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17534 			pi->tx_power_offset[idx];
17535 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17536 			pi->tx_power_offset[idx++];
17537 
17538 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17539 			pi->tx_power_offset[idx++];
17540 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17541 			pi->tx_power_offset[idx];
17542 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17543 			pi->tx_power_offset[idx];
17544 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17545 			pi->tx_power_offset[idx++];
17546 
17547 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17548 			pi->tx_power_offset[idx++];
17549 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17550 			pi->tx_power_offset[idx];
17551 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17552 			pi->tx_power_offset[idx];
17553 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17554 			pi->tx_power_offset[idx++];
17555 
17556 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17557 			pi->tx_power_offset[idx];
17558 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17559 			pi->tx_power_offset[idx++];
17560 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17561 			pi->tx_power_offset[idx];
17562 		idx = idx + 1 - delta_ind;
17563 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17564 			pi->tx_power_offset[idx];
17565 
17566 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17567 			pi->tx_power_offset[idx];
17568 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17569 			pi->tx_power_offset[idx];
17570 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17571 			pi->tx_power_offset[idx];
17572 		pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17573 			pi->tx_power_offset[idx];
17574 	}
17575 }
17576 
17577 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17578 {
17579 	u32 idx;
17580 	s16 a1[2], b0[2], b1[2];
17581 	s8 target_pwr_qtrdbm[2];
17582 	s32 num, den, pwr_est;
17583 	u8 chan_freq_range;
17584 	u8 idle_tssi[2];
17585 	u32 tbl_id, tbl_len, tbl_offset;
17586 	u32 regval[64];
17587 	u8 core;
17588 
17589 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17590 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17591 		(void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17592 		udelay(1);
17593 	}
17594 
17595 	if (pi->phyhang_avoid)
17596 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
17597 
17598 	or_phy_reg(pi, 0x122, (0x1 << 0));
17599 
17600 	if (NREV_GE(pi->pubpi.phy_rev, 3))
17601 		and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17602 	else
17603 		or_phy_reg(pi, 0x1e7, (0x1 << 15));
17604 
17605 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17606 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17607 
17608 	if (pi->sh->sromrev < 4) {
17609 		idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17610 		idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17611 		a1[0] = -424;
17612 		a1[1] = -424;
17613 		b0[0] = 5612;
17614 		b0[1] = 5612;
17615 		b1[1] = -1393;
17616 		b1[0] = -1393;
17617 	} else {
17618 
17619 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17620 		switch (chan_freq_range) {
17621 		case WL_CHAN_FREQ_RANGE_2G:
17622 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17623 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17624 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17625 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17626 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17627 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17628 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17629 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17630 			break;
17631 		case WL_CHAN_FREQ_RANGE_5GL:
17632 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17633 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17634 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17635 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17636 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17637 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17638 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17639 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17640 			break;
17641 		case WL_CHAN_FREQ_RANGE_5GM:
17642 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17643 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17644 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17645 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17646 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17647 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17648 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17649 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17650 			break;
17651 		case WL_CHAN_FREQ_RANGE_5GH:
17652 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17653 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17654 			a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17655 			a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17656 			b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17657 			b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17658 			b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17659 			b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17660 			break;
17661 		default:
17662 			idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17663 			idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17664 			a1[0] = -424;
17665 			a1[1] = -424;
17666 			b0[0] = 5612;
17667 			b0[1] = 5612;
17668 			b1[1] = -1393;
17669 			b1[0] = -1393;
17670 			break;
17671 		}
17672 	}
17673 
17674 	/* use the provided transmit power */
17675 	target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17676 	target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17677 
17678 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17679 		if (pi->srom_fem2g.tssipos)
17680 			or_phy_reg(pi, 0x1e9, (0x1 << 14));
17681 
17682 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17683 			for (core = 0; core <= 1; core++) {
17684 				if (PHY_IPA(pi)) {
17685 					if (CHSPEC_IS2G(pi->radio_chanspec))
17686 						WRITE_RADIO_REG3(pi, RADIO_2057,
17687 								 TX, core,
17688 								 TX_SSI_MUX,
17689 								 0xe);
17690 					else
17691 						WRITE_RADIO_REG3(pi, RADIO_2057,
17692 								 TX, core,
17693 								 TX_SSI_MUX,
17694 								 0xc);
17695 				}
17696 			}
17697 		} else {
17698 			if (PHY_IPA(pi)) {
17699 
17700 				write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17701 						RADIO_2056_TX0,
17702 						(CHSPEC_IS5G
17703 						 (pi->radio_chanspec)) ?
17704 						 0xc : 0xe);
17705 				write_radio_reg(pi,
17706 						RADIO_2056_TX_TX_SSI_MUX |
17707 						RADIO_2056_TX1,
17708 						(CHSPEC_IS5G
17709 						 (pi->radio_chanspec)) ?
17710 						 0xc : 0xe);
17711 			} else {
17712 
17713 				write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17714 						RADIO_2056_TX0, 0x11);
17715 				write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17716 						RADIO_2056_TX1, 0x11);
17717 			}
17718 		}
17719 	}
17720 
17721 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17722 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17723 		(void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17724 		udelay(1);
17725 	}
17726 
17727 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17728 		mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17729 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17730 	else
17731 		mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17732 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17733 
17734 	if (NREV_GE(pi->pubpi.phy_rev, 7))
17735 		mod_phy_reg(pi, 0x222, (0xff << 0),
17736 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17737 	else if (NREV_GT(pi->pubpi.phy_rev, 1))
17738 		mod_phy_reg(pi, 0x222, (0xff << 0),
17739 			    (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17740 
17741 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17742 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17743 
17744 	write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
17745 
17746 	write_phy_reg(pi, 0x1e9,
17747 		      (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
17748 
17749 	write_phy_reg(pi, 0x1ea,
17750 		      (target_pwr_qtrdbm[0] << 0) |
17751 		      (target_pwr_qtrdbm[1] << 8));
17752 
17753 	tbl_len = 64;
17754 	tbl_offset = 0;
17755 	for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
17756 	     tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
17757 
17758 		for (idx = 0; idx < tbl_len; idx++) {
17759 			num = 8 *
17760 			      (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
17761 			den = 32768 + a1[tbl_id - 26] * idx;
17762 			pwr_est = max(((4 * num + den / 2) / den), -8);
17763 			if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17764 				if (idx <=
17765 				    (uint) (31 - idle_tssi[tbl_id - 26] + 1))
17766 					pwr_est =
17767 						max(pwr_est,
17768 						    target_pwr_qtrdbm
17769 						    [tbl_id - 26] + 1);
17770 			}
17771 			regval[idx] = (u32) pwr_est;
17772 		}
17773 		wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
17774 					 regval);
17775 	}
17776 
17777 	wlc_phy_txpwr_limit_to_tbl_nphy(pi);
17778 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
17779 				 pi->adj_pwr_tbl_nphy);
17780 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
17781 				 pi->adj_pwr_tbl_nphy);
17782 
17783 	if (pi->phyhang_avoid)
17784 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
17785 }
17786 
17787 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
17788 {
17789 	u32 *tx_pwrctrl_tbl = NULL;
17790 
17791 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
17792 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17793 			if ((pi->pubpi.radiorev == 4)
17794 			    || (pi->pubpi.radiorev == 6))
17795 				tx_pwrctrl_tbl =
17796 					nphy_tpc_txgain_ipa_2g_2057rev4n6;
17797 			else if (pi->pubpi.radiorev == 3)
17798 				tx_pwrctrl_tbl =
17799 					nphy_tpc_txgain_ipa_2g_2057rev3;
17800 			else if (pi->pubpi.radiorev == 5)
17801 				tx_pwrctrl_tbl =
17802 					nphy_tpc_txgain_ipa_2g_2057rev5;
17803 			else if ((pi->pubpi.radiorev == 7)
17804 				 || (pi->pubpi.radiorev == 8))
17805 				tx_pwrctrl_tbl =
17806 					nphy_tpc_txgain_ipa_2g_2057rev7;
17807 		} else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
17808 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
17809 			if (pi->sh->chip == BCMA_CHIP_ID_BCM47162)
17810 				tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
17811 		} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
17812 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
17813 		} else {
17814 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
17815 		}
17816 	} else {
17817 
17818 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17819 			if ((pi->pubpi.radiorev == 3) ||
17820 			    (pi->pubpi.radiorev == 4) ||
17821 			    (pi->pubpi.radiorev == 6))
17822 				tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
17823 			else if ((pi->pubpi.radiorev == 7)
17824 				 || (pi->pubpi.radiorev == 8))
17825 				tx_pwrctrl_tbl =
17826 					nphy_tpc_txgain_ipa_5g_2057rev7;
17827 		} else {
17828 			tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
17829 		}
17830 	}
17831 
17832 	return tx_pwrctrl_tbl;
17833 }
17834 
17835 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
17836 {
17837 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
17838 		if (pi->nphy_rssical_chanspec_2G == 0)
17839 			return;
17840 
17841 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17842 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
17843 				      RADIO_2057_VCM_MASK,
17844 				      pi->rssical_cache.
17845 				      rssical_radio_regs_2G[0]);
17846 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
17847 				      RADIO_2057_VCM_MASK,
17848 				      pi->rssical_cache.
17849 				      rssical_radio_regs_2G[1]);
17850 		} else {
17851 			mod_radio_reg(pi,
17852 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
17853 				      RADIO_2056_VCM_MASK,
17854 				      pi->rssical_cache.
17855 				      rssical_radio_regs_2G[0]);
17856 			mod_radio_reg(pi,
17857 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
17858 				      RADIO_2056_VCM_MASK,
17859 				      pi->rssical_cache.
17860 				      rssical_radio_regs_2G[1]);
17861 		}
17862 
17863 		write_phy_reg(pi, 0x1a6,
17864 			      pi->rssical_cache.rssical_phyregs_2G[0]);
17865 		write_phy_reg(pi, 0x1ac,
17866 			      pi->rssical_cache.rssical_phyregs_2G[1]);
17867 		write_phy_reg(pi, 0x1b2,
17868 			      pi->rssical_cache.rssical_phyregs_2G[2]);
17869 		write_phy_reg(pi, 0x1b8,
17870 			      pi->rssical_cache.rssical_phyregs_2G[3]);
17871 		write_phy_reg(pi, 0x1a4,
17872 			      pi->rssical_cache.rssical_phyregs_2G[4]);
17873 		write_phy_reg(pi, 0x1aa,
17874 			      pi->rssical_cache.rssical_phyregs_2G[5]);
17875 		write_phy_reg(pi, 0x1b0,
17876 			      pi->rssical_cache.rssical_phyregs_2G[6]);
17877 		write_phy_reg(pi, 0x1b6,
17878 			      pi->rssical_cache.rssical_phyregs_2G[7]);
17879 		write_phy_reg(pi, 0x1a5,
17880 			      pi->rssical_cache.rssical_phyregs_2G[8]);
17881 		write_phy_reg(pi, 0x1ab,
17882 			      pi->rssical_cache.rssical_phyregs_2G[9]);
17883 		write_phy_reg(pi, 0x1b1,
17884 			      pi->rssical_cache.rssical_phyregs_2G[10]);
17885 		write_phy_reg(pi, 0x1b7,
17886 			      pi->rssical_cache.rssical_phyregs_2G[11]);
17887 
17888 	} else {
17889 		if (pi->nphy_rssical_chanspec_5G == 0)
17890 			return;
17891 
17892 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17893 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
17894 				      RADIO_2057_VCM_MASK,
17895 				      pi->rssical_cache.
17896 				      rssical_radio_regs_5G[0]);
17897 			mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
17898 				      RADIO_2057_VCM_MASK,
17899 				      pi->rssical_cache.
17900 				      rssical_radio_regs_5G[1]);
17901 		} else {
17902 			mod_radio_reg(pi,
17903 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
17904 				      RADIO_2056_VCM_MASK,
17905 				      pi->rssical_cache.
17906 				      rssical_radio_regs_5G[0]);
17907 			mod_radio_reg(pi,
17908 				      RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
17909 				      RADIO_2056_VCM_MASK,
17910 				      pi->rssical_cache.
17911 				      rssical_radio_regs_5G[1]);
17912 		}
17913 
17914 		write_phy_reg(pi, 0x1a6,
17915 			      pi->rssical_cache.rssical_phyregs_5G[0]);
17916 		write_phy_reg(pi, 0x1ac,
17917 			      pi->rssical_cache.rssical_phyregs_5G[1]);
17918 		write_phy_reg(pi, 0x1b2,
17919 			      pi->rssical_cache.rssical_phyregs_5G[2]);
17920 		write_phy_reg(pi, 0x1b8,
17921 			      pi->rssical_cache.rssical_phyregs_5G[3]);
17922 		write_phy_reg(pi, 0x1a4,
17923 			      pi->rssical_cache.rssical_phyregs_5G[4]);
17924 		write_phy_reg(pi, 0x1aa,
17925 			      pi->rssical_cache.rssical_phyregs_5G[5]);
17926 		write_phy_reg(pi, 0x1b0,
17927 			      pi->rssical_cache.rssical_phyregs_5G[6]);
17928 		write_phy_reg(pi, 0x1b6,
17929 			      pi->rssical_cache.rssical_phyregs_5G[7]);
17930 		write_phy_reg(pi, 0x1a5,
17931 			      pi->rssical_cache.rssical_phyregs_5G[8]);
17932 		write_phy_reg(pi, 0x1ab,
17933 			      pi->rssical_cache.rssical_phyregs_5G[9]);
17934 		write_phy_reg(pi, 0x1b1,
17935 			      pi->rssical_cache.rssical_phyregs_5G[10]);
17936 		write_phy_reg(pi, 0x1b7,
17937 			      pi->rssical_cache.rssical_phyregs_5G[11]);
17938 	}
17939 }
17940 
17941 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
17942 {
17943 	u16 txcal_gain[2];
17944 
17945 	pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
17946 	pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
17947 	wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
17948 	wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
17949 
17950 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
17951 				txcal_gain);
17952 
17953 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
17954 		txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
17955 		txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
17956 	} else {
17957 		txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
17958 		txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
17959 	}
17960 
17961 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
17962 				 txcal_gain);
17963 }
17964 
17965 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
17966 {
17967 	bool save_bbmult = false;
17968 	u8 txcal_index_2057_rev5n7 = 0;
17969 	u8 txcal_index_2057_rev3n4n6 = 10;
17970 
17971 	if (pi->use_int_tx_iqlo_cal_nphy) {
17972 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17973 			if ((pi->pubpi.radiorev == 3) ||
17974 			    (pi->pubpi.radiorev == 4) ||
17975 			    (pi->pubpi.radiorev == 6)) {
17976 
17977 				pi->nphy_txcal_pwr_idx[0] =
17978 					txcal_index_2057_rev3n4n6;
17979 				pi->nphy_txcal_pwr_idx[1] =
17980 					txcal_index_2057_rev3n4n6;
17981 				wlc_phy_txpwr_index_nphy(
17982 					pi, 3,
17983 					txcal_index_2057_rev3n4n6,
17984 					false);
17985 			} else {
17986 
17987 				pi->nphy_txcal_pwr_idx[0] =
17988 					txcal_index_2057_rev5n7;
17989 				pi->nphy_txcal_pwr_idx[1] =
17990 					txcal_index_2057_rev5n7;
17991 				wlc_phy_txpwr_index_nphy(
17992 					pi, 3,
17993 					txcal_index_2057_rev5n7,
17994 					false);
17995 			}
17996 			save_bbmult = true;
17997 
17998 		} else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
17999 			wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18000 			if (pi->sh->hw_phytxchain != 3) {
18001 				pi->nphy_txcal_pwr_idx[1] =
18002 					pi->nphy_txcal_pwr_idx[0];
18003 				wlc_phy_txpwr_index_nphy(pi, 3,
18004 							 pi->
18005 							 nphy_txcal_pwr_idx[0],
18006 							 true);
18007 				save_bbmult = true;
18008 			}
18009 
18010 		} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18011 			if (PHY_IPA(pi)) {
18012 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
18013 					wlc_phy_cal_txgainctrl_nphy(pi, 12,
18014 								    false);
18015 				} else {
18016 					pi->nphy_txcal_pwr_idx[0] = 80;
18017 					pi->nphy_txcal_pwr_idx[1] = 80;
18018 					wlc_phy_txpwr_index_nphy(pi, 3, 80,
18019 								 false);
18020 					save_bbmult = true;
18021 				}
18022 			} else {
18023 				wlc_phy_internal_cal_txgain_nphy(pi);
18024 				save_bbmult = true;
18025 			}
18026 
18027 		} else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18028 			if (PHY_IPA(pi)) {
18029 				if (CHSPEC_IS2G(pi->radio_chanspec))
18030 					wlc_phy_cal_txgainctrl_nphy(pi, 12,
18031 								    false);
18032 				else
18033 					wlc_phy_cal_txgainctrl_nphy(pi, 14,
18034 								    false);
18035 			} else {
18036 				wlc_phy_internal_cal_txgain_nphy(pi);
18037 				save_bbmult = true;
18038 			}
18039 		}
18040 
18041 	} else {
18042 		wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18043 	}
18044 
18045 	if (save_bbmult)
18046 		wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18047 					&pi->nphy_txcal_bbmult);
18048 }
18049 
18050 static void
18051 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18052 				 u8 core_code)
18053 {
18054 	u16 mask;
18055 	u16 val;
18056 	u8 core;
18057 
18058 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18059 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18060 			if (core_code == RADIO_MIMO_CORESEL_CORE1
18061 			    && core == PHY_CORE_1)
18062 				continue;
18063 			else if (core_code == RADIO_MIMO_CORESEL_CORE2
18064 				 && core == PHY_CORE_0)
18065 				continue;
18066 
18067 			if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18068 
18069 				mask = (0x1 << 10);
18070 				val = 1 << 10;
18071 				mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18072 					    0x92, mask, val);
18073 			}
18074 
18075 			if (field == NPHY_RfctrlIntc_override_OFF) {
18076 
18077 				write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18078 					      0x92, 0);
18079 
18080 				wlc_phy_force_rfseq_nphy(pi,
18081 							 NPHY_RFSEQ_RESET2RX);
18082 			} else if (field == NPHY_RfctrlIntc_override_TRSW) {
18083 
18084 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18085 
18086 					mask = (0x1 << 6) | (0x1 << 7);
18087 
18088 					val = value << 6;
18089 					mod_phy_reg(pi,
18090 						    (core ==
18091 						     PHY_CORE_0) ? 0x91 : 0x92,
18092 						    mask, val);
18093 
18094 					or_phy_reg(pi,
18095 						   (core ==
18096 						    PHY_CORE_0) ? 0x91 : 0x92,
18097 						   (0x1 << 10));
18098 
18099 					and_phy_reg(pi, 0x2ff, (u16)
18100 						    ~(0x3 << 14));
18101 					or_phy_reg(pi, 0x2ff, (0x1 << 13));
18102 					or_phy_reg(pi, 0x2ff, (0x1 << 0));
18103 				} else {
18104 
18105 					mask = (0x1 << 6) |
18106 					       (0x1 << 7) |
18107 					       (0x1 << 8) | (0x1 << 9);
18108 					val = value << 6;
18109 					mod_phy_reg(pi,
18110 						    (core ==
18111 						     PHY_CORE_0) ? 0x91 : 0x92,
18112 						    mask, val);
18113 
18114 					mask = (0x1 << 0);
18115 					val = 1 << 0;
18116 					mod_phy_reg(pi,
18117 						    (core ==
18118 						     PHY_CORE_0) ? 0xe7 : 0xec,
18119 						    mask, val);
18120 
18121 					mask = (core == PHY_CORE_0) ?
18122 					       (0x1 << 0) : (0x1 << 1);
18123 					val = 1 << ((core == PHY_CORE_0) ?
18124 						    0 : 1);
18125 					mod_phy_reg(pi, 0x78, mask, val);
18126 
18127 					SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18128 						  != 0), 10000);
18129 					if (WARN(read_phy_reg(pi, 0x78) & val,
18130 						 "HW error: override failed"))
18131 						return;
18132 
18133 					mask = (0x1 << 0);
18134 					val = 0 << 0;
18135 					mod_phy_reg(pi,
18136 						    (core ==
18137 						     PHY_CORE_0) ? 0xe7 : 0xec,
18138 						    mask, val);
18139 				}
18140 			} else if (field == NPHY_RfctrlIntc_override_PA) {
18141 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18142 
18143 					mask = (0x1 << 4) | (0x1 << 5);
18144 
18145 					if (CHSPEC_IS5G(pi->radio_chanspec))
18146 						val = value << 5;
18147 					else
18148 						val = value << 4;
18149 
18150 					mod_phy_reg(pi,
18151 						    (core ==
18152 						     PHY_CORE_0) ? 0x91 : 0x92,
18153 						    mask, val);
18154 
18155 					or_phy_reg(pi,
18156 						   (core ==
18157 						    PHY_CORE_0) ? 0x91 : 0x92,
18158 						   (0x1 << 12));
18159 				} else {
18160 
18161 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18162 						mask = (0x1 << 5);
18163 						val = value << 5;
18164 					} else {
18165 						mask = (0x1 << 4);
18166 						val = value << 4;
18167 					}
18168 					mod_phy_reg(pi,
18169 						    (core ==
18170 						     PHY_CORE_0) ? 0x91 : 0x92,
18171 						    mask, val);
18172 				}
18173 			} else if (field ==
18174 				   NPHY_RfctrlIntc_override_EXT_LNA_PU) {
18175 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18176 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18177 
18178 						mask = (0x1 << 0);
18179 						val = value << 0;
18180 						mod_phy_reg(pi,
18181 							    (core ==
18182 							     PHY_CORE_0) ? 0x91
18183 							    : 0x92, mask, val);
18184 
18185 						mask = (0x1 << 2);
18186 						mod_phy_reg(pi,
18187 							    (core ==
18188 							     PHY_CORE_0) ? 0x91
18189 							    : 0x92, mask, 0);
18190 					} else {
18191 
18192 						mask = (0x1 << 2);
18193 						val = value << 2;
18194 						mod_phy_reg(pi,
18195 							    (core ==
18196 							     PHY_CORE_0) ? 0x91
18197 							    : 0x92, mask, val);
18198 
18199 						mask = (0x1 << 0);
18200 						mod_phy_reg(pi,
18201 							    (core ==
18202 							     PHY_CORE_0) ? 0x91
18203 							    : 0x92, mask, 0);
18204 					}
18205 
18206 					mask = (0x1 << 11);
18207 					val = 1 << 11;
18208 					mod_phy_reg(pi,
18209 						    (core ==
18210 						     PHY_CORE_0) ? 0x91 : 0x92,
18211 						    mask, val);
18212 				} else {
18213 
18214 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18215 						mask = (0x1 << 0);
18216 						val = value << 0;
18217 					} else {
18218 						mask = (0x1 << 2);
18219 						val = value << 2;
18220 					}
18221 					mod_phy_reg(pi,
18222 						    (core ==
18223 						     PHY_CORE_0) ? 0x91 : 0x92,
18224 						    mask, val);
18225 				}
18226 			} else if (field ==
18227 				   NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
18228 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18229 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18230 
18231 						mask = (0x1 << 1);
18232 						val = value << 1;
18233 						mod_phy_reg(pi,
18234 							    (core ==
18235 							     PHY_CORE_0) ? 0x91
18236 							    : 0x92, mask, val);
18237 
18238 						mask = (0x1 << 3);
18239 						mod_phy_reg(pi,
18240 							    (core ==
18241 							     PHY_CORE_0) ? 0x91
18242 							    : 0x92, mask, 0);
18243 					} else {
18244 
18245 						mask = (0x1 << 3);
18246 						val = value << 3;
18247 						mod_phy_reg(pi,
18248 							    (core ==
18249 							     PHY_CORE_0) ? 0x91
18250 							    : 0x92, mask, val);
18251 
18252 						mask = (0x1 << 1);
18253 						mod_phy_reg(pi,
18254 							    (core ==
18255 							     PHY_CORE_0) ? 0x91
18256 							    : 0x92, mask, 0);
18257 					}
18258 
18259 					mask = (0x1 << 11);
18260 					val = 1 << 11;
18261 					mod_phy_reg(pi,
18262 						    (core ==
18263 						     PHY_CORE_0) ? 0x91 : 0x92,
18264 						    mask, val);
18265 				} else {
18266 
18267 					if (CHSPEC_IS5G(pi->radio_chanspec)) {
18268 						mask = (0x1 << 1);
18269 						val = value << 1;
18270 					} else {
18271 						mask = (0x1 << 3);
18272 						val = value << 3;
18273 					}
18274 					mod_phy_reg(pi,
18275 						    (core ==
18276 						     PHY_CORE_0) ? 0x91 : 0x92,
18277 						    mask, val);
18278 				}
18279 			}
18280 		}
18281 	}
18282 }
18283 
18284 void
18285 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18286 			    bool debug)
18287 {
18288 	int gainctrl_loopidx;
18289 	uint core;
18290 	u16 m0m1, curr_m0m1;
18291 	s32 delta_power;
18292 	s32 txpwrindex;
18293 	s32 qdBm_power[2];
18294 	u16 orig_BBConfig;
18295 	u16 phy_saveregs[4];
18296 	u32 freq_test;
18297 	u16 ampl_test = 250;
18298 	uint stepsize;
18299 	bool phyhang_avoid_state = false;
18300 
18301 	if (NREV_GE(pi->pubpi.phy_rev, 7))
18302 		stepsize = 2;
18303 	else
18304 		stepsize = 1;
18305 
18306 	if (CHSPEC_IS40(pi->radio_chanspec))
18307 		freq_test = 5000;
18308 	else
18309 		freq_test = 2500;
18310 
18311 	wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18312 	wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18313 
18314 	if (pi->phyhang_avoid)
18315 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
18316 
18317 	phyhang_avoid_state = pi->phyhang_avoid;
18318 	pi->phyhang_avoid = false;
18319 
18320 	phy_saveregs[0] = read_phy_reg(pi, 0x91);
18321 	phy_saveregs[1] = read_phy_reg(pi, 0x92);
18322 	phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18323 	phy_saveregs[3] = read_phy_reg(pi, 0xec);
18324 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18325 					 RADIO_MIMO_CORESEL_CORE1 |
18326 					 RADIO_MIMO_CORESEL_CORE2);
18327 
18328 	if (!debug) {
18329 		wlc_phy_rfctrlintc_override_nphy(pi,
18330 						 NPHY_RfctrlIntc_override_TRSW,
18331 						 0x2, RADIO_MIMO_CORESEL_CORE1);
18332 		wlc_phy_rfctrlintc_override_nphy(pi,
18333 						 NPHY_RfctrlIntc_override_TRSW,
18334 						 0x8, RADIO_MIMO_CORESEL_CORE2);
18335 	} else {
18336 		wlc_phy_rfctrlintc_override_nphy(pi,
18337 						 NPHY_RfctrlIntc_override_TRSW,
18338 						 0x1, RADIO_MIMO_CORESEL_CORE1);
18339 		wlc_phy_rfctrlintc_override_nphy(pi,
18340 						 NPHY_RfctrlIntc_override_TRSW,
18341 						 0x7, RADIO_MIMO_CORESEL_CORE2);
18342 	}
18343 
18344 	orig_BBConfig = read_phy_reg(pi, 0x01);
18345 	mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18346 
18347 	wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18348 
18349 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18350 		txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18351 
18352 		for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18353 		     gainctrl_loopidx++) {
18354 			wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18355 					     false);
18356 
18357 			if (core == PHY_CORE_0)
18358 				curr_m0m1 = m0m1 & 0xff00;
18359 			else
18360 				curr_m0m1 = m0m1 & 0x00ff;
18361 
18362 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18363 			wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18364 
18365 			udelay(50);
18366 
18367 			wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18368 						 NPHY_CAL_TSSISAMPS);
18369 
18370 			pi->nphy_bb_mult_save = 0;
18371 			wlc_phy_stopplayback_nphy(pi);
18372 
18373 			delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18374 
18375 			txpwrindex -= stepsize * delta_power;
18376 			if (txpwrindex < 0)
18377 				txpwrindex = 0;
18378 			else if (txpwrindex > 127)
18379 				txpwrindex = 127;
18380 
18381 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
18382 				if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18383 				    (pi->srom_fem5g.extpagain == 3)) {
18384 					if (txpwrindex < 30)
18385 						txpwrindex = 30;
18386 				}
18387 			} else {
18388 				if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18389 				    (pi->srom_fem2g.extpagain == 3)) {
18390 					if (txpwrindex < 50)
18391 						txpwrindex = 50;
18392 				}
18393 			}
18394 
18395 			wlc_phy_txpwr_index_nphy(pi, (1 << core),
18396 						 (u8) txpwrindex, true);
18397 		}
18398 
18399 		pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18400 
18401 		if (debug) {
18402 			u16 radio_gain;
18403 			u16 dbg_m0m1;
18404 
18405 			wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18406 
18407 			wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18408 					     false);
18409 
18410 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18411 			wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18412 
18413 			udelay(100);
18414 
18415 			wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18416 						 NPHY_CAL_TSSISAMPS);
18417 
18418 			wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18419 						&radio_gain);
18420 
18421 			mdelay(4000);
18422 			pi->nphy_bb_mult_save = 0;
18423 			wlc_phy_stopplayback_nphy(pi);
18424 		}
18425 	}
18426 
18427 	wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18428 	wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18429 
18430 	wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18431 
18432 	write_phy_reg(pi, 0x01, orig_BBConfig);
18433 
18434 	write_phy_reg(pi, 0x91, phy_saveregs[0]);
18435 	write_phy_reg(pi, 0x92, phy_saveregs[1]);
18436 	write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18437 	write_phy_reg(pi, 0xec, phy_saveregs[3]);
18438 
18439 	pi->phyhang_avoid = phyhang_avoid_state;
18440 
18441 	if (pi->phyhang_avoid)
18442 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
18443 }
18444 
18445 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18446 {
18447 	void *tbl_ptr;
18448 	int coreNum;
18449 	u16 *txcal_radio_regs = NULL;
18450 
18451 	if (pi->phyhang_avoid)
18452 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
18453 
18454 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
18455 
18456 		wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18457 					  &pi->calibration_cache.
18458 					  rxcal_coeffs_2G);
18459 
18460 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18461 			txcal_radio_regs =
18462 				pi->calibration_cache.txcal_radio_regs_2G;
18463 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18464 
18465 			pi->calibration_cache.txcal_radio_regs_2G[0] =
18466 				read_radio_reg(pi,
18467 					       RADIO_2056_TX_LOFT_FINE_I |
18468 					       RADIO_2056_TX0);
18469 			pi->calibration_cache.txcal_radio_regs_2G[1] =
18470 				read_radio_reg(pi,
18471 					       RADIO_2056_TX_LOFT_FINE_Q |
18472 					       RADIO_2056_TX0);
18473 			pi->calibration_cache.txcal_radio_regs_2G[2] =
18474 				read_radio_reg(pi,
18475 					       RADIO_2056_TX_LOFT_FINE_I |
18476 					       RADIO_2056_TX1);
18477 			pi->calibration_cache.txcal_radio_regs_2G[3] =
18478 				read_radio_reg(pi,
18479 					       RADIO_2056_TX_LOFT_FINE_Q |
18480 					       RADIO_2056_TX1);
18481 
18482 			pi->calibration_cache.txcal_radio_regs_2G[4] =
18483 				read_radio_reg(pi,
18484 					       RADIO_2056_TX_LOFT_COARSE_I |
18485 					       RADIO_2056_TX0);
18486 			pi->calibration_cache.txcal_radio_regs_2G[5] =
18487 				read_radio_reg(pi,
18488 					       RADIO_2056_TX_LOFT_COARSE_Q |
18489 					       RADIO_2056_TX0);
18490 			pi->calibration_cache.txcal_radio_regs_2G[6] =
18491 				read_radio_reg(pi,
18492 					       RADIO_2056_TX_LOFT_COARSE_I |
18493 					       RADIO_2056_TX1);
18494 			pi->calibration_cache.txcal_radio_regs_2G[7] =
18495 				read_radio_reg(pi,
18496 					       RADIO_2056_TX_LOFT_COARSE_Q |
18497 					       RADIO_2056_TX1);
18498 		} else {
18499 			pi->calibration_cache.txcal_radio_regs_2G[0] =
18500 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18501 			pi->calibration_cache.txcal_radio_regs_2G[1] =
18502 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18503 			pi->calibration_cache.txcal_radio_regs_2G[2] =
18504 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18505 			pi->calibration_cache.txcal_radio_regs_2G[3] =
18506 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18507 		}
18508 
18509 		pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
18510 		tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18511 	} else {
18512 
18513 		wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18514 					  &pi->calibration_cache.
18515 					  rxcal_coeffs_5G);
18516 
18517 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18518 			txcal_radio_regs =
18519 				pi->calibration_cache.txcal_radio_regs_5G;
18520 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18521 
18522 			pi->calibration_cache.txcal_radio_regs_5G[0] =
18523 				read_radio_reg(pi,
18524 					       RADIO_2056_TX_LOFT_FINE_I |
18525 					       RADIO_2056_TX0);
18526 			pi->calibration_cache.txcal_radio_regs_5G[1] =
18527 				read_radio_reg(pi,
18528 					       RADIO_2056_TX_LOFT_FINE_Q |
18529 					       RADIO_2056_TX0);
18530 			pi->calibration_cache.txcal_radio_regs_5G[2] =
18531 				read_radio_reg(pi,
18532 					       RADIO_2056_TX_LOFT_FINE_I |
18533 					       RADIO_2056_TX1);
18534 			pi->calibration_cache.txcal_radio_regs_5G[3] =
18535 				read_radio_reg(pi,
18536 					       RADIO_2056_TX_LOFT_FINE_Q |
18537 					       RADIO_2056_TX1);
18538 
18539 			pi->calibration_cache.txcal_radio_regs_5G[4] =
18540 				read_radio_reg(pi,
18541 					       RADIO_2056_TX_LOFT_COARSE_I |
18542 					       RADIO_2056_TX0);
18543 			pi->calibration_cache.txcal_radio_regs_5G[5] =
18544 				read_radio_reg(pi,
18545 					       RADIO_2056_TX_LOFT_COARSE_Q |
18546 					       RADIO_2056_TX0);
18547 			pi->calibration_cache.txcal_radio_regs_5G[6] =
18548 				read_radio_reg(pi,
18549 					       RADIO_2056_TX_LOFT_COARSE_I |
18550 					       RADIO_2056_TX1);
18551 			pi->calibration_cache.txcal_radio_regs_5G[7] =
18552 				read_radio_reg(pi,
18553 					       RADIO_2056_TX_LOFT_COARSE_Q |
18554 					       RADIO_2056_TX1);
18555 		} else {
18556 			pi->calibration_cache.txcal_radio_regs_5G[0] =
18557 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18558 			pi->calibration_cache.txcal_radio_regs_5G[1] =
18559 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18560 			pi->calibration_cache.txcal_radio_regs_5G[2] =
18561 			       read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18562 			pi->calibration_cache.txcal_radio_regs_5G[3] =
18563 			       read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18564 		}
18565 
18566 		pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
18567 		tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18568 	}
18569 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18570 		for (coreNum = 0; coreNum <= 1; coreNum++) {
18571 
18572 			txcal_radio_regs[2 * coreNum] =
18573 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18574 						LOFT_FINE_I);
18575 			txcal_radio_regs[2 * coreNum + 1] =
18576 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18577 						LOFT_FINE_Q);
18578 
18579 			txcal_radio_regs[2 * coreNum + 4] =
18580 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18581 						LOFT_COARSE_I);
18582 			txcal_radio_regs[2 * coreNum + 5] =
18583 				READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18584 						LOFT_COARSE_Q);
18585 		}
18586 	}
18587 
18588 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18589 
18590 	if (pi->phyhang_avoid)
18591 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
18592 }
18593 
18594 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18595 {
18596 	struct nphy_iq_comp tx_comp;
18597 
18598 	wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18599 
18600 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18601 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18602 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18603 	wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18604 }
18605 
18606 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18607 {
18608 	u16 *loft_comp;
18609 	u16 txcal_coeffs_bphy[4];
18610 	u16 *tbl_ptr;
18611 	int coreNum;
18612 	u16 *txcal_radio_regs = NULL;
18613 
18614 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
18615 		if (pi->nphy_iqcal_chanspec_2G == 0)
18616 			return;
18617 
18618 		tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18619 		loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18620 	} else {
18621 		if (pi->nphy_iqcal_chanspec_5G == 0)
18622 			return;
18623 
18624 		tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18625 		loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18626 	}
18627 
18628 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18629 
18630 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18631 		txcal_coeffs_bphy[0] = tbl_ptr[0];
18632 		txcal_coeffs_bphy[1] = tbl_ptr[1];
18633 		txcal_coeffs_bphy[2] = tbl_ptr[2];
18634 		txcal_coeffs_bphy[3] = tbl_ptr[3];
18635 	} else {
18636 		txcal_coeffs_bphy[0] = 0;
18637 		txcal_coeffs_bphy[1] = 0;
18638 		txcal_coeffs_bphy[2] = 0;
18639 		txcal_coeffs_bphy[3] = 0;
18640 	}
18641 
18642 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
18643 				 txcal_coeffs_bphy);
18644 
18645 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18646 
18647 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18648 
18649 	if (NREV_LT(pi->pubpi.phy_rev, 2))
18650 		wlc_phy_tx_iq_war_nphy(pi);
18651 
18652 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
18653 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18654 			txcal_radio_regs =
18655 				pi->calibration_cache.txcal_radio_regs_2G;
18656 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18657 
18658 			write_radio_reg(pi,
18659 					RADIO_2056_TX_LOFT_FINE_I |
18660 					RADIO_2056_TX0,
18661 					pi->calibration_cache.
18662 					txcal_radio_regs_2G[0]);
18663 			write_radio_reg(pi,
18664 					RADIO_2056_TX_LOFT_FINE_Q |
18665 					RADIO_2056_TX0,
18666 					pi->calibration_cache.
18667 					txcal_radio_regs_2G[1]);
18668 			write_radio_reg(pi,
18669 					RADIO_2056_TX_LOFT_FINE_I |
18670 					RADIO_2056_TX1,
18671 					pi->calibration_cache.
18672 					txcal_radio_regs_2G[2]);
18673 			write_radio_reg(pi,
18674 					RADIO_2056_TX_LOFT_FINE_Q |
18675 					RADIO_2056_TX1,
18676 					pi->calibration_cache.
18677 					txcal_radio_regs_2G[3]);
18678 
18679 			write_radio_reg(pi,
18680 					RADIO_2056_TX_LOFT_COARSE_I |
18681 					RADIO_2056_TX0,
18682 					pi->calibration_cache.
18683 					txcal_radio_regs_2G[4]);
18684 			write_radio_reg(pi,
18685 					RADIO_2056_TX_LOFT_COARSE_Q |
18686 					RADIO_2056_TX0,
18687 					pi->calibration_cache.
18688 					txcal_radio_regs_2G[5]);
18689 			write_radio_reg(pi,
18690 					RADIO_2056_TX_LOFT_COARSE_I |
18691 					RADIO_2056_TX1,
18692 					pi->calibration_cache.
18693 					txcal_radio_regs_2G[6]);
18694 			write_radio_reg(pi,
18695 					RADIO_2056_TX_LOFT_COARSE_Q |
18696 					RADIO_2056_TX1,
18697 					pi->calibration_cache.
18698 					txcal_radio_regs_2G[7]);
18699 		} else {
18700 			write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18701 					pi->calibration_cache.
18702 					txcal_radio_regs_2G[0]);
18703 			write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18704 					pi->calibration_cache.
18705 					txcal_radio_regs_2G[1]);
18706 			write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18707 					pi->calibration_cache.
18708 					txcal_radio_regs_2G[2]);
18709 			write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18710 					pi->calibration_cache.
18711 					txcal_radio_regs_2G[3]);
18712 		}
18713 
18714 		wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18715 					  &pi->calibration_cache.
18716 					  rxcal_coeffs_2G);
18717 	} else {
18718 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18719 			txcal_radio_regs =
18720 				pi->calibration_cache.txcal_radio_regs_5G;
18721 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18722 
18723 			write_radio_reg(pi,
18724 					RADIO_2056_TX_LOFT_FINE_I |
18725 					RADIO_2056_TX0,
18726 					pi->calibration_cache.
18727 					txcal_radio_regs_5G[0]);
18728 			write_radio_reg(pi,
18729 					RADIO_2056_TX_LOFT_FINE_Q |
18730 					RADIO_2056_TX0,
18731 					pi->calibration_cache.
18732 					txcal_radio_regs_5G[1]);
18733 			write_radio_reg(pi,
18734 					RADIO_2056_TX_LOFT_FINE_I |
18735 					RADIO_2056_TX1,
18736 					pi->calibration_cache.
18737 					txcal_radio_regs_5G[2]);
18738 			write_radio_reg(pi,
18739 					RADIO_2056_TX_LOFT_FINE_Q |
18740 					RADIO_2056_TX1,
18741 					pi->calibration_cache.
18742 					txcal_radio_regs_5G[3]);
18743 
18744 			write_radio_reg(pi,
18745 					RADIO_2056_TX_LOFT_COARSE_I |
18746 					RADIO_2056_TX0,
18747 					pi->calibration_cache.
18748 					txcal_radio_regs_5G[4]);
18749 			write_radio_reg(pi,
18750 					RADIO_2056_TX_LOFT_COARSE_Q |
18751 					RADIO_2056_TX0,
18752 					pi->calibration_cache.
18753 					txcal_radio_regs_5G[5]);
18754 			write_radio_reg(pi,
18755 					RADIO_2056_TX_LOFT_COARSE_I |
18756 					RADIO_2056_TX1,
18757 					pi->calibration_cache.
18758 					txcal_radio_regs_5G[6]);
18759 			write_radio_reg(pi,
18760 					RADIO_2056_TX_LOFT_COARSE_Q |
18761 					RADIO_2056_TX1,
18762 					pi->calibration_cache.
18763 					txcal_radio_regs_5G[7]);
18764 		} else {
18765 			write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18766 					pi->calibration_cache.
18767 					txcal_radio_regs_5G[0]);
18768 			write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18769 					pi->calibration_cache.
18770 					txcal_radio_regs_5G[1]);
18771 			write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18772 					pi->calibration_cache.
18773 					txcal_radio_regs_5G[2]);
18774 			write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18775 					pi->calibration_cache.
18776 					txcal_radio_regs_5G[3]);
18777 		}
18778 
18779 		wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18780 					  &pi->calibration_cache.
18781 					  rxcal_coeffs_5G);
18782 	}
18783 
18784 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18785 		for (coreNum = 0; coreNum <= 1; coreNum++) {
18786 
18787 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18788 					 LOFT_FINE_I,
18789 					 txcal_radio_regs[2 * coreNum]);
18790 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18791 					 LOFT_FINE_Q,
18792 					 txcal_radio_regs[2 * coreNum + 1]);
18793 
18794 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18795 					 LOFT_COARSE_I,
18796 					 txcal_radio_regs[2 * coreNum + 4]);
18797 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18798 					 LOFT_COARSE_Q,
18799 					 txcal_radio_regs[2 * coreNum + 5]);
18800 		}
18801 	}
18802 }
18803 
18804 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
18805 {
18806 	u32 idx;
18807 	u16 iqloCalbuf[7];
18808 	u32 iqcomp, locomp, curr_locomp;
18809 	s8 locomp_i, locomp_q;
18810 	s8 curr_locomp_i, curr_locomp_q;
18811 	u32 tbl_id, tbl_len, tbl_offset;
18812 	u32 regval[128];
18813 
18814 	if (pi->phyhang_avoid)
18815 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
18816 
18817 	wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
18818 
18819 	tbl_len = 128;
18820 	tbl_offset = 320;
18821 	for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18822 	     tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18823 		iqcomp =
18824 			(tbl_id ==
18825 			 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
18826 			(iqloCalbuf[1] & 0x3ff)
18827 			: (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
18828 			(iqloCalbuf[3] & 0x3ff);
18829 
18830 		for (idx = 0; idx < tbl_len; idx++)
18831 			regval[idx] = iqcomp;
18832 		wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18833 					 regval);
18834 	}
18835 
18836 	tbl_offset = 448;
18837 	for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18838 	     tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18839 
18840 		locomp =
18841 			(u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
18842 		locomp_i = (s8) ((locomp >> 8) & 0xff);
18843 		locomp_q = (s8) ((locomp) & 0xff);
18844 		for (idx = 0; idx < tbl_len; idx++) {
18845 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18846 				curr_locomp_i = locomp_i;
18847 				curr_locomp_q = locomp_q;
18848 			} else {
18849 				curr_locomp_i = (s8) ((locomp_i *
18850 						       nphy_tpc_loscale[idx] +
18851 						       128) >> 8);
18852 				curr_locomp_q =
18853 					(s8) ((locomp_q *
18854 					       nphy_tpc_loscale[idx] +
18855 					       128) >> 8);
18856 			}
18857 			curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
18858 			curr_locomp |= (u32) (curr_locomp_q & 0xff);
18859 			regval[idx] = curr_locomp;
18860 		}
18861 		wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18862 					 regval);
18863 	}
18864 
18865 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
18866 
18867 		wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
18868 		wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
18869 	}
18870 
18871 	if (pi->phyhang_avoid)
18872 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
18873 }
18874 
18875 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
18876 {
18877 	u8 tx_lpf_bw = 0;
18878 
18879 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18880 		if (CHSPEC_IS40(pi->radio_chanspec))
18881 			tx_lpf_bw = 3;
18882 		else
18883 			tx_lpf_bw = 1;
18884 
18885 		if (PHY_IPA(pi)) {
18886 			if (CHSPEC_IS40(pi->radio_chanspec))
18887 				tx_lpf_bw = 5;
18888 			else
18889 				tx_lpf_bw = 4;
18890 		}
18891 
18892 		write_phy_reg(pi, 0xe8,
18893 			      (tx_lpf_bw << 0) |
18894 			      (tx_lpf_bw << 3) |
18895 			      (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18896 
18897 		if (PHY_IPA(pi)) {
18898 
18899 			if (CHSPEC_IS40(pi->radio_chanspec))
18900 				tx_lpf_bw = 4;
18901 			else
18902 				tx_lpf_bw = 1;
18903 
18904 			write_phy_reg(pi, 0xe9,
18905 				      (tx_lpf_bw << 0) |
18906 				      (tx_lpf_bw << 3) |
18907 				      (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18908 		}
18909 	}
18910 }
18911 
18912 static void
18913 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
18914 {
18915 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18916 		if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18917 		    CHSPEC_IS40(pi->radio_chanspec)) {
18918 			if (!pi->nphy_anarxlpf_adjusted) {
18919 				write_radio_reg(pi,
18920 						(RADIO_2056_RX_RXLPF_RCCAL_LPC |
18921 						 RADIO_2056_RX0),
18922 						((pi->nphy_rccal_value +
18923 						  reduction_factr) | 0x80));
18924 
18925 				pi->nphy_anarxlpf_adjusted = true;
18926 			}
18927 		} else {
18928 			if (pi->nphy_anarxlpf_adjusted) {
18929 				write_radio_reg(pi,
18930 						(RADIO_2056_RX_RXLPF_RCCAL_LPC |
18931 						 RADIO_2056_RX0),
18932 						(pi->nphy_rccal_value | 0x80));
18933 
18934 				pi->nphy_anarxlpf_adjusted = false;
18935 			}
18936 		}
18937 	}
18938 }
18939 
18940 static void
18941 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
18942 				 int *tone_id_buf, u32 *noise_var_buf)
18943 {
18944 	int i;
18945 	u32 offset;
18946 	int tone_id;
18947 	int tbllen =
18948 		CHSPEC_IS40(pi->radio_chanspec) ?
18949 		NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
18950 
18951 	if (pi->nphy_noisevars_adjusted) {
18952 		for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18953 			tone_id = pi->nphy_saved_noisevars.tone_id[i];
18954 			offset = (tone_id >= 0) ?
18955 				 ((tone_id *
18956 				   2) + 1) : (tbllen + (tone_id * 2) + 1);
18957 			wlc_phy_table_write_nphy(
18958 				pi, NPHY_TBL_ID_NOISEVAR, 1,
18959 				offset, 32,
18960 				&pi->nphy_saved_noisevars.min_noise_vars[i]);
18961 		}
18962 
18963 		pi->nphy_saved_noisevars.bufcount = 0;
18964 		pi->nphy_noisevars_adjusted = false;
18965 	}
18966 
18967 	if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18968 		pi->nphy_saved_noisevars.bufcount = 0;
18969 
18970 		for (i = 0; i < ntones; i++) {
18971 			tone_id = tone_id_buf[i];
18972 			offset = (tone_id >= 0) ?
18973 				 ((tone_id * 2) + 1) :
18974 				 (tbllen + (tone_id * 2) + 1);
18975 			pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18976 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18977 						offset, 32,
18978 						&pi->nphy_saved_noisevars.
18979 						min_noise_vars[i]);
18980 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18981 						 offset, 32, &noise_var_buf[i]);
18982 			pi->nphy_saved_noisevars.bufcount++;
18983 		}
18984 
18985 		pi->nphy_noisevars_adjusted = true;
18986 	}
18987 }
18988 
18989 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
18990 {
18991 	u16 regval;
18992 
18993 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18994 		if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18995 		    CHSPEC_IS40(pi->radio_chanspec)) {
18996 			if (!pi->nphy_crsminpwr_adjusted) {
18997 				regval = read_phy_reg(pi, 0x27d);
18998 				pi->nphy_crsminpwr[0] = regval & 0xff;
18999 				regval &= 0xff00;
19000 				regval |= (u16) minpwr;
19001 				write_phy_reg(pi, 0x27d, regval);
19002 
19003 				regval = read_phy_reg(pi, 0x280);
19004 				pi->nphy_crsminpwr[1] = regval & 0xff;
19005 				regval &= 0xff00;
19006 				regval |= (u16) minpwr;
19007 				write_phy_reg(pi, 0x280, regval);
19008 
19009 				regval = read_phy_reg(pi, 0x283);
19010 				pi->nphy_crsminpwr[2] = regval & 0xff;
19011 				regval &= 0xff00;
19012 				regval |= (u16) minpwr;
19013 				write_phy_reg(pi, 0x283, regval);
19014 
19015 				pi->nphy_crsminpwr_adjusted = true;
19016 			}
19017 		} else {
19018 			if (pi->nphy_crsminpwr_adjusted) {
19019 				regval = read_phy_reg(pi, 0x27d);
19020 				regval &= 0xff00;
19021 				regval |= pi->nphy_crsminpwr[0];
19022 				write_phy_reg(pi, 0x27d, regval);
19023 
19024 				regval = read_phy_reg(pi, 0x280);
19025 				regval &= 0xff00;
19026 				regval |= pi->nphy_crsminpwr[1];
19027 				write_phy_reg(pi, 0x280, regval);
19028 
19029 				regval = read_phy_reg(pi, 0x283);
19030 				regval &= 0xff00;
19031 				regval |= pi->nphy_crsminpwr[2];
19032 				write_phy_reg(pi, 0x283, regval);
19033 
19034 				pi->nphy_crsminpwr_adjusted = false;
19035 			}
19036 		}
19037 	}
19038 }
19039 
19040 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19041 {
19042 	u16 cur_channel = 0;
19043 	int nphy_adj_tone_id_buf[] = { 57, 58 };
19044 	u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19045 	bool isAdjustNoiseVar = false;
19046 	uint numTonesAdjust = 0;
19047 	u32 tempval = 0;
19048 
19049 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19050 		if (pi->phyhang_avoid)
19051 			wlc_phy_stay_in_carriersearch_nphy(pi, true);
19052 
19053 		cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19054 
19055 		if (pi->nphy_gband_spurwar_en) {
19056 
19057 			wlc_phy_adjust_rx_analpfbw_nphy(
19058 				pi,
19059 				NPHY_ANARXLPFBW_REDUCTIONFACT);
19060 
19061 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
19062 				if ((cur_channel == 11)
19063 				    && CHSPEC_IS40(pi->radio_chanspec))
19064 					wlc_phy_adjust_min_noisevar_nphy(
19065 						pi, 2,
19066 						nphy_adj_tone_id_buf,
19067 						nphy_adj_noise_var_buf);
19068 				else
19069 					wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19070 									 NULL,
19071 									 NULL);
19072 			}
19073 
19074 			wlc_phy_adjust_crsminpwr_nphy(pi,
19075 						     NPHY_ADJUSTED_MINCRSPOWER);
19076 		}
19077 
19078 		if ((pi->nphy_gband_spurwar2_en)
19079 		    && CHSPEC_IS2G(pi->radio_chanspec)) {
19080 
19081 			if (CHSPEC_IS40(pi->radio_chanspec)) {
19082 				switch (cur_channel) {
19083 				case 3:
19084 					nphy_adj_tone_id_buf[0] = 57;
19085 					nphy_adj_tone_id_buf[1] = 58;
19086 					nphy_adj_noise_var_buf[0] = 0x22f;
19087 					nphy_adj_noise_var_buf[1] = 0x25f;
19088 					isAdjustNoiseVar = true;
19089 					break;
19090 				case 4:
19091 					nphy_adj_tone_id_buf[0] = 41;
19092 					nphy_adj_tone_id_buf[1] = 42;
19093 					nphy_adj_noise_var_buf[0] = 0x22f;
19094 					nphy_adj_noise_var_buf[1] = 0x25f;
19095 					isAdjustNoiseVar = true;
19096 					break;
19097 				case 5:
19098 					nphy_adj_tone_id_buf[0] = 25;
19099 					nphy_adj_tone_id_buf[1] = 26;
19100 					nphy_adj_noise_var_buf[0] = 0x24f;
19101 					nphy_adj_noise_var_buf[1] = 0x25f;
19102 					isAdjustNoiseVar = true;
19103 					break;
19104 				case 6:
19105 					nphy_adj_tone_id_buf[0] = 9;
19106 					nphy_adj_tone_id_buf[1] = 10;
19107 					nphy_adj_noise_var_buf[0] = 0x22f;
19108 					nphy_adj_noise_var_buf[1] = 0x24f;
19109 					isAdjustNoiseVar = true;
19110 					break;
19111 				case 7:
19112 					nphy_adj_tone_id_buf[0] = 121;
19113 					nphy_adj_tone_id_buf[1] = 122;
19114 					nphy_adj_noise_var_buf[0] = 0x18f;
19115 					nphy_adj_noise_var_buf[1] = 0x24f;
19116 					isAdjustNoiseVar = true;
19117 					break;
19118 				case 8:
19119 					nphy_adj_tone_id_buf[0] = 105;
19120 					nphy_adj_tone_id_buf[1] = 106;
19121 					nphy_adj_noise_var_buf[0] = 0x22f;
19122 					nphy_adj_noise_var_buf[1] = 0x25f;
19123 					isAdjustNoiseVar = true;
19124 					break;
19125 				case 9:
19126 					nphy_adj_tone_id_buf[0] = 89;
19127 					nphy_adj_tone_id_buf[1] = 90;
19128 					nphy_adj_noise_var_buf[0] = 0x22f;
19129 					nphy_adj_noise_var_buf[1] = 0x24f;
19130 					isAdjustNoiseVar = true;
19131 					break;
19132 				case 10:
19133 					nphy_adj_tone_id_buf[0] = 73;
19134 					nphy_adj_tone_id_buf[1] = 74;
19135 					nphy_adj_noise_var_buf[0] = 0x22f;
19136 					nphy_adj_noise_var_buf[1] = 0x24f;
19137 					isAdjustNoiseVar = true;
19138 					break;
19139 				default:
19140 					isAdjustNoiseVar = false;
19141 					break;
19142 				}
19143 			}
19144 
19145 			if (isAdjustNoiseVar) {
19146 				numTonesAdjust = ARRAY_SIZE(nphy_adj_tone_id_buf);
19147 
19148 				wlc_phy_adjust_min_noisevar_nphy(
19149 					pi,
19150 					numTonesAdjust,
19151 					nphy_adj_tone_id_buf,
19152 					nphy_adj_noise_var_buf);
19153 
19154 				tempval = 0;
19155 
19156 			} else {
19157 				wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19158 								 NULL);
19159 			}
19160 		}
19161 
19162 		if ((pi->nphy_aband_spurwar_en) &&
19163 		    (CHSPEC_IS5G(pi->radio_chanspec))) {
19164 			switch (cur_channel) {
19165 			case 54:
19166 				nphy_adj_tone_id_buf[0] = 32;
19167 				nphy_adj_noise_var_buf[0] = 0x25f;
19168 				break;
19169 			case 38:
19170 			case 102:
19171 			case 118:
19172 				if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) &&
19173 				    (pi->sh->chippkg == BCMA_PKG_ID_BCM4717)) {
19174 					nphy_adj_tone_id_buf[0] = 32;
19175 					nphy_adj_noise_var_buf[0] = 0x21f;
19176 				} else {
19177 					nphy_adj_tone_id_buf[0] = 0;
19178 					nphy_adj_noise_var_buf[0] = 0x0;
19179 				}
19180 				break;
19181 			case 134:
19182 				nphy_adj_tone_id_buf[0] = 32;
19183 				nphy_adj_noise_var_buf[0] = 0x21f;
19184 				break;
19185 			case 151:
19186 				nphy_adj_tone_id_buf[0] = 16;
19187 				nphy_adj_noise_var_buf[0] = 0x23f;
19188 				break;
19189 			case 153:
19190 			case 161:
19191 				nphy_adj_tone_id_buf[0] = 48;
19192 				nphy_adj_noise_var_buf[0] = 0x23f;
19193 				break;
19194 			default:
19195 				nphy_adj_tone_id_buf[0] = 0;
19196 				nphy_adj_noise_var_buf[0] = 0x0;
19197 				break;
19198 			}
19199 
19200 			if (nphy_adj_tone_id_buf[0]
19201 			    && nphy_adj_noise_var_buf[0])
19202 				wlc_phy_adjust_min_noisevar_nphy(
19203 					pi, 1,
19204 					nphy_adj_tone_id_buf,
19205 					nphy_adj_noise_var_buf);
19206 			else
19207 				wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19208 								 NULL);
19209 		}
19210 
19211 		if (pi->phyhang_avoid)
19212 			wlc_phy_stay_in_carriersearch_nphy(pi, false);
19213 	}
19214 }
19215 
19216 void wlc_phy_init_nphy(struct brcms_phy *pi)
19217 {
19218 	u16 val;
19219 	u16 clip1_ths[2];
19220 	struct nphy_txgains target_gain;
19221 	u8 tx_pwr_ctrl_state;
19222 	bool do_nphy_cal = false;
19223 	uint core;
19224 	u32 d11_clk_ctl_st;
19225 	bool do_rssi_cal = false;
19226 
19227 	core = 0;
19228 
19229 	if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19230 		pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
19231 
19232 	if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19233 	    ((pi->sh->chippkg == BCMA_PKG_ID_BCM4717) ||
19234 	     (pi->sh->chippkg == BCMA_PKG_ID_BCM4718))) {
19235 		if ((pi->sh->boardflags & BFL_EXTLNA) &&
19236 		    (CHSPEC_IS2G(pi->radio_chanspec)))
19237 			bcma_cc_set32(&pi->d11core->bus->drv_cc,
19238 				      BCMA_CC_CHIPCTL, 0x40);
19239 	}
19240 
19241 	if ((!PHY_IPA(pi)) && (pi->sh->chip == BCMA_CHIP_ID_BCM5357))
19242 		bcma_chipco_chipctl_maskset(&pi->d11core->bus->drv_cc, 1,
19243 					    ~CCTRL5357_EXTPA, CCTRL5357_EXTPA);
19244 
19245 	if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
19246 	    CHSPEC_IS40(pi->radio_chanspec)) {
19247 
19248 		d11_clk_ctl_st = bcma_read32(pi->d11core,
19249 					     D11REGOFFS(clk_ctl_st));
19250 		bcma_mask32(pi->d11core, D11REGOFFS(clk_ctl_st),
19251 			    ~(CCS_FORCEHT | CCS_HTAREQ));
19252 
19253 		bcma_write32(pi->d11core, D11REGOFFS(clk_ctl_st),
19254 			     d11_clk_ctl_st);
19255 	}
19256 
19257 	pi->use_int_tx_iqlo_cal_nphy =
19258 		(PHY_IPA(pi) ||
19259 		 (NREV_GE(pi->pubpi.phy_rev, 7) ||
19260 		  (NREV_GE(pi->pubpi.phy_rev, 5)
19261 		   && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19262 
19263 	pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
19264 
19265 	pi->nphy_deaf_count = 0;
19266 
19267 	wlc_phy_tbl_init_nphy(pi);
19268 
19269 	pi->nphy_crsminpwr_adjusted = false;
19270 	pi->nphy_noisevars_adjusted = false;
19271 
19272 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19273 		write_phy_reg(pi, 0xe7, 0);
19274 		write_phy_reg(pi, 0xec, 0);
19275 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19276 			write_phy_reg(pi, 0x342, 0);
19277 			write_phy_reg(pi, 0x343, 0);
19278 			write_phy_reg(pi, 0x346, 0);
19279 			write_phy_reg(pi, 0x347, 0);
19280 		}
19281 		write_phy_reg(pi, 0xe5, 0);
19282 		write_phy_reg(pi, 0xe6, 0);
19283 	} else {
19284 		write_phy_reg(pi, 0xec, 0);
19285 	}
19286 
19287 	write_phy_reg(pi, 0x91, 0);
19288 	write_phy_reg(pi, 0x92, 0);
19289 	if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19290 		write_phy_reg(pi, 0x93, 0);
19291 		write_phy_reg(pi, 0x94, 0);
19292 	}
19293 
19294 	and_phy_reg(pi, 0xa1, ~3);
19295 
19296 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19297 		write_phy_reg(pi, 0x8f, 0);
19298 		write_phy_reg(pi, 0xa5, 0);
19299 	} else {
19300 		write_phy_reg(pi, 0xa5, 0);
19301 	}
19302 
19303 	if (NREV_IS(pi->pubpi.phy_rev, 2))
19304 		mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19305 	else if (NREV_LT(pi->pubpi.phy_rev, 2))
19306 		mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19307 
19308 	write_phy_reg(pi, 0x203, 32);
19309 	write_phy_reg(pi, 0x201, 32);
19310 
19311 	if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19312 		write_phy_reg(pi, 0x20d, 160);
19313 	else
19314 		write_phy_reg(pi, 0x20d, 184);
19315 
19316 	write_phy_reg(pi, 0x13a, 200);
19317 
19318 	write_phy_reg(pi, 0x70, 80);
19319 
19320 	write_phy_reg(pi, 0x1ff, 48);
19321 
19322 	if (NREV_LT(pi->pubpi.phy_rev, 8))
19323 		wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19324 
19325 	wlc_phy_stf_chain_upd_nphy(pi);
19326 
19327 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19328 		write_phy_reg(pi, 0x180, 0xaa8);
19329 		write_phy_reg(pi, 0x181, 0x9a4);
19330 	}
19331 
19332 	if (PHY_IPA(pi)) {
19333 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19334 
19335 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19336 				    0x29b, (0x1 << 0), (1) << 0);
19337 
19338 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19339 				    0x29c, (0x1ff << 7),
19340 				    (pi->nphy_papd_epsilon_offset[core]) << 7);
19341 
19342 		}
19343 
19344 		wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19345 	} else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19346 		wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19347 	}
19348 
19349 	wlc_phy_workarounds_nphy(pi);
19350 
19351 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19352 
19353 	val = read_phy_reg(pi, 0x01);
19354 	write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19355 	write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19356 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19357 
19358 	wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19359 
19360 	wlc_phy_pa_override_nphy(pi, OFF);
19361 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
19362 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19363 	wlc_phy_pa_override_nphy(pi, ON);
19364 
19365 	wlc_phy_classifier_nphy(pi, 0, 0);
19366 	wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19367 
19368 	if (CHSPEC_IS2G(pi->radio_chanspec))
19369 		wlc_phy_bphy_init_nphy(pi);
19370 
19371 	tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19372 	wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
19373 
19374 	wlc_phy_txpwr_fixpower_nphy(pi);
19375 
19376 	wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19377 
19378 	wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19379 
19380 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19381 		u32 *tx_pwrctrl_tbl = NULL;
19382 		u16 idx;
19383 		s16 pga_gn = 0;
19384 		s16 pad_gn = 0;
19385 		s32 rfpwr_offset;
19386 
19387 		if (PHY_IPA(pi)) {
19388 			tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19389 		} else {
19390 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
19391 				if (NREV_IS(pi->pubpi.phy_rev, 3))
19392 					tx_pwrctrl_tbl =
19393 						nphy_tpc_5GHz_txgain_rev3;
19394 				else if (NREV_IS(pi->pubpi.phy_rev, 4))
19395 					tx_pwrctrl_tbl =
19396 						(pi->srom_fem5g.extpagain ==
19397 						 3) ?
19398 						nphy_tpc_5GHz_txgain_HiPwrEPA :
19399 						nphy_tpc_5GHz_txgain_rev4;
19400 				else
19401 					tx_pwrctrl_tbl =
19402 						nphy_tpc_5GHz_txgain_rev5;
19403 			} else {
19404 				if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19405 					if (pi->pubpi.radiorev == 5)
19406 						tx_pwrctrl_tbl =
19407 						   nphy_tpc_txgain_epa_2057rev5;
19408 					else if (pi->pubpi.radiorev == 3)
19409 						tx_pwrctrl_tbl =
19410 						   nphy_tpc_txgain_epa_2057rev3;
19411 				} else {
19412 					if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19413 					    (pi->srom_fem2g.extpagain == 3))
19414 						tx_pwrctrl_tbl =
19415 						       nphy_tpc_txgain_HiPwrEPA;
19416 					else
19417 						tx_pwrctrl_tbl =
19418 							nphy_tpc_txgain_rev3;
19419 				}
19420 			}
19421 		}
19422 
19423 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19424 					 192, 32, tx_pwrctrl_tbl);
19425 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19426 					 192, 32, tx_pwrctrl_tbl);
19427 
19428 		pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19429 
19430 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19431 
19432 			for (idx = 0; idx < 128; idx++) {
19433 				pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19434 				pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19435 				rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19436 								 pad_gn);
19437 				wlc_phy_table_write_nphy(
19438 					pi,
19439 					NPHY_TBL_ID_CORE1TXPWRCTL,
19440 					1, 576 + idx, 32,
19441 					&rfpwr_offset);
19442 				wlc_phy_table_write_nphy(
19443 					pi,
19444 					NPHY_TBL_ID_CORE2TXPWRCTL,
19445 					1, 576 + idx, 32,
19446 					&rfpwr_offset);
19447 			}
19448 		} else {
19449 
19450 			for (idx = 0; idx < 128; idx++) {
19451 				pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19452 				if (CHSPEC_IS2G(pi->radio_chanspec))
19453 					rfpwr_offset = (s16)
19454 						 nphy_papd_pga_gain_delta_ipa_2g
19455 								       [pga_gn];
19456 				else
19457 					rfpwr_offset = (s16)
19458 						 nphy_papd_pga_gain_delta_ipa_5g
19459 								       [pga_gn];
19460 
19461 				wlc_phy_table_write_nphy(
19462 					pi,
19463 					NPHY_TBL_ID_CORE1TXPWRCTL,
19464 					1, 576 + idx, 32,
19465 					&rfpwr_offset);
19466 				wlc_phy_table_write_nphy(
19467 					pi,
19468 					NPHY_TBL_ID_CORE2TXPWRCTL,
19469 					1, 576 + idx, 32,
19470 					&rfpwr_offset);
19471 			}
19472 
19473 		}
19474 	} else {
19475 
19476 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19477 					 192, 32, nphy_tpc_txgain);
19478 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19479 					 192, 32, nphy_tpc_txgain);
19480 	}
19481 
19482 	if (pi->sh->phyrxchain != 0x3)
19483 		wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
19484 					     pi->sh->phyrxchain);
19485 
19486 	if (PHY_PERICAL_MPHASE_PENDING(pi))
19487 		wlc_phy_cal_perical_mphase_restart(pi);
19488 
19489 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19490 		do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19491 			      (pi->nphy_rssical_chanspec_2G == 0) :
19492 			      (pi->nphy_rssical_chanspec_5G == 0);
19493 
19494 		if (do_rssi_cal)
19495 			wlc_phy_rssi_cal_nphy(pi);
19496 		else
19497 			wlc_phy_restore_rssical_nphy(pi);
19498 	} else {
19499 		wlc_phy_rssi_cal_nphy(pi);
19500 	}
19501 
19502 	if (!SCAN_RM_IN_PROGRESS(pi))
19503 		do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19504 			      (pi->nphy_iqcal_chanspec_2G == 0) :
19505 			      (pi->nphy_iqcal_chanspec_5G == 0);
19506 
19507 	if (!pi->do_initcal)
19508 		do_nphy_cal = false;
19509 
19510 	if (do_nphy_cal) {
19511 
19512 		target_gain = wlc_phy_get_tx_gain_nphy(pi);
19513 
19514 		if (pi->antsel_type == ANTSEL_2x3)
19515 			wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19516 					    true);
19517 
19518 		if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19519 			wlc_phy_rssi_cal_nphy(pi);
19520 
19521 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19522 				pi->nphy_cal_orig_pwr_idx[0] =
19523 					pi->nphy_txpwrindex[PHY_CORE_0]
19524 					.
19525 					index_internal;
19526 				pi->nphy_cal_orig_pwr_idx[1] =
19527 					pi->nphy_txpwrindex[PHY_CORE_1]
19528 					.
19529 					index_internal;
19530 
19531 				wlc_phy_precal_txgain_nphy(pi);
19532 				target_gain =
19533 					wlc_phy_get_tx_gain_nphy(pi);
19534 			}
19535 
19536 			if (wlc_phy_cal_txiqlo_nphy
19537 				    (pi, target_gain, true,
19538 				    false) == 0) {
19539 				if (wlc_phy_cal_rxiq_nphy
19540 					    (pi, target_gain, 2,
19541 					    false) == 0)
19542 					wlc_phy_savecal_nphy(pi);
19543 
19544 			}
19545 		} else if (pi->mphase_cal_phase_id ==
19546 			   MPHASE_CAL_STATE_IDLE) {
19547 			wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19548 					    PHY_PERICAL_PHYINIT);
19549 		}
19550 	} else {
19551 		wlc_phy_restorecal_nphy(pi);
19552 	}
19553 
19554 	wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19555 
19556 	wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19557 
19558 	wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19559 
19560 	if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19561 
19562 		write_phy_reg(pi, 0x70, 50);
19563 
19564 	wlc_phy_txlpfbw_nphy(pi);
19565 
19566 	wlc_phy_spurwar_nphy(pi);
19567 
19568 }
19569 
19570 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19571 {
19572 	u16 val;
19573 
19574 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19575 
19576 	val = read_phy_reg(pi, 0x01);
19577 	write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19578 	udelay(1);
19579 	write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19580 
19581 	wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19582 
19583 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19584 }
19585 
19586 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19587 {
19588 	u16 rfctrlintc_override_val;
19589 
19590 	if (!en) {
19591 
19592 		pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19593 		pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19594 
19595 		if (NREV_GE(pi->pubpi.phy_rev, 7))
19596 			rfctrlintc_override_val = 0x1480;
19597 		else if (NREV_GE(pi->pubpi.phy_rev, 3))
19598 			rfctrlintc_override_val =
19599 				CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19600 		else
19601 			rfctrlintc_override_val =
19602 				CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19603 
19604 		write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19605 		write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19606 	} else {
19607 		write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19608 		write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19609 	}
19610 
19611 }
19612 
19613 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
19614 {
19615 
19616 	u16 txrx_chain =
19617 		(NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
19618 	bool CoreActv_override = false;
19619 
19620 	if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19621 		txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19622 		CoreActv_override = true;
19623 
19624 		if (NREV_LE(pi->pubpi.phy_rev, 2))
19625 			and_phy_reg(pi, 0xa0, ~0x20);
19626 	} else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19627 		txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19628 		CoreActv_override = true;
19629 
19630 		if (NREV_LE(pi->pubpi.phy_rev, 2))
19631 			or_phy_reg(pi, 0xa0, 0x20);
19632 	}
19633 
19634 	mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19635 
19636 	if (CoreActv_override) {
19637 		pi->nphy_perical = PHY_PERICAL_DISABLE;
19638 		or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
19639 	} else {
19640 		pi->nphy_perical = PHY_PERICAL_MPHASE;
19641 		and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
19642 	}
19643 }
19644 
19645 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19646 {
19647 	u16 regval;
19648 	u16 tbl_buf[16];
19649 	uint i;
19650 	struct brcms_phy *pi = container_of(pih, struct brcms_phy, pubpi_ro);
19651 	u16 tbl_opcode;
19652 	bool suspend;
19653 
19654 	pi->sh->phyrxchain = rxcore_bitmask;
19655 
19656 	if (!pi->sh->clk)
19657 		return;
19658 
19659 	suspend = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
19660 			 MCTL_EN_MAC));
19661 	if (!suspend)
19662 		wlapi_suspend_mac_and_wait(pi->sh->physhim);
19663 
19664 	if (pi->phyhang_avoid)
19665 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
19666 
19667 	regval = read_phy_reg(pi, 0xa2);
19668 	regval &= ~(0xf << 4);
19669 	regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19670 	write_phy_reg(pi, 0xa2, regval);
19671 
19672 	if ((rxcore_bitmask & 0x3) != 0x3) {
19673 
19674 		write_phy_reg(pi, 0x20e, 1);
19675 
19676 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19677 			if (pi->rx2tx_biasentry == -1) {
19678 				wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
19679 							ARRAY_SIZE(tbl_buf), 80,
19680 							16, tbl_buf);
19681 
19682 				for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19683 					if (tbl_buf[i] ==
19684 					    NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
19685 						pi->rx2tx_biasentry = (u8) i;
19686 						tbl_opcode =
19687 							NPHY_REV3_RFSEQ_CMD_NOP;
19688 						wlc_phy_table_write_nphy(
19689 							pi,
19690 							NPHY_TBL_ID_RFSEQ,
19691 							1, i,
19692 							16,
19693 							&tbl_opcode);
19694 						break;
19695 					} else if (tbl_buf[i] ==
19696 						   NPHY_REV3_RFSEQ_CMD_END)
19697 						break;
19698 				}
19699 			}
19700 		}
19701 	} else {
19702 
19703 		write_phy_reg(pi, 0x20e, 30);
19704 
19705 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19706 			if (pi->rx2tx_biasentry != -1) {
19707 				tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19708 				wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
19709 							 1, pi->rx2tx_biasentry,
19710 							 16, &tbl_opcode);
19711 				pi->rx2tx_biasentry = -1;
19712 			}
19713 		}
19714 	}
19715 
19716 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19717 
19718 	if (pi->phyhang_avoid)
19719 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
19720 
19721 	if (!suspend)
19722 		wlapi_enable_mac(pi->sh->physhim);
19723 }
19724 
19725 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
19726 {
19727 	u16 regval, rxen_bits;
19728 	struct brcms_phy *pi = container_of(pih, struct brcms_phy, pubpi_ro);
19729 
19730 	regval = read_phy_reg(pi, 0xa2);
19731 	rxen_bits = (regval >> 4) & 0xf;
19732 
19733 	return (u8) rxen_bits;
19734 }
19735 
19736 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
19737 {
19738 	return PHY_IPA(pi);
19739 }
19740 
19741 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
19742 {
19743 }
19744 
19745 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
19746 {
19747 
19748 	and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
19749 	and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
19750 
19751 	or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
19752 	or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
19753 
19754 }
19755 
19756 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
19757 {
19758 	struct radio_20xx_regs *regs_2057_ptr = NULL;
19759 
19760 	if (NREV_IS(pi->pubpi.phy_rev, 7)) {
19761 		regs_2057_ptr = regs_2057_rev4;
19762 	} else if (NREV_IS(pi->pubpi.phy_rev, 8)
19763 		   || NREV_IS(pi->pubpi.phy_rev, 9)) {
19764 		switch (pi->pubpi.radiorev) {
19765 		case 5:
19766 
19767 			if (NREV_IS(pi->pubpi.phy_rev, 8))
19768 				regs_2057_ptr = regs_2057_rev5;
19769 			else if (NREV_IS(pi->pubpi.phy_rev, 9))
19770 				regs_2057_ptr = regs_2057_rev5v1;
19771 			break;
19772 
19773 		case 7:
19774 
19775 			regs_2057_ptr = regs_2057_rev7;
19776 			break;
19777 
19778 		case 8:
19779 
19780 			regs_2057_ptr = regs_2057_rev8;
19781 			break;
19782 
19783 		default:
19784 			break;
19785 		}
19786 	}
19787 
19788 	wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
19789 }
19790 
19791 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
19792 {
19793 	u16 rcal_reg = 0;
19794 	int i;
19795 
19796 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19797 
19798 		if (pi->pubpi.radiorev == 5) {
19799 
19800 			and_phy_reg(pi, 0x342, ~(0x1 << 1));
19801 
19802 			udelay(10);
19803 
19804 			mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
19805 			mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
19806 				      0x1);
19807 		}
19808 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
19809 
19810 		udelay(10);
19811 
19812 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
19813 
19814 		for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19815 			rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
19816 			if (rcal_reg & 0x1)
19817 				break;
19818 
19819 			udelay(100);
19820 		}
19821 
19822 		if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
19823 			 "HW error: radio calib2"))
19824 			return 0;
19825 
19826 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
19827 
19828 		rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
19829 
19830 		mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
19831 		if (pi->pubpi.radiorev == 5) {
19832 
19833 			mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
19834 			mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
19835 				      0x0);
19836 		}
19837 
19838 		if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
19839 
19840 			mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
19841 				      rcal_reg);
19842 			mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
19843 				      rcal_reg << 2);
19844 		}
19845 
19846 	} else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
19847 		u16 savereg;
19848 
19849 		savereg =
19850 			read_radio_reg(
19851 				pi,
19852 				RADIO_2056_SYN_PLL_MAST2 |
19853 				RADIO_2056_SYN);
19854 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
19855 				savereg | 0x7);
19856 		udelay(10);
19857 
19858 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19859 				0x1);
19860 		udelay(10);
19861 
19862 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19863 				0x9);
19864 
19865 		for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19866 			rcal_reg = read_radio_reg(
19867 				pi,
19868 				RADIO_2056_SYN_RCAL_CODE_OUT |
19869 				RADIO_2056_SYN);
19870 			if (rcal_reg & 0x80)
19871 				break;
19872 
19873 			udelay(100);
19874 		}
19875 
19876 		if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
19877 			 "HW error: radio calib3"))
19878 			return 0;
19879 
19880 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19881 				0x1);
19882 
19883 		rcal_reg =
19884 			read_radio_reg(pi,
19885 				       RADIO_2056_SYN_RCAL_CODE_OUT |
19886 				       RADIO_2056_SYN);
19887 
19888 		write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
19889 				0x0);
19890 
19891 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
19892 				savereg);
19893 
19894 		return rcal_reg & 0x1f;
19895 	}
19896 	return rcal_reg & 0x3e;
19897 }
19898 
19899 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
19900 {
19901 	u16 rccal_valid;
19902 	int i;
19903 	bool chip43226_6362A0;
19904 
19905 	chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
19906 			    || (pi->pubpi.radiorev == 4)
19907 			    || (pi->pubpi.radiorev == 6));
19908 
19909 	rccal_valid = 0;
19910 	if (chip43226_6362A0) {
19911 		write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
19912 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
19913 	} else {
19914 		write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
19915 
19916 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
19917 	}
19918 	write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
19919 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
19920 
19921 	for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19922 		rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
19923 		if (rccal_valid & 0x2)
19924 			break;
19925 
19926 		udelay(500);
19927 	}
19928 
19929 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
19930 
19931 	rccal_valid = 0;
19932 	if (chip43226_6362A0) {
19933 		write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
19934 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
19935 	} else {
19936 		write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
19937 
19938 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
19939 	}
19940 	write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
19941 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
19942 
19943 	for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19944 		rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
19945 		if (rccal_valid & 0x2)
19946 			break;
19947 
19948 		udelay(500);
19949 	}
19950 
19951 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
19952 
19953 	rccal_valid = 0;
19954 	if (chip43226_6362A0) {
19955 		write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
19956 
19957 		write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
19958 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
19959 	} else {
19960 		write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
19961 		write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
19962 		write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
19963 	}
19964 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
19965 
19966 	for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19967 		rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
19968 		if (rccal_valid & 0x2)
19969 			break;
19970 
19971 		udelay(500);
19972 	}
19973 
19974 	if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
19975 		return 0;
19976 
19977 	write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
19978 
19979 	return rccal_valid;
19980 }
19981 
19982 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
19983 {
19984 
19985 	mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
19986 
19987 	mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
19988 	mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
19989 	mdelay(2);
19990 	mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
19991 	mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
19992 
19993 	if (pi->phy_init_por) {
19994 		wlc_phy_radio205x_rcal(pi);
19995 		wlc_phy_radio2057_rccal(pi);
19996 	}
19997 
19998 	mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
19999 }
20000 
20001 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20002 {
20003 	const struct radio_regs *regs_SYN_2056_ptr = NULL;
20004 	const struct radio_regs *regs_TX_2056_ptr = NULL;
20005 	const struct radio_regs *regs_RX_2056_ptr = NULL;
20006 
20007 	if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20008 		regs_SYN_2056_ptr = regs_SYN_2056;
20009 		regs_TX_2056_ptr = regs_TX_2056;
20010 		regs_RX_2056_ptr = regs_RX_2056;
20011 	} else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20012 		regs_SYN_2056_ptr = regs_SYN_2056_A1;
20013 		regs_TX_2056_ptr = regs_TX_2056_A1;
20014 		regs_RX_2056_ptr = regs_RX_2056_A1;
20015 	} else {
20016 		switch (pi->pubpi.radiorev) {
20017 		case 5:
20018 			regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20019 			regs_TX_2056_ptr = regs_TX_2056_rev5;
20020 			regs_RX_2056_ptr = regs_RX_2056_rev5;
20021 			break;
20022 
20023 		case 6:
20024 			regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20025 			regs_TX_2056_ptr = regs_TX_2056_rev6;
20026 			regs_RX_2056_ptr = regs_RX_2056_rev6;
20027 			break;
20028 
20029 		case 7:
20030 		case 9:
20031 			regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20032 			regs_TX_2056_ptr = regs_TX_2056_rev7;
20033 			regs_RX_2056_ptr = regs_RX_2056_rev7;
20034 			break;
20035 
20036 		case 8:
20037 			regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20038 			regs_TX_2056_ptr = regs_TX_2056_rev8;
20039 			regs_RX_2056_ptr = regs_RX_2056_rev8;
20040 			break;
20041 
20042 		case 11:
20043 			regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20044 			regs_TX_2056_ptr = regs_TX_2056_rev11;
20045 			regs_RX_2056_ptr = regs_RX_2056_rev11;
20046 			break;
20047 
20048 		default:
20049 			break;
20050 		}
20051 	}
20052 
20053 	wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20054 
20055 	wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20056 
20057 	wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20058 
20059 	wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20060 
20061 	wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20062 }
20063 
20064 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20065 {
20066 	mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
20067 
20068 	mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20069 	mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20070 	udelay(1000);
20071 	mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20072 
20073 	if ((pi->sh->boardflags2 & BFL2_LEGACY)
20074 	    || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20075 		mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20076 	else
20077 		mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20078 
20079 	mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
20080 
20081 	if (pi->phy_init_por)
20082 		wlc_phy_radio205x_rcal(pi);
20083 }
20084 
20085 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20086 {
20087 
20088 	and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20089 	or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
20090 
20091 	or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20092 }
20093 
20094 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20095 {
20096 	wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
20097 }
20098 
20099 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20100 {
20101 
20102 	and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
20103 		      ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
20104 
20105 	if (((pi->sh->sromrev >= 4)
20106 	     && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20107 	    || ((pi->sh->sromrev < 4))) {
20108 		and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
20109 		and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
20110 	}
20111 
20112 	mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20113 	write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
20114 
20115 	and_radio_reg(pi, RADIO_2055_CAL_MISC,
20116 		      ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
20117 
20118 	or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
20119 
20120 	or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
20121 
20122 	udelay(1000);
20123 
20124 	or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
20125 
20126 	SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20127 		   RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20128 
20129 	if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20130 		  RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20131 		 "HW error: radio calibration1\n"))
20132 		return;
20133 
20134 	and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
20135 		      ~(RADIO_2055_CAL_LPO_ENABLE));
20136 
20137 	wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
20138 
20139 	write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
20140 	write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
20141 
20142 	write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
20143 	write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
20144 
20145 	mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
20146 		      RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20147 	mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
20148 		      RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20149 	if (pi->nphy_gain_boost) {
20150 		and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20151 			      ~(RADIO_2055_GAINBST_DISABLE));
20152 		and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20153 			      ~(RADIO_2055_GAINBST_DISABLE));
20154 	} else {
20155 		or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20156 			     RADIO_2055_GAINBST_DISABLE);
20157 		or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20158 			     RADIO_2055_GAINBST_DISABLE);
20159 	}
20160 
20161 	udelay(2);
20162 }
20163 
20164 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20165 {
20166 	if (on) {
20167 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20168 			if (!pi->radio_is_on) {
20169 				wlc_phy_radio_preinit_205x(pi);
20170 				wlc_phy_radio_init_2057(pi);
20171 				wlc_phy_radio_postinit_2057(pi);
20172 			}
20173 
20174 			wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20175 					     pi->radio_chanspec);
20176 		} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20177 			wlc_phy_radio_preinit_205x(pi);
20178 			wlc_phy_radio_init_2056(pi);
20179 			wlc_phy_radio_postinit_2056(pi);
20180 
20181 			wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20182 					     pi->radio_chanspec);
20183 		} else {
20184 			wlc_phy_radio_preinit_2055(pi);
20185 			wlc_phy_radio_init_2055(pi);
20186 			wlc_phy_radio_postinit_2055(pi);
20187 		}
20188 
20189 		pi->radio_is_on = true;
20190 
20191 	} else {
20192 
20193 		if (NREV_GE(pi->pubpi.phy_rev, 3)
20194 		    && NREV_LT(pi->pubpi.phy_rev, 7)) {
20195 			and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20196 			mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20197 
20198 			write_radio_reg(pi,
20199 					RADIO_2056_TX_PADA_BOOST_TUNE |
20200 					RADIO_2056_TX0, 0);
20201 			write_radio_reg(pi,
20202 					RADIO_2056_TX_PADG_BOOST_TUNE |
20203 					RADIO_2056_TX0, 0);
20204 			write_radio_reg(pi,
20205 					RADIO_2056_TX_PGAA_BOOST_TUNE |
20206 					RADIO_2056_TX0, 0);
20207 			write_radio_reg(pi,
20208 					RADIO_2056_TX_PGAG_BOOST_TUNE |
20209 					RADIO_2056_TX0, 0);
20210 			mod_radio_reg(pi,
20211 				      RADIO_2056_TX_MIXA_BOOST_TUNE |
20212 				      RADIO_2056_TX0, 0xf0, 0);
20213 			write_radio_reg(pi,
20214 					RADIO_2056_TX_MIXG_BOOST_TUNE |
20215 					RADIO_2056_TX0, 0);
20216 
20217 			write_radio_reg(pi,
20218 					RADIO_2056_TX_PADA_BOOST_TUNE |
20219 					RADIO_2056_TX1, 0);
20220 			write_radio_reg(pi,
20221 					RADIO_2056_TX_PADG_BOOST_TUNE |
20222 					RADIO_2056_TX1, 0);
20223 			write_radio_reg(pi,
20224 					RADIO_2056_TX_PGAA_BOOST_TUNE |
20225 					RADIO_2056_TX1, 0);
20226 			write_radio_reg(pi,
20227 					RADIO_2056_TX_PGAG_BOOST_TUNE |
20228 					RADIO_2056_TX1, 0);
20229 			mod_radio_reg(pi,
20230 				      RADIO_2056_TX_MIXA_BOOST_TUNE |
20231 				      RADIO_2056_TX1, 0xf0, 0);
20232 			write_radio_reg(pi,
20233 					RADIO_2056_TX_MIXG_BOOST_TUNE |
20234 					RADIO_2056_TX1, 0);
20235 
20236 			pi->radio_is_on = false;
20237 		}
20238 
20239 		if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20240 			and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20241 			pi->radio_is_on = false;
20242 		}
20243 
20244 	}
20245 }
20246 
20247 static bool
20248 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20249 		       const struct chan_info_nphy_radio2057 **t0,
20250 		       const struct chan_info_nphy_radio205x **t1,
20251 		       const struct chan_info_nphy_radio2057_rev5 **t2,
20252 		       const struct chan_info_nphy_2055 **t3)
20253 {
20254 	uint i;
20255 	const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20256 	const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20257 	const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20258 	u32 tbl_len = 0;
20259 
20260 	int freq = 0;
20261 
20262 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20263 
20264 		if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20265 
20266 			chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20267 			tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20268 
20269 		} else if (NREV_IS(pi->pubpi.phy_rev, 8)
20270 			   || NREV_IS(pi->pubpi.phy_rev, 9)) {
20271 			switch (pi->pubpi.radiorev) {
20272 
20273 			case 5:
20274 
20275 				if (pi->pubpi.radiover == 0x0) {
20276 
20277 					chan_info_tbl_p_2 =
20278 						chan_info_nphyrev8_2057_rev5;
20279 					tbl_len = ARRAY_SIZE(
20280 						  chan_info_nphyrev8_2057_rev5);
20281 
20282 				} else if (pi->pubpi.radiover == 0x1) {
20283 
20284 					chan_info_tbl_p_2 =
20285 						chan_info_nphyrev9_2057_rev5v1;
20286 					tbl_len = ARRAY_SIZE(
20287 						chan_info_nphyrev9_2057_rev5v1);
20288 
20289 				}
20290 				break;
20291 
20292 			case 7:
20293 				chan_info_tbl_p_0 =
20294 					chan_info_nphyrev8_2057_rev7;
20295 				tbl_len = ARRAY_SIZE(
20296 						  chan_info_nphyrev8_2057_rev7);
20297 				break;
20298 
20299 			case 8:
20300 				chan_info_tbl_p_0 =
20301 					chan_info_nphyrev8_2057_rev8;
20302 				tbl_len = ARRAY_SIZE(
20303 						  chan_info_nphyrev8_2057_rev8);
20304 				break;
20305 
20306 			default:
20307 				break;
20308 			}
20309 		} else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20310 
20311 			chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20312 			tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20313 		} else {
20314 			goto fail;
20315 		}
20316 
20317 		for (i = 0; i < tbl_len; i++) {
20318 			if (pi->pubpi.radiorev == 5) {
20319 
20320 				if (chan_info_tbl_p_2[i].chan == channel)
20321 					break;
20322 			} else {
20323 
20324 				if (chan_info_tbl_p_0[i].chan == channel)
20325 					break;
20326 			}
20327 		}
20328 
20329 		if (i >= tbl_len)
20330 			goto fail;
20331 
20332 		if (pi->pubpi.radiorev == 5) {
20333 			*t2 = &chan_info_tbl_p_2[i];
20334 			freq = chan_info_tbl_p_2[i].freq;
20335 		} else {
20336 			*t0 = &chan_info_tbl_p_0[i];
20337 			freq = chan_info_tbl_p_0[i].freq;
20338 		}
20339 
20340 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20341 		if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20342 			chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20343 			tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20344 		} else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20345 			chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20346 			tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20347 		} else if (NREV_IS(pi->pubpi.phy_rev, 5)
20348 			   || NREV_IS(pi->pubpi.phy_rev, 6)) {
20349 			switch (pi->pubpi.radiorev) {
20350 			case 5:
20351 				chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20352 				tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20353 				break;
20354 			case 6:
20355 				chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20356 				tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20357 				break;
20358 			case 7:
20359 			case 9:
20360 				chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20361 				tbl_len =
20362 					ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20363 				break;
20364 			case 8:
20365 				chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20366 				tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20367 				break;
20368 			case 11:
20369 				chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20370 				tbl_len = ARRAY_SIZE(
20371 						    chan_info_nphyrev6_2056v11);
20372 				break;
20373 			default:
20374 				break;
20375 			}
20376 		}
20377 
20378 		for (i = 0; i < tbl_len; i++) {
20379 			if (chan_info_tbl_p_1[i].chan == channel)
20380 				break;
20381 		}
20382 
20383 		if (i >= tbl_len)
20384 			goto fail;
20385 
20386 		*t1 = &chan_info_tbl_p_1[i];
20387 		freq = chan_info_tbl_p_1[i].freq;
20388 
20389 	} else {
20390 		for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20391 			if (chan_info_nphy_2055[i].chan == channel)
20392 				break;
20393 
20394 		if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20395 			goto fail;
20396 
20397 		*t3 = &chan_info_nphy_2055[i];
20398 		freq = chan_info_nphy_2055[i].freq;
20399 	}
20400 
20401 	*f = freq;
20402 	return true;
20403 
20404 fail:
20405 	*f = WL_CHAN_FREQ_RANGE_2G;
20406 	return false;
20407 }
20408 
20409 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
20410 {
20411 	int freq;
20412 	const struct chan_info_nphy_radio2057 *t0 = NULL;
20413 	const struct chan_info_nphy_radio205x *t1 = NULL;
20414 	const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20415 	const struct chan_info_nphy_2055 *t3 = NULL;
20416 
20417 	if (channel == 0)
20418 		channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20419 
20420 	wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20421 
20422 	if (CHSPEC_IS2G(pi->radio_chanspec))
20423 		return WL_CHAN_FREQ_RANGE_2G;
20424 
20425 	if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20426 		return WL_CHAN_FREQ_RANGE_5GL;
20427 	else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20428 		return WL_CHAN_FREQ_RANGE_5GM;
20429 	else
20430 		return WL_CHAN_FREQ_RANGE_5GH;
20431 }
20432 
20433 static void
20434 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20435 				 const struct chan_info_nphy_2055 *ci)
20436 {
20437 
20438 	write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
20439 	write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
20440 	write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
20441 	write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
20442 
20443 	BRCMS_PHY_WAR_PR51571(pi);
20444 
20445 	write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
20446 	write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
20447 	write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
20448 	write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
20449 
20450 	BRCMS_PHY_WAR_PR51571(pi);
20451 
20452 	write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
20453 	write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
20454 	write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
20455 	write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
20456 
20457 	BRCMS_PHY_WAR_PR51571(pi);
20458 
20459 	write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
20460 			ci->RF_core1_lgbuf_a_tune);
20461 	write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
20462 			ci->RF_core1_lgbuf_g_tune);
20463 	write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
20464 	write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
20465 			ci->RF_core1_tx_pga_pad_tn);
20466 
20467 	BRCMS_PHY_WAR_PR51571(pi);
20468 
20469 	write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
20470 			ci->RF_core1_tx_mx_bgtrim);
20471 	write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
20472 			ci->RF_core2_lgbuf_a_tune);
20473 	write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
20474 			ci->RF_core2_lgbuf_g_tune);
20475 	write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
20476 
20477 	BRCMS_PHY_WAR_PR51571(pi);
20478 
20479 	write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
20480 			ci->RF_core2_tx_pga_pad_tn);
20481 	write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
20482 			ci->RF_core2_tx_mx_bgtrim);
20483 
20484 	udelay(50);
20485 
20486 	write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
20487 	write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
20488 
20489 	BRCMS_PHY_WAR_PR51571(pi);
20490 
20491 	write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
20492 
20493 	udelay(300);
20494 }
20495 
20496 static void
20497 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20498 				 const struct chan_info_nphy_radio205x *ci)
20499 {
20500 	const struct radio_regs *regs_SYN_2056_ptr = NULL;
20501 
20502 	write_radio_reg(pi,
20503 			RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
20504 			ci->RF_SYN_pll_vcocal1);
20505 	write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
20506 			ci->RF_SYN_pll_vcocal2);
20507 	write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
20508 			ci->RF_SYN_pll_refdiv);
20509 	write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
20510 			ci->RF_SYN_pll_mmd2);
20511 	write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
20512 			ci->RF_SYN_pll_mmd1);
20513 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20514 			ci->RF_SYN_pll_loopfilter1);
20515 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20516 			ci->RF_SYN_pll_loopfilter2);
20517 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
20518 			ci->RF_SYN_pll_loopfilter3);
20519 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20520 			ci->RF_SYN_pll_loopfilter4);
20521 	write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
20522 			ci->RF_SYN_pll_loopfilter5);
20523 	write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
20524 			ci->RF_SYN_reserved_addr27);
20525 	write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
20526 			ci->RF_SYN_reserved_addr28);
20527 	write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
20528 			ci->RF_SYN_reserved_addr29);
20529 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
20530 			ci->RF_SYN_logen_VCOBUF1);
20531 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
20532 			ci->RF_SYN_logen_MIXER2);
20533 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
20534 			ci->RF_SYN_logen_BUF3);
20535 	write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
20536 			ci->RF_SYN_logen_BUF4);
20537 
20538 	write_radio_reg(pi,
20539 			RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
20540 			ci->RF_RX0_lnaa_tune);
20541 	write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
20542 			ci->RF_RX0_lnag_tune);
20543 	write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
20544 			ci->RF_TX0_intpaa_boost_tune);
20545 	write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
20546 			ci->RF_TX0_intpag_boost_tune);
20547 	write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
20548 			ci->RF_TX0_pada_boost_tune);
20549 	write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
20550 			ci->RF_TX0_padg_boost_tune);
20551 	write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
20552 			ci->RF_TX0_pgaa_boost_tune);
20553 	write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
20554 			ci->RF_TX0_pgag_boost_tune);
20555 	write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
20556 			ci->RF_TX0_mixa_boost_tune);
20557 	write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
20558 			ci->RF_TX0_mixg_boost_tune);
20559 
20560 	write_radio_reg(pi,
20561 			RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
20562 			ci->RF_RX1_lnaa_tune);
20563 	write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
20564 			ci->RF_RX1_lnag_tune);
20565 	write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
20566 			ci->RF_TX1_intpaa_boost_tune);
20567 	write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
20568 			ci->RF_TX1_intpag_boost_tune);
20569 	write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
20570 			ci->RF_TX1_pada_boost_tune);
20571 	write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
20572 			ci->RF_TX1_padg_boost_tune);
20573 	write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
20574 			ci->RF_TX1_pgaa_boost_tune);
20575 	write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
20576 			ci->RF_TX1_pgag_boost_tune);
20577 	write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
20578 			ci->RF_TX1_mixa_boost_tune);
20579 	write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
20580 			ci->RF_TX1_mixg_boost_tune);
20581 
20582 	if (NREV_IS(pi->pubpi.phy_rev, 3))
20583 		regs_SYN_2056_ptr = regs_SYN_2056;
20584 	else if (NREV_IS(pi->pubpi.phy_rev, 4))
20585 		regs_SYN_2056_ptr = regs_SYN_2056_A1;
20586 	else {
20587 		switch (pi->pubpi.radiorev) {
20588 		case 5:
20589 			regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20590 			break;
20591 		case 6:
20592 			regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20593 			break;
20594 		case 7:
20595 		case 9:
20596 			regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20597 			break;
20598 		case 8:
20599 			regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20600 			break;
20601 		case 11:
20602 			regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20603 			break;
20604 		}
20605 	}
20606 	if (CHSPEC_IS2G(pi->radio_chanspec))
20607 		write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20608 				RADIO_2056_SYN,
20609 				(u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20610 	else
20611 		write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20612 				RADIO_2056_SYN,
20613 				(u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20614 
20615 	if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20616 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
20617 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20618 					RADIO_2056_SYN, 0x1f);
20619 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20620 					RADIO_2056_SYN, 0x1f);
20621 
20622 			if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
20623 			    (pi->sh->chip == BCMA_CHIP_ID_BCM47162)) {
20624 				write_radio_reg(pi,
20625 						RADIO_2056_SYN_PLL_LOOPFILTER4 |
20626 						RADIO_2056_SYN, 0x14);
20627 				write_radio_reg(pi,
20628 						RADIO_2056_SYN_PLL_CP2 |
20629 						RADIO_2056_SYN, 0x00);
20630 			} else {
20631 				write_radio_reg(pi,
20632 						RADIO_2056_SYN_PLL_LOOPFILTER4 |
20633 						RADIO_2056_SYN, 0xb);
20634 				write_radio_reg(pi,
20635 						RADIO_2056_SYN_PLL_CP2 |
20636 						RADIO_2056_SYN, 0x14);
20637 			}
20638 		}
20639 	}
20640 
20641 	if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20642 	    (CHSPEC_IS2G(pi->radio_chanspec))) {
20643 		write_radio_reg(pi,
20644 				RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20645 				0x1f);
20646 		write_radio_reg(pi,
20647 				RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20648 				0x1f);
20649 		write_radio_reg(pi,
20650 				RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20651 				0xb);
20652 		write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
20653 				0x20);
20654 	}
20655 
20656 	if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20657 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
20658 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20659 					RADIO_2056_SYN, 0x1f);
20660 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20661 					RADIO_2056_SYN, 0x1f);
20662 			write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
20663 					RADIO_2056_SYN, 0x5);
20664 			write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20665 					RADIO_2056_SYN, 0xc);
20666 		}
20667 	}
20668 
20669 	if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20670 		u16 pag_boost_tune;
20671 		u16 padg_boost_tune;
20672 		u16 pgag_boost_tune;
20673 		u16 mixg_boost_tune;
20674 		u16 bias, cascbias;
20675 		uint core;
20676 
20677 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20678 
20679 			if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20680 
20681 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20682 						 PADG_IDAC, 0xcc);
20683 
20684 				if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
20685 				    (pi->sh->chip == BCMA_CHIP_ID_BCM47162)) {
20686 					bias = 0x40;
20687 					cascbias = 0x45;
20688 					pag_boost_tune = 0x5;
20689 					pgag_boost_tune = 0x33;
20690 					padg_boost_tune = 0x77;
20691 					mixg_boost_tune = 0x55;
20692 				} else {
20693 					bias = 0x25;
20694 					cascbias = 0x20;
20695 
20696 					if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224 ||
20697 					     pi->sh->chip == BCMA_CHIP_ID_BCM43225) &&
20698 					    pi->sh->chippkg == BCMA_PKG_ID_BCM43224_FAB_SMIC) {
20699 						bias = 0x2a;
20700 						cascbias = 0x38;
20701 					}
20702 
20703 					pag_boost_tune = 0x4;
20704 					pgag_boost_tune = 0x03;
20705 					padg_boost_tune = 0x77;
20706 					mixg_boost_tune = 0x65;
20707 				}
20708 
20709 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20710 						 INTPAG_IMAIN_STAT, bias);
20711 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20712 						 INTPAG_IAUX_STAT, bias);
20713 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20714 						 INTPAG_CASCBIAS, cascbias);
20715 
20716 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20717 						 INTPAG_BOOST_TUNE,
20718 						 pag_boost_tune);
20719 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20720 						 PGAG_BOOST_TUNE,
20721 						 pgag_boost_tune);
20722 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20723 						 PADG_BOOST_TUNE,
20724 						 padg_boost_tune);
20725 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20726 						 MIXG_BOOST_TUNE,
20727 						 mixg_boost_tune);
20728 			} else {
20729 
20730 				bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20731 				       0x40 : 0x20;
20732 
20733 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20734 						 INTPAG_IMAIN_STAT, bias);
20735 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20736 						 INTPAG_IAUX_STAT, bias);
20737 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20738 						 INTPAG_CASCBIAS, 0x30);
20739 			}
20740 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20741 					 0xee);
20742 		}
20743 	}
20744 
20745 	if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20746 	    && CHSPEC_IS5G(pi->radio_chanspec)) {
20747 		u16 paa_boost_tune;
20748 		u16 pada_boost_tune;
20749 		u16 pgaa_boost_tune;
20750 		u16 mixa_boost_tune;
20751 		u16 freq, pabias, cascbias;
20752 		uint core;
20753 
20754 		freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
20755 
20756 		if (freq < 5150) {
20757 
20758 			paa_boost_tune = 0xa;
20759 			pada_boost_tune = 0x77;
20760 			pgaa_boost_tune = 0xf;
20761 			mixa_boost_tune = 0xf;
20762 		} else if (freq < 5340) {
20763 
20764 			paa_boost_tune = 0x8;
20765 			pada_boost_tune = 0x77;
20766 			pgaa_boost_tune = 0xfb;
20767 			mixa_boost_tune = 0xf;
20768 		} else if (freq < 5650) {
20769 
20770 			paa_boost_tune = 0x0;
20771 			pada_boost_tune = 0x77;
20772 			pgaa_boost_tune = 0xb;
20773 			mixa_boost_tune = 0xf;
20774 		} else {
20775 
20776 			paa_boost_tune = 0x0;
20777 			pada_boost_tune = 0x77;
20778 			if (freq != 5825)
20779 				pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
20780 			else
20781 				pgaa_boost_tune = 6;
20782 
20783 			mixa_boost_tune = 0xf;
20784 		}
20785 
20786 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20787 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20788 					 INTPAA_BOOST_TUNE, paa_boost_tune);
20789 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20790 					 PADA_BOOST_TUNE, pada_boost_tune);
20791 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20792 					 PGAA_BOOST_TUNE, pgaa_boost_tune);
20793 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20794 					 MIXA_BOOST_TUNE, mixa_boost_tune);
20795 
20796 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20797 					 TXSPARE1, 0x30);
20798 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20799 					 PA_SPARE2, 0xee);
20800 
20801 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20802 					 PADA_CASCBIAS, 0x3);
20803 
20804 			cascbias = 0x30;
20805 
20806 			if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224 ||
20807 			     pi->sh->chip == BCMA_CHIP_ID_BCM43225) &&
20808 			    pi->sh->chippkg == BCMA_PKG_ID_BCM43224_FAB_SMIC)
20809 				cascbias = 0x35;
20810 
20811 			pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
20812 
20813 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20814 					 INTPAA_IAUX_STAT, pabias);
20815 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20816 					 INTPAA_IMAIN_STAT, pabias);
20817 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20818 					 INTPAA_CASCBIAS, cascbias);
20819 		}
20820 	}
20821 
20822 	udelay(50);
20823 
20824 	wlc_phy_radio205x_vcocal_nphy(pi);
20825 }
20826 
20827 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
20828 {
20829 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20830 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
20831 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
20832 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
20833 			      (1 << 2));
20834 		mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
20835 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20836 		write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
20837 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
20838 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
20839 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
20840 		write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
20841 	}
20842 
20843 	udelay(300);
20844 }
20845 
20846 static void
20847 wlc_phy_chanspec_radio2057_setup(
20848 	struct brcms_phy *pi,
20849 	const struct chan_info_nphy_radio2057 *ci,
20850 	const struct chan_info_nphy_radio2057_rev5 *
20851 	ci2)
20852 {
20853 	int coreNum;
20854 	u16 txmix2g_tune_boost_pu = 0;
20855 	u16 pad2g_tune_pus = 0;
20856 
20857 	if (pi->pubpi.radiorev == 5) {
20858 
20859 		write_radio_reg(pi,
20860 				RADIO_2057_VCOCAL_COUNTVAL0,
20861 				ci2->RF_vcocal_countval0);
20862 		write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
20863 				ci2->RF_vcocal_countval1);
20864 		write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
20865 				ci2->RF_rfpll_refmaster_sparextalsize);
20866 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20867 				ci2->RF_rfpll_loopfilter_r1);
20868 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20869 				ci2->RF_rfpll_loopfilter_c2);
20870 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
20871 				ci2->RF_rfpll_loopfilter_c1);
20872 		write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
20873 				ci2->RF_cp_kpd_idac);
20874 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
20875 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
20876 		write_radio_reg(pi,
20877 				RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
20878 		write_radio_reg(pi,
20879 				RADIO_2057_LOGEN_MX2G_TUNE,
20880 				ci2->RF_logen_mx2g_tune);
20881 		write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
20882 				ci2->RF_logen_indbuf2g_tune);
20883 
20884 		write_radio_reg(pi,
20885 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
20886 				ci2->RF_txmix2g_tune_boost_pu_core0);
20887 		write_radio_reg(pi,
20888 				RADIO_2057_PAD2G_TUNE_PUS_CORE0,
20889 				ci2->RF_pad2g_tune_pus_core0);
20890 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
20891 				ci2->RF_lna2g_tune_core0);
20892 
20893 		write_radio_reg(pi,
20894 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
20895 				ci2->RF_txmix2g_tune_boost_pu_core1);
20896 		write_radio_reg(pi,
20897 				RADIO_2057_PAD2G_TUNE_PUS_CORE1,
20898 				ci2->RF_pad2g_tune_pus_core1);
20899 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
20900 				ci2->RF_lna2g_tune_core1);
20901 
20902 	} else {
20903 
20904 		write_radio_reg(pi,
20905 				RADIO_2057_VCOCAL_COUNTVAL0,
20906 				ci->RF_vcocal_countval0);
20907 		write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
20908 				ci->RF_vcocal_countval1);
20909 		write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
20910 				ci->RF_rfpll_refmaster_sparextalsize);
20911 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20912 				ci->RF_rfpll_loopfilter_r1);
20913 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20914 				ci->RF_rfpll_loopfilter_c2);
20915 		write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
20916 				ci->RF_rfpll_loopfilter_c1);
20917 		write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
20918 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
20919 		write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
20920 		write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
20921 		write_radio_reg(pi,
20922 				RADIO_2057_LOGEN_MX2G_TUNE,
20923 				ci->RF_logen_mx2g_tune);
20924 		write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
20925 				ci->RF_logen_mx5g_tune);
20926 		write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
20927 				ci->RF_logen_indbuf2g_tune);
20928 		write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
20929 				ci->RF_logen_indbuf5g_tune);
20930 
20931 		write_radio_reg(pi,
20932 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
20933 				ci->RF_txmix2g_tune_boost_pu_core0);
20934 		write_radio_reg(pi,
20935 				RADIO_2057_PAD2G_TUNE_PUS_CORE0,
20936 				ci->RF_pad2g_tune_pus_core0);
20937 		write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
20938 				ci->RF_pga_boost_tune_core0);
20939 		write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
20940 				ci->RF_txmix5g_boost_tune_core0);
20941 		write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
20942 				ci->RF_pad5g_tune_misc_pus_core0);
20943 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
20944 				ci->RF_lna2g_tune_core0);
20945 		write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
20946 				ci->RF_lna5g_tune_core0);
20947 
20948 		write_radio_reg(pi,
20949 				RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
20950 				ci->RF_txmix2g_tune_boost_pu_core1);
20951 		write_radio_reg(pi,
20952 				RADIO_2057_PAD2G_TUNE_PUS_CORE1,
20953 				ci->RF_pad2g_tune_pus_core1);
20954 		write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
20955 				ci->RF_pga_boost_tune_core1);
20956 		write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
20957 				ci->RF_txmix5g_boost_tune_core1);
20958 		write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
20959 				ci->RF_pad5g_tune_misc_pus_core1);
20960 		write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
20961 				ci->RF_lna2g_tune_core1);
20962 		write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
20963 				ci->RF_lna5g_tune_core1);
20964 	}
20965 
20966 	if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
20967 
20968 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
20969 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20970 					0x3f);
20971 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
20972 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
20973 					0x8);
20974 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20975 					0x8);
20976 		} else {
20977 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20978 					0x1f);
20979 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
20980 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
20981 					0x8);
20982 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20983 					0x8);
20984 		}
20985 	} else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
20986 		   (pi->pubpi.radiorev == 8)) {
20987 
20988 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
20989 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20990 					0x1b);
20991 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
20992 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
20993 					0xa);
20994 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20995 					0xa);
20996 		} else {
20997 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20998 					0x1f);
20999 			write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21000 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21001 					0x8);
21002 			write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21003 					0x8);
21004 		}
21005 
21006 	}
21007 
21008 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
21009 		if (PHY_IPA(pi)) {
21010 			if (pi->pubpi.radiorev == 3)
21011 				txmix2g_tune_boost_pu = 0x6b;
21012 
21013 			if (pi->pubpi.radiorev == 5)
21014 				pad2g_tune_pus = 0x73;
21015 
21016 		} else {
21017 			if (pi->pubpi.radiorev != 5) {
21018 				pad2g_tune_pus = 0x3;
21019 
21020 				txmix2g_tune_boost_pu = 0x61;
21021 			}
21022 		}
21023 
21024 		for (coreNum = 0; coreNum <= 1; coreNum++) {
21025 
21026 			if (txmix2g_tune_boost_pu != 0)
21027 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21028 						 TXMIX2G_TUNE_BOOST_PU,
21029 						 txmix2g_tune_boost_pu);
21030 
21031 			if (pad2g_tune_pus != 0)
21032 				WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21033 						 PAD2G_TUNE_PUS,
21034 						 pad2g_tune_pus);
21035 		}
21036 	}
21037 
21038 	udelay(50);
21039 
21040 	wlc_phy_radio205x_vcocal_nphy(pi);
21041 }
21042 
21043 static void
21044 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21045 			    const struct nphy_sfo_cfg *ci)
21046 {
21047 	u16 val;
21048 
21049 	val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21050 	if (CHSPEC_IS5G(chanspec) && !val) {
21051 
21052 		val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21053 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21054 		      (val | MAC_PHY_FORCE_CLK));
21055 
21056 		or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21057 			   (BBCFG_RESETCCA | BBCFG_RESETRX));
21058 
21059 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21060 
21061 		or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
21062 	} else if (!CHSPEC_IS5G(chanspec) && val) {
21063 
21064 		and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
21065 
21066 		val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21067 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21068 		      (val | MAC_PHY_FORCE_CLK));
21069 
21070 		and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21071 			    (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21072 
21073 		bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21074 	}
21075 
21076 	write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21077 	write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21078 	write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21079 
21080 	write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21081 	write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21082 	write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21083 
21084 	if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21085 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
21086 
21087 		or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21088 	} else {
21089 		wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
21090 					NPHY_ClassifierCtrl_ofdm_en);
21091 
21092 		if (CHSPEC_IS2G(chanspec))
21093 			and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21094 	}
21095 
21096 	if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21097 		wlc_phy_txpwr_fixpower_nphy(pi);
21098 
21099 	if (NREV_LT(pi->pubpi.phy_rev, 3))
21100 		wlc_phy_adjust_lnagaintbl_nphy(pi);
21101 
21102 	wlc_phy_txlpfbw_nphy(pi);
21103 
21104 	if (NREV_GE(pi->pubpi.phy_rev, 3)
21105 	    && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21106 		u8 spuravoid = 0;
21107 
21108 		val = CHSPEC_CHANNEL(chanspec);
21109 		if (!CHSPEC_IS40(pi->radio_chanspec)) {
21110 			if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21111 				if ((val == 13) || (val == 14) || (val == 153))
21112 					spuravoid = 1;
21113 			} else if (((val >= 5) && (val <= 8)) || (val == 13)
21114 				   || (val == 14)) {
21115 				spuravoid = 1;
21116 			}
21117 		} else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21118 			if (val == 54)
21119 				spuravoid = 1;
21120 		} else if (pi->nphy_aband_spurwar_en &&
21121 		    ((val == 38) || (val == 102) || (val == 118))) {
21122 			if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716)
21123 			    && (pi->sh->chippkg == BCMA_PKG_ID_BCM4717)) {
21124 				spuravoid = 0;
21125 			} else {
21126 				spuravoid = 1;
21127 			}
21128 		}
21129 
21130 		if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21131 			spuravoid = 1;
21132 
21133 		if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
21134 		    (pi->sh->chip == BCMA_CHIP_ID_BCM43225)) {
21135 			bcma_pmu_spuravoid_pllupdate(&pi->d11core->bus->drv_cc,
21136 						     spuravoid);
21137 		} else {
21138 			wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21139 			bcma_pmu_spuravoid_pllupdate(&pi->d11core->bus->drv_cc,
21140 						     spuravoid);
21141 			wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21142 		}
21143 
21144 		if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224) ||
21145 		    (pi->sh->chip == BCMA_CHIP_ID_BCM43225)) {
21146 			if (spuravoid == 1) {
21147 				bcma_write16(pi->d11core,
21148 					     D11REGOFFS(tsf_clk_frac_l),
21149 					     0x5341);
21150 				bcma_write16(pi->d11core,
21151 					     D11REGOFFS(tsf_clk_frac_h), 0x8);
21152 			} else {
21153 				bcma_write16(pi->d11core,
21154 					     D11REGOFFS(tsf_clk_frac_l),
21155 					     0x8889);
21156 				bcma_write16(pi->d11core,
21157 					     D11REGOFFS(tsf_clk_frac_h), 0x8);
21158 			}
21159 		}
21160 
21161 		if (!((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
21162 		      (pi->sh->chip == BCMA_CHIP_ID_BCM47162)))
21163 			wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21164 
21165 		mod_phy_reg(pi, 0x01, (0x1 << 15),
21166 			    ((spuravoid > 0) ? (0x1 << 15) : 0));
21167 
21168 		wlc_phy_resetcca_nphy(pi);
21169 
21170 		pi->phy_isspuravoid = (spuravoid > 0);
21171 	}
21172 
21173 	if (NREV_LT(pi->pubpi.phy_rev, 7))
21174 		write_phy_reg(pi, 0x17e, 0x3830);
21175 
21176 	wlc_phy_spurwar_nphy(pi);
21177 }
21178 
21179 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21180 {
21181 	int freq;
21182 	const struct chan_info_nphy_radio2057 *t0 = NULL;
21183 	const struct chan_info_nphy_radio205x *t1 = NULL;
21184 	const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21185 	const struct chan_info_nphy_2055 *t3 = NULL;
21186 
21187 	if (!wlc_phy_chan2freq_nphy
21188 		    (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21189 		return;
21190 
21191 	wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21192 
21193 	if (CHSPEC_BW(chanspec) != pi->bw)
21194 		wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21195 
21196 	if (CHSPEC_IS40(chanspec)) {
21197 		if (CHSPEC_SB_UPPER(chanspec)) {
21198 			or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21199 			if (NREV_GE(pi->pubpi.phy_rev, 7))
21200 				or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21201 		} else {
21202 			and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21203 			if (NREV_GE(pi->pubpi.phy_rev, 7))
21204 				and_phy_reg(pi, 0x310,
21205 					    (~PRIM_SEL_UP20 & 0xffff));
21206 		}
21207 	}
21208 
21209 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21210 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21211 
21212 			if ((pi->pubpi.radiorev <= 4)
21213 			    || (pi->pubpi.radiorev == 6)) {
21214 				mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
21215 					      0x2,
21216 					      (CHSPEC_IS5G(chanspec) ? (1 << 1)
21217 					       : 0));
21218 				mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
21219 					      0x2,
21220 					      (CHSPEC_IS5G(chanspec) ? (1 << 1)
21221 					       : 0));
21222 			}
21223 
21224 			wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21225 			wlc_phy_chanspec_nphy_setup(pi, chanspec,
21226 				(pi->pubpi.radiorev == 5) ?
21227 				(const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21228 				(const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21229 
21230 		} else {
21231 
21232 			mod_radio_reg(pi,
21233 				      RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
21234 				      0x4,
21235 				      (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21236 			wlc_phy_chanspec_radio2056_setup(pi, t1);
21237 
21238 			wlc_phy_chanspec_nphy_setup(pi, chanspec,
21239 				(const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21240 		}
21241 
21242 	} else {
21243 
21244 		mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
21245 			      (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21246 			       : (0x05 << 4)));
21247 
21248 		wlc_phy_chanspec_radio2055_setup(pi, t3);
21249 		wlc_phy_chanspec_nphy_setup(pi, chanspec,
21250 					    (const struct nphy_sfo_cfg *)
21251 					     &(t3->PHY_BW1a));
21252 	}
21253 
21254 }
21255 
21256 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21257 {
21258 	struct brcms_phy *pi = container_of(ppi, struct brcms_phy, pubpi_ro);
21259 	u16 mask = 0xfc00;
21260 	u32 mc = 0;
21261 
21262 	if (NREV_GE(pi->pubpi.phy_rev, 7))
21263 		return;
21264 
21265 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21266 		u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21267 
21268 		if (!lut_init)
21269 			return;
21270 
21271 		if (pi->srom_fem2g.antswctrllut == 0) {
21272 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21273 						 1, 0x02, 16, &v0);
21274 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21275 						 1, 0x03, 16, &v1);
21276 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21277 						 1, 0x08, 16, &v2);
21278 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21279 						 1, 0x0C, 16, &v3);
21280 		}
21281 
21282 		if (pi->srom_fem5g.antswctrllut == 0) {
21283 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21284 						 1, 0x12, 16, &v0);
21285 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21286 						 1, 0x13, 16, &v1);
21287 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21288 						 1, 0x18, 16, &v2);
21289 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21290 						 1, 0x1C, 16, &v3);
21291 		}
21292 	} else {
21293 
21294 		write_phy_reg(pi, 0xc8, 0x0);
21295 		write_phy_reg(pi, 0xc9, 0x0);
21296 
21297 		bcma_chipco_gpio_control(&pi->d11core->bus->drv_cc, mask, mask);
21298 
21299 		mc = bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
21300 		mc &= ~MCTL_GPOUT_SEL_MASK;
21301 		bcma_write32(pi->d11core, D11REGOFFS(maccontrol), mc);
21302 
21303 		bcma_set16(pi->d11core, D11REGOFFS(psm_gpio_oe), mask);
21304 
21305 		bcma_mask16(pi->d11core, D11REGOFFS(psm_gpio_out), ~mask);
21306 
21307 		if (lut_init) {
21308 			write_phy_reg(pi, 0xf8, 0x02d8);
21309 			write_phy_reg(pi, 0xf9, 0x0301);
21310 			write_phy_reg(pi, 0xfa, 0x02d8);
21311 			write_phy_reg(pi, 0xfb, 0x0301);
21312 		}
21313 	}
21314 }
21315 
21316 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
21317 {
21318 	u16 curr_ctl, new_ctl;
21319 	bool suspended = false;
21320 
21321 	if (D11REV_IS(pi->sh->corerev, 16)) {
21322 		suspended = (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
21323 			     MCTL_EN_MAC) ? false : true;
21324 		if (!suspended)
21325 			wlapi_suspend_mac_and_wait(pi->sh->physhim);
21326 	}
21327 
21328 	curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21329 
21330 	new_ctl = (curr_ctl & (~mask)) | (val & mask);
21331 
21332 	mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21333 
21334 	if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21335 		wlapi_enable_mac(pi->sh->physhim);
21336 
21337 	return new_ctl;
21338 }
21339 
21340 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
21341 {
21342 	u16 trigger_mask, status_mask;
21343 	u16 orig_RfseqCoreActv;
21344 
21345 	switch (cmd) {
21346 	case NPHY_RFSEQ_RX2TX:
21347 		trigger_mask = NPHY_RfseqTrigger_rx2tx;
21348 		status_mask = NPHY_RfseqStatus_rx2tx;
21349 		break;
21350 	case NPHY_RFSEQ_TX2RX:
21351 		trigger_mask = NPHY_RfseqTrigger_tx2rx;
21352 		status_mask = NPHY_RfseqStatus_tx2rx;
21353 		break;
21354 	case NPHY_RFSEQ_RESET2RX:
21355 		trigger_mask = NPHY_RfseqTrigger_reset2rx;
21356 		status_mask = NPHY_RfseqStatus_reset2rx;
21357 		break;
21358 	case NPHY_RFSEQ_UPDATEGAINH:
21359 		trigger_mask = NPHY_RfseqTrigger_updategainh;
21360 		status_mask = NPHY_RfseqStatus_updategainh;
21361 		break;
21362 	case NPHY_RFSEQ_UPDATEGAINL:
21363 		trigger_mask = NPHY_RfseqTrigger_updategainl;
21364 		status_mask = NPHY_RfseqStatus_updategainl;
21365 		break;
21366 	case NPHY_RFSEQ_UPDATEGAINU:
21367 		trigger_mask = NPHY_RfseqTrigger_updategainu;
21368 		status_mask = NPHY_RfseqStatus_updategainu;
21369 		break;
21370 	default:
21371 		return;
21372 	}
21373 
21374 	orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21375 	or_phy_reg(pi, 0xa1,
21376 		   (NPHY_RfseqMode_CoreActv_override |
21377 		    NPHY_RfseqMode_Trigger_override));
21378 	or_phy_reg(pi, 0xa3, trigger_mask);
21379 	SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21380 	write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21381 	WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21382 }
21383 
21384 static void
21385 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21386 				     u8 core_mask, u8 off)
21387 {
21388 	u16 rfmxgain = 0, lpfgain = 0;
21389 	u16 tgain = 0;
21390 
21391 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21392 
21393 		switch (cmd) {
21394 		case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
21395 			wlc_phy_rfctrl_override_nphy_rev7(
21396 				pi, (0x1 << 5),
21397 				value, core_mask, off,
21398 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21399 			wlc_phy_rfctrl_override_nphy_rev7(
21400 				pi, (0x1 << 4), value,
21401 				core_mask, off,
21402 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21403 			wlc_phy_rfctrl_override_nphy_rev7(
21404 				pi, (0x1 << 3), value,
21405 				core_mask, off,
21406 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21407 			break;
21408 		case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
21409 			wlc_phy_rfctrl_override_nphy_rev7(
21410 				pi, (0x1 << 2),
21411 				value, core_mask, off,
21412 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21413 			wlc_phy_rfctrl_override_nphy_rev7(
21414 				pi, (0x1 << 1), value,
21415 				core_mask, off,
21416 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21417 			wlc_phy_rfctrl_override_nphy_rev7(
21418 				pi, (0x1 << 0), value,
21419 				core_mask, off,
21420 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21421 			wlc_phy_rfctrl_override_nphy_rev7(
21422 				pi, (0x1 << 1), value,
21423 				core_mask, off,
21424 				NPHY_REV7_RFCTRLOVERRIDE_ID2);
21425 			wlc_phy_rfctrl_override_nphy_rev7(
21426 				pi, (0x1 << 11), 0,
21427 				core_mask, off,
21428 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21429 			break;
21430 		case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
21431 			wlc_phy_rfctrl_override_nphy_rev7(
21432 				pi, (0x1 << 2),
21433 				value, core_mask, off,
21434 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21435 			wlc_phy_rfctrl_override_nphy_rev7(
21436 				pi, (0x1 << 1), value,
21437 				core_mask, off,
21438 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21439 			wlc_phy_rfctrl_override_nphy_rev7(
21440 				pi, (0x1 << 0), value,
21441 				core_mask, off,
21442 				NPHY_REV7_RFCTRLOVERRIDE_ID2);
21443 			wlc_phy_rfctrl_override_nphy_rev7(
21444 				pi, (0x1 << 2), value,
21445 				core_mask, off,
21446 				NPHY_REV7_RFCTRLOVERRIDE_ID2);
21447 			wlc_phy_rfctrl_override_nphy_rev7(
21448 				pi, (0x1 << 11), 1,
21449 				core_mask, off,
21450 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
21451 			break;
21452 		case NPHY_REV7_RfctrlOverride_cmd_rxgain:
21453 			rfmxgain = value & 0x000ff;
21454 			lpfgain = value & 0x0ff00;
21455 			lpfgain = lpfgain >> 8;
21456 
21457 			wlc_phy_rfctrl_override_nphy_rev7(
21458 				pi, (0x1 << 11),
21459 				rfmxgain, core_mask,
21460 				off,
21461 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21462 			wlc_phy_rfctrl_override_nphy_rev7(
21463 				pi, (0x3 << 13),
21464 				lpfgain, core_mask,
21465 				off,
21466 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21467 			break;
21468 		case NPHY_REV7_RfctrlOverride_cmd_txgain:
21469 			tgain = value & 0x7fff;
21470 			lpfgain = value & 0x8000;
21471 			lpfgain = lpfgain >> 14;
21472 
21473 			wlc_phy_rfctrl_override_nphy_rev7(
21474 				pi, (0x1 << 12),
21475 				tgain, core_mask, off,
21476 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21477 			wlc_phy_rfctrl_override_nphy_rev7(
21478 				pi, (0x1 << 13),
21479 				lpfgain, core_mask,
21480 				off,
21481 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
21482 			break;
21483 		}
21484 	}
21485 }
21486 
21487 static void
21488 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21489 			       u8 coresel, u8 rail, u8 rssi_type)
21490 {
21491 	u16 valuetostuff;
21492 
21493 	offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21494 		 NPHY_RSSICAL_MAXREAD : offset;
21495 	offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21496 		 -NPHY_RSSICAL_MAXREAD - 1 : offset;
21497 
21498 	valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21499 
21500 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21501 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21502 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21503 		write_phy_reg(pi, 0x1a6, valuetostuff);
21504 
21505 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21506 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21507 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21508 		write_phy_reg(pi, 0x1ac, valuetostuff);
21509 
21510 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21511 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21512 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21513 		write_phy_reg(pi, 0x1b2, valuetostuff);
21514 
21515 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21516 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21517 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21518 		write_phy_reg(pi, 0x1b8, valuetostuff);
21519 
21520 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21521 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21522 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21523 		write_phy_reg(pi, 0x1a4, valuetostuff);
21524 
21525 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21526 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21527 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21528 		write_phy_reg(pi, 0x1aa, valuetostuff);
21529 
21530 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21531 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21532 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21533 		write_phy_reg(pi, 0x1b0, valuetostuff);
21534 
21535 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21536 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21537 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21538 		write_phy_reg(pi, 0x1b6, valuetostuff);
21539 
21540 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21541 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21542 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21543 		write_phy_reg(pi, 0x1a5, valuetostuff);
21544 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21545 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21546 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21547 		write_phy_reg(pi, 0x1ab, valuetostuff);
21548 
21549 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21550 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21551 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21552 		write_phy_reg(pi, 0x1b1, valuetostuff);
21553 
21554 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21555 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21556 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21557 		write_phy_reg(pi, 0x1b7, valuetostuff);
21558 
21559 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21560 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21561 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21562 		write_phy_reg(pi, 0x1a7, valuetostuff);
21563 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21564 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21565 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21566 		write_phy_reg(pi, 0x1ad, valuetostuff);
21567 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21568 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21569 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21570 		write_phy_reg(pi, 0x1b3, valuetostuff);
21571 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21572 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21573 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21574 		write_phy_reg(pi, 0x1b9, valuetostuff);
21575 
21576 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21577 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21578 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21579 		write_phy_reg(pi, 0x1a8, valuetostuff);
21580 
21581 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21582 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21583 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21584 		write_phy_reg(pi, 0x1ae, valuetostuff);
21585 
21586 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21587 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21588 	    (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21589 		write_phy_reg(pi, 0x1b4, valuetostuff);
21590 
21591 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21592 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21593 	    (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21594 		write_phy_reg(pi, 0x1ba, valuetostuff);
21595 
21596 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21597 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21598 	    (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21599 		write_phy_reg(pi, 0x1a9, valuetostuff);
21600 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21601 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21602 	    (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21603 		write_phy_reg(pi, 0x1b5, valuetostuff);
21604 
21605 	if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21606 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21607 	    (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21608 		write_phy_reg(pi, 0x1af, valuetostuff);
21609 
21610 	if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21611 	     (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21612 	    (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21613 		write_phy_reg(pi, 0x1bb, valuetostuff);
21614 }
21615 
21616 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21617 {
21618 	if (PHY_IPA(pi)) {
21619 		if (NREV_GE(pi->pubpi.phy_rev, 7))
21620 			write_radio_reg(pi,
21621 					((core == PHY_CORE_0) ?
21622 					 RADIO_2057_TX0_TX_SSI_MUX :
21623 					 RADIO_2057_TX1_TX_SSI_MUX),
21624 					(CHSPEC_IS5G(pi->radio_chanspec) ?
21625 					0xc : 0xe));
21626 		else
21627 			write_radio_reg(pi,
21628 					RADIO_2056_TX_TX_SSI_MUX |
21629 					((core == PHY_CORE_0) ?
21630 					 RADIO_2056_TX0 : RADIO_2056_TX1),
21631 					(CHSPEC_IS5G(pi->radio_chanspec) ?
21632 					0xc : 0xe));
21633 	} else {
21634 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21635 			write_radio_reg(pi,
21636 					((core == PHY_CORE_0) ?
21637 					 RADIO_2057_TX0_TX_SSI_MUX :
21638 					 RADIO_2057_TX1_TX_SSI_MUX),
21639 					0x11);
21640 
21641 			if (pi->pubpi.radioid == BCM2057_ID)
21642 				write_radio_reg(pi,
21643 						RADIO_2057_IQTEST_SEL_PU, 0x1);
21644 
21645 		} else {
21646 			write_radio_reg(pi,
21647 					RADIO_2056_TX_TX_SSI_MUX |
21648 					((core == PHY_CORE_0) ?
21649 					 RADIO_2056_TX0 : RADIO_2056_TX1),
21650 					0x11);
21651 		}
21652 	}
21653 }
21654 
21655 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21656 {
21657 	u16 mask, val;
21658 	u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21659 	    startseq;
21660 	u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21661 	    rfctrlovr_trigger_val;
21662 	u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21663 	u16 rfctrlcmd_val, rfctrlovr_val;
21664 	u8 core;
21665 
21666 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21667 		if (core_code == RADIO_MIMO_CORESEL_OFF) {
21668 			mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21669 			mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21670 
21671 			mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21672 			mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21673 
21674 			mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21675 			mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21676 
21677 			mask = (0x1 << 2) |
21678 			       (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21679 			mod_phy_reg(pi, 0xf9, mask, 0);
21680 			mod_phy_reg(pi, 0xfb, mask, 0);
21681 
21682 		} else {
21683 			for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21684 				if (core_code == RADIO_MIMO_CORESEL_CORE1
21685 				    && core == PHY_CORE_1)
21686 					continue;
21687 				else if (core_code == RADIO_MIMO_CORESEL_CORE2
21688 					 && core == PHY_CORE_0)
21689 					continue;
21690 
21691 				mod_phy_reg(pi, (core == PHY_CORE_0) ?
21692 					    0x8f : 0xa5, (0x1 << 9), 1 << 9);
21693 
21694 				if (rssi_type == NPHY_RSSI_SEL_W1 ||
21695 				    rssi_type == NPHY_RSSI_SEL_W2 ||
21696 				    rssi_type == NPHY_RSSI_SEL_NB) {
21697 					mod_phy_reg(pi,
21698 						    (core ==
21699 						     PHY_CORE_0) ? 0xa6 : 0xa7,
21700 						    (0x3 << 8), 0);
21701 
21702 					mask = (0x1 << 2) |
21703 					       (0x1 << 3) |
21704 					       (0x1 << 4) | (0x1 << 5);
21705 					mod_phy_reg(pi,
21706 						    (core ==
21707 						     PHY_CORE_0) ? 0xf9 : 0xfb,
21708 						    mask, 0);
21709 
21710 					if (rssi_type == NPHY_RSSI_SEL_W1) {
21711 						if (CHSPEC_IS5G(
21712 							  pi->radio_chanspec)) {
21713 							mask = (0x1 << 2);
21714 							val = 1 << 2;
21715 						} else {
21716 							mask = (0x1 << 3);
21717 							val = 1 << 3;
21718 						}
21719 					} else if (rssi_type ==
21720 						   NPHY_RSSI_SEL_W2) {
21721 						mask = (0x1 << 4);
21722 						val = 1 << 4;
21723 					} else {
21724 						mask = (0x1 << 5);
21725 						val = 1 << 5;
21726 					}
21727 					mod_phy_reg(pi,
21728 						    (core ==
21729 						     PHY_CORE_0) ? 0xf9 : 0xfb,
21730 						    mask, val);
21731 
21732 					mask = (0x1 << 5);
21733 					val = 1 << 5;
21734 					mod_phy_reg(pi, (core == PHY_CORE_0) ?
21735 						    0xe5 : 0xe6, mask, val);
21736 				} else {
21737 					if (rssi_type == NPHY_RSSI_SEL_TBD) {
21738 						mask = (0x3 << 8);
21739 						val = 1 << 8;
21740 						mod_phy_reg(pi,
21741 							    (core ==
21742 							     PHY_CORE_0) ? 0xa6
21743 							    : 0xa7, mask, val);
21744 						mask = (0x3 << 10);
21745 						val = 1 << 10;
21746 						mod_phy_reg(pi,
21747 							    (core ==
21748 							     PHY_CORE_0) ? 0xa6
21749 							    : 0xa7, mask, val);
21750 					} else if (rssi_type ==
21751 						   NPHY_RSSI_SEL_IQ) {
21752 						mask = (0x3 << 8);
21753 						val = 2 << 8;
21754 						mod_phy_reg(pi,
21755 							    (core ==
21756 							     PHY_CORE_0) ? 0xa6
21757 							    : 0xa7, mask, val);
21758 						mask = (0x3 << 10);
21759 						val = 2 << 10;
21760 						mod_phy_reg(pi,
21761 							    (core ==
21762 							     PHY_CORE_0) ? 0xa6
21763 							    : 0xa7, mask, val);
21764 					} else {
21765 						mask = (0x3 << 8);
21766 						val = 3 << 8;
21767 						mod_phy_reg(pi,
21768 							    (core ==
21769 							     PHY_CORE_0) ? 0xa6
21770 							    : 0xa7, mask, val);
21771 						mask = (0x3 << 10);
21772 						val = 3 << 10;
21773 						mod_phy_reg(pi,
21774 							    (core ==
21775 							     PHY_CORE_0) ? 0xa6
21776 							    : 0xa7, mask, val);
21777 						brcms_phy_wr_tx_mux(pi, core);
21778 						afectrlovr_rssi_val = 1 << 9;
21779 						mod_phy_reg(pi,
21780 							   (core ==
21781 							    PHY_CORE_0) ? 0x8f
21782 							   : 0xa5, (0x1 << 9),
21783 							   afectrlovr_rssi_val);
21784 					}
21785 				}
21786 			}
21787 		}
21788 	} else {
21789 
21790 		if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21791 		    (rssi_type == NPHY_RSSI_SEL_W2) ||
21792 		    (rssi_type == NPHY_RSSI_SEL_NB))
21793 			val = 0x0;
21794 		else if (rssi_type == NPHY_RSSI_SEL_TBD)
21795 			val = 0x1;
21796 		else if (rssi_type == NPHY_RSSI_SEL_IQ)
21797 			val = 0x2;
21798 		else
21799 			val = 0x3;
21800 
21801 		mask = ((0x3 << 12) | (0x3 << 14));
21802 		val = (val << 12) | (val << 14);
21803 		mod_phy_reg(pi, 0xa6, mask, val);
21804 		mod_phy_reg(pi, 0xa7, mask, val);
21805 
21806 		if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21807 		    (rssi_type == NPHY_RSSI_SEL_W2) ||
21808 		    (rssi_type == NPHY_RSSI_SEL_NB)) {
21809 			if (rssi_type == NPHY_RSSI_SEL_W1)
21810 				val = 0x1;
21811 			if (rssi_type == NPHY_RSSI_SEL_W2)
21812 				val = 0x2;
21813 			if (rssi_type == NPHY_RSSI_SEL_NB)
21814 				val = 0x3;
21815 
21816 			mask = (0x3 << 4);
21817 			val = (val << 4);
21818 			mod_phy_reg(pi, 0x7a, mask, val);
21819 			mod_phy_reg(pi, 0x7d, mask, val);
21820 		}
21821 
21822 		if (core_code == RADIO_MIMO_CORESEL_OFF) {
21823 			afectrlovr_rssi_val = 0;
21824 			rfctrlcmd_rxen_val = 0;
21825 			rfctrlcmd_coresel_val = 0;
21826 			rfctrlovr_rssi_val = 0;
21827 			rfctrlovr_rxen_val = 0;
21828 			rfctrlovr_coresel_val = 0;
21829 			rfctrlovr_trigger_val = 0;
21830 			startseq = 0;
21831 		} else {
21832 			afectrlovr_rssi_val = 1;
21833 			rfctrlcmd_rxen_val = 1;
21834 			rfctrlcmd_coresel_val = core_code;
21835 			rfctrlovr_rssi_val = 1;
21836 			rfctrlovr_rxen_val = 1;
21837 			rfctrlovr_coresel_val = 1;
21838 			rfctrlovr_trigger_val = 1;
21839 			startseq = 1;
21840 		}
21841 
21842 		afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
21843 		afectrlovr_rssi_val = (afectrlovr_rssi_val <<
21844 				       12) | (afectrlovr_rssi_val << 13);
21845 		mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
21846 			    afectrlovr_rssi_val);
21847 
21848 		if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21849 		    (rssi_type == NPHY_RSSI_SEL_W2) ||
21850 		    (rssi_type == NPHY_RSSI_SEL_NB)) {
21851 			rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
21852 			rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
21853 					(rfctrlcmd_coresel_val << 3);
21854 
21855 			rfctrlovr_mask = ((0x1 << 5) |
21856 					  (0x1 << 12) |
21857 					  (0x1 << 1) | (0x1 << 0));
21858 			rfctrlovr_val = (rfctrlovr_rssi_val <<
21859 					 5) |
21860 					(rfctrlovr_rxen_val << 12) |
21861 					(rfctrlovr_coresel_val << 1) |
21862 					(rfctrlovr_trigger_val << 0);
21863 
21864 			mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
21865 			mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
21866 
21867 			mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
21868 			udelay(20);
21869 
21870 			mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
21871 		}
21872 	}
21873 }
21874 
21875 int
21876 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
21877 		       u8 nsamps)
21878 {
21879 	s16 rssi0, rssi1;
21880 	u16 afectrlCore1_save = 0;
21881 	u16 afectrlCore2_save = 0;
21882 	u16 afectrlOverride1_save = 0;
21883 	u16 afectrlOverride2_save = 0;
21884 	u16 rfctrlOverrideAux0_save = 0;
21885 	u16 rfctrlOverrideAux1_save = 0;
21886 	u16 rfctrlMiscReg1_save = 0;
21887 	u16 rfctrlMiscReg2_save = 0;
21888 	u16 rfctrlcmd_save = 0;
21889 	u16 rfctrloverride_save = 0;
21890 	u16 rfctrlrssiothers1_save = 0;
21891 	u16 rfctrlrssiothers2_save = 0;
21892 	s8 tmp_buf[4];
21893 	u8 ctr = 0, samp = 0;
21894 	s32 rssi_out_val;
21895 	u16 gpiosel_orig;
21896 
21897 	afectrlCore1_save = read_phy_reg(pi, 0xa6);
21898 	afectrlCore2_save = read_phy_reg(pi, 0xa7);
21899 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21900 		rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21901 		rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21902 		afectrlOverride1_save = read_phy_reg(pi, 0x8f);
21903 		afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21904 		rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21905 		rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21906 	} else {
21907 		afectrlOverride1_save = read_phy_reg(pi, 0xa5);
21908 		rfctrlcmd_save = read_phy_reg(pi, 0x78);
21909 		rfctrloverride_save = read_phy_reg(pi, 0xec);
21910 		rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
21911 		rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
21912 	}
21913 
21914 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21915 
21916 	gpiosel_orig = read_phy_reg(pi, 0xca);
21917 	if (NREV_LT(pi->pubpi.phy_rev, 2))
21918 		write_phy_reg(pi, 0xca, 5);
21919 
21920 	for (ctr = 0; ctr < 4; ctr++)
21921 		rssi_buf[ctr] = 0;
21922 
21923 	for (samp = 0; samp < nsamps; samp++) {
21924 		if (NREV_LT(pi->pubpi.phy_rev, 2)) {
21925 			rssi0 = read_phy_reg(pi, 0x1c9);
21926 			rssi1 = read_phy_reg(pi, 0x1ca);
21927 		} else {
21928 			rssi0 = read_phy_reg(pi, 0x219);
21929 			rssi1 = read_phy_reg(pi, 0x21a);
21930 		}
21931 
21932 		ctr = 0;
21933 		tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
21934 		tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
21935 		tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
21936 		tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
21937 
21938 		for (ctr = 0; ctr < 4; ctr++)
21939 			rssi_buf[ctr] += tmp_buf[ctr];
21940 
21941 	}
21942 
21943 	rssi_out_val = rssi_buf[3] & 0xff;
21944 	rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
21945 	rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
21946 	rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
21947 
21948 	if (NREV_LT(pi->pubpi.phy_rev, 2))
21949 		write_phy_reg(pi, 0xca, gpiosel_orig);
21950 
21951 	write_phy_reg(pi, 0xa6, afectrlCore1_save);
21952 	write_phy_reg(pi, 0xa7, afectrlCore2_save);
21953 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21954 		write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
21955 		write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
21956 		write_phy_reg(pi, 0x8f, afectrlOverride1_save);
21957 		write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21958 		write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
21959 		write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
21960 	} else {
21961 		write_phy_reg(pi, 0xa5, afectrlOverride1_save);
21962 		write_phy_reg(pi, 0x78, rfctrlcmd_save);
21963 		write_phy_reg(pi, 0xec, rfctrloverride_save);
21964 		write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
21965 		write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
21966 	}
21967 
21968 	return rssi_out_val;
21969 }
21970 
21971 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
21972 {
21973 	u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
21974 	u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
21975 	u16 pwrdet_rxtx_core1_save;
21976 	u16 pwrdet_rxtx_core2_save;
21977 	u16 afectrlCore1_save;
21978 	u16 afectrlCore2_save;
21979 	u16 afectrlOverride_save;
21980 	u16 afectrlOverride2_save;
21981 	u16 pd_pll_ts_save;
21982 	u16 gpioSel_save;
21983 	s32 radio_temp[4];
21984 	s32 radio_temp2[4];
21985 	u16 syn_tempprocsense_save;
21986 	s16 offset = 0;
21987 
21988 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21989 		u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
21990 		u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
21991 		u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
21992 		s32 auxADC_Vl;
21993 		u16 RfctrlOverride5_save, RfctrlOverride6_save;
21994 		u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
21995 		u16 RSSIMultCoef0QPowerDet_save;
21996 		u16 tempsense_Rcal;
21997 
21998 		syn_tempprocsense_save =
21999 			read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
22000 
22001 		afectrlCore1_save = read_phy_reg(pi, 0xa6);
22002 		afectrlCore2_save = read_phy_reg(pi, 0xa7);
22003 		afectrlOverride_save = read_phy_reg(pi, 0x8f);
22004 		afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22005 		RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22006 		RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22007 		RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22008 		RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22009 		RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22010 
22011 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22012 					&auxADC_Vmid_save);
22013 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22014 					&auxADC_Av_save);
22015 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22016 					&auxADC_rssi_ctrlL_save);
22017 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22018 					&auxADC_rssi_ctrlH_save);
22019 
22020 		write_phy_reg(pi, 0x1ae, 0x0);
22021 
22022 		auxADC_rssi_ctrlL = 0x0;
22023 		auxADC_rssi_ctrlH = 0x20;
22024 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22025 					 &auxADC_rssi_ctrlL);
22026 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22027 					 &auxADC_rssi_ctrlH);
22028 
22029 		tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22030 
22031 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22032 				tempsense_Rcal | 0x01);
22033 
22034 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22035 						  1, 0, 0,
22036 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
22037 		mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22038 		mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22039 		mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22040 		mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22041 
22042 		mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22043 		mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22044 		mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22045 		mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22046 		udelay(5);
22047 		mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22048 		mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22049 		mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22050 		mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22051 		mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22052 		mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22053 		mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22054 		mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22055 		mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22056 		mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22057 
22058 		auxADC_Vmid = 0xA3;
22059 		auxADC_Av = 0x0;
22060 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22061 					 &auxADC_Vmid);
22062 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22063 					 &auxADC_Av);
22064 
22065 		udelay(3);
22066 
22067 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22068 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22069 				tempsense_Rcal | 0x03);
22070 
22071 		udelay(5);
22072 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22073 
22074 		auxADC_Av = 0x7;
22075 		if (radio_temp[1] + radio_temp2[1] < -30) {
22076 			auxADC_Vmid = 0x45;
22077 			auxADC_Vl = 263;
22078 		} else if (radio_temp[1] + radio_temp2[1] < -9) {
22079 			auxADC_Vmid = 0x200;
22080 			auxADC_Vl = 467;
22081 		} else if (radio_temp[1] + radio_temp2[1] < 11) {
22082 			auxADC_Vmid = 0x266;
22083 			auxADC_Vl = 634;
22084 		} else {
22085 			auxADC_Vmid = 0x2D5;
22086 			auxADC_Vl = 816;
22087 		}
22088 
22089 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22090 					 &auxADC_Vmid);
22091 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22092 					 &auxADC_Av);
22093 
22094 		udelay(3);
22095 
22096 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22097 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22098 				tempsense_Rcal | 0x01);
22099 
22100 		udelay(5);
22101 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22102 
22103 		write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22104 				syn_tempprocsense_save);
22105 
22106 		write_phy_reg(pi, 0xa6, afectrlCore1_save);
22107 		write_phy_reg(pi, 0xa7, afectrlCore2_save);
22108 		write_phy_reg(pi, 0x8f, afectrlOverride_save);
22109 		write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22110 		write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22111 		write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22112 		write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22113 		write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22114 		write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22115 
22116 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22117 					 &auxADC_Vmid_save);
22118 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22119 					 &auxADC_Av_save);
22120 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22121 					 &auxADC_rssi_ctrlL_save);
22122 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22123 					 &auxADC_rssi_ctrlH_save);
22124 
22125 		if (pi->sh->chip == BCMA_CHIP_ID_BCM5357) {
22126 			radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
22127 					 + 88 * (auxADC_Vl) - 27111 +
22128 					 128) / 256;
22129 		} else {
22130 			radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22131 					 + 82 * (auxADC_Vl) - 28861 +
22132 					 128) / 256;
22133 		}
22134 
22135 		offset = (s16) pi->phy_tempsense_offset;
22136 
22137 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22138 		syn_tempprocsense_save =
22139 			read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
22140 
22141 		afectrlCore1_save = read_phy_reg(pi, 0xa6);
22142 		afectrlCore2_save = read_phy_reg(pi, 0xa7);
22143 		afectrlOverride_save = read_phy_reg(pi, 0x8f);
22144 		afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22145 		gpioSel_save = read_phy_reg(pi, 0xca);
22146 
22147 		write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22148 
22149 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22150 		if (NREV_LT(pi->pubpi.phy_rev, 7))
22151 			write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
22152 
22153 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22154 		if (NREV_GE(pi->pubpi.phy_rev, 7))
22155 			write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
22156 		else
22157 			write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22158 
22159 		radio_temp[0] =
22160 			(126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22161 
22162 		write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
22163 				syn_tempprocsense_save);
22164 
22165 		write_phy_reg(pi, 0xca, gpioSel_save);
22166 		write_phy_reg(pi, 0xa6, afectrlCore1_save);
22167 		write_phy_reg(pi, 0xa7, afectrlCore2_save);
22168 		write_phy_reg(pi, 0x8f, afectrlOverride_save);
22169 		write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22170 
22171 		offset = (s16) pi->phy_tempsense_offset;
22172 	} else {
22173 
22174 		pwrdet_rxtx_core1_save =
22175 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22176 		pwrdet_rxtx_core2_save =
22177 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22178 		core1_txrf_iqcal1_save =
22179 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22180 		core1_txrf_iqcal2_save =
22181 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22182 		core2_txrf_iqcal1_save =
22183 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22184 		core2_txrf_iqcal2_save =
22185 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22186 		pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22187 
22188 		afectrlCore1_save = read_phy_reg(pi, 0xa6);
22189 		afectrlCore2_save = read_phy_reg(pi, 0xa7);
22190 		afectrlOverride_save = read_phy_reg(pi, 0xa5);
22191 		gpioSel_save = read_phy_reg(pi, 0xca);
22192 
22193 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
22194 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
22195 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
22196 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
22197 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22198 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22199 		write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
22200 
22201 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22202 		xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22203 
22204 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22205 		xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22206 
22207 		wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22208 		xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22209 
22210 		radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22211 		radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22212 		radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22213 		radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22214 
22215 		radio_temp[0] =
22216 			(radio_temp[0] + radio_temp[1] + radio_temp[2] +
22217 			 radio_temp[3]);
22218 
22219 		radio_temp[0] =
22220 			(radio_temp[0] +
22221 			 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22222 
22223 		radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22224 
22225 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
22226 				pwrdet_rxtx_core1_save);
22227 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
22228 				pwrdet_rxtx_core2_save);
22229 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
22230 				core1_txrf_iqcal1_save);
22231 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
22232 				core2_txrf_iqcal1_save);
22233 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
22234 				core1_txrf_iqcal2_save);
22235 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
22236 				core2_txrf_iqcal2_save);
22237 		write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22238 
22239 		write_phy_reg(pi, 0xca, gpioSel_save);
22240 		write_phy_reg(pi, 0xa6, afectrlCore1_save);
22241 		write_phy_reg(pi, 0xa7, afectrlCore2_save);
22242 		write_phy_reg(pi, 0xa5, afectrlOverride_save);
22243 	}
22244 
22245 	return (s16) radio_temp[0] + offset;
22246 }
22247 
22248 static void
22249 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22250 {
22251 	u8 core;
22252 
22253 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22254 		if (rssi_type == NPHY_RSSI_SEL_NB) {
22255 			if (core == PHY_CORE_0) {
22256 				mod_radio_reg(pi,
22257 					      RADIO_2055_CORE1_B0_NBRSSI_VCM,
22258 					      RADIO_2055_NBRSSI_VCM_I_MASK,
22259 					      vcm_buf[2 *
22260 						      core] <<
22261 					      RADIO_2055_NBRSSI_VCM_I_SHIFT);
22262 				mod_radio_reg(pi,
22263 					      RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22264 					      RADIO_2055_NBRSSI_VCM_Q_MASK,
22265 					      vcm_buf[2 * core +
22266 						      1] <<
22267 					      RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22268 			} else {
22269 				mod_radio_reg(pi,
22270 					      RADIO_2055_CORE2_B0_NBRSSI_VCM,
22271 					      RADIO_2055_NBRSSI_VCM_I_MASK,
22272 					      vcm_buf[2 *
22273 						      core] <<
22274 					      RADIO_2055_NBRSSI_VCM_I_SHIFT);
22275 				mod_radio_reg(pi,
22276 					      RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22277 					      RADIO_2055_NBRSSI_VCM_Q_MASK,
22278 					      vcm_buf[2 * core +
22279 						      1] <<
22280 					      RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22281 			}
22282 		} else {
22283 			if (core == PHY_CORE_0)
22284 				mod_radio_reg(pi,
22285 					      RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22286 					      RADIO_2055_WBRSSI_VCM_IQ_MASK,
22287 					      vcm_buf[2 *
22288 						      core] <<
22289 					      RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22290 			else
22291 				mod_radio_reg(pi,
22292 					      RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22293 					      RADIO_2055_WBRSSI_VCM_IQ_MASK,
22294 					      vcm_buf[2 *
22295 						      core] <<
22296 					      RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22297 		}
22298 	}
22299 }
22300 
22301 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22302 {
22303 	u16 classif_state;
22304 	u16 clip_state[2];
22305 	u16 clip_off[] = { 0xffff, 0xffff };
22306 	s32 target_code;
22307 	u8 vcm, min_vcm;
22308 	u8 vcm_final = 0;
22309 	u8 result_idx;
22310 	s32 poll_results[8][4] = {
22311 		{0, 0, 0, 0},
22312 		{0, 0, 0, 0},
22313 		{0, 0, 0, 0},
22314 		{0, 0, 0, 0},
22315 		{0, 0, 0, 0},
22316 		{0, 0, 0, 0},
22317 		{0, 0, 0, 0},
22318 		{0, 0, 0, 0}
22319 	};
22320 	s32 poll_result_core[4] = { 0, 0, 0, 0 };
22321 	s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22322 	s32 fine_digital_offset[4];
22323 	s32 poll_results_min[4] = { 0, 0, 0, 0 };
22324 	s32 min_poll;
22325 	u8 vcm_level_max;
22326 	u8 core;
22327 	u8 wb_cnt;
22328 	u8 rssi_type;
22329 	u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22330 	u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22331 	u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22332 	u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22333 	u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22334 	u16 NPHY_RfctrlCmd_save;
22335 	u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22336 	u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22337 	u8 rxcore_state;
22338 	u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22339 	u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22340 	u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22341 	u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22342 
22343 	NPHY_REV7_RfctrlOverride3_save =
22344 		NPHY_REV7_RfctrlOverride4_save =
22345 		NPHY_REV7_RfctrlOverride5_save =
22346 		NPHY_REV7_RfctrlOverride6_save =
22347 		NPHY_REV7_RfctrlMiscReg3_save =
22348 		NPHY_REV7_RfctrlMiscReg4_save =
22349 		NPHY_REV7_RfctrlMiscReg5_save =
22350 		NPHY_REV7_RfctrlMiscReg6_save = 0;
22351 
22352 	classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22353 	wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22354 	wlc_phy_clip_det_nphy(pi, 0, clip_state);
22355 	wlc_phy_clip_det_nphy(pi, 1, clip_off);
22356 
22357 	NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22358 	NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22359 	NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22360 	NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22361 	NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22362 	NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22363 	NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22364 	NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22365 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22366 		NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22367 		NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22368 		NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22369 		NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22370 	}
22371 	NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22372 	NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22373 	NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22374 	NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22375 	NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22376 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22377 		NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22378 		NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22379 		NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22380 		NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22381 	}
22382 	NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22383 	NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22384 
22385 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22386 					 RADIO_MIMO_CORESEL_ALLRXTX);
22387 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22388 					 RADIO_MIMO_CORESEL_ALLRXTX);
22389 
22390 	if (NREV_GE(pi->pubpi.phy_rev, 7))
22391 		wlc_phy_rfctrl_override_1tomany_nphy(
22392 			pi,
22393 			NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
22394 			0, 0, 0);
22395 	else
22396 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22397 
22398 	if (NREV_GE(pi->pubpi.phy_rev, 7))
22399 		wlc_phy_rfctrl_override_1tomany_nphy(
22400 			pi,
22401 			NPHY_REV7_RfctrlOverride_cmd_rx_pu,
22402 			1, 0, 0);
22403 	else
22404 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22405 
22406 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22407 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22408 						  1, 0, 0,
22409 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
22410 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22411 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
22412 	} else {
22413 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22414 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22415 	}
22416 
22417 	if (CHSPEC_IS5G(pi->radio_chanspec)) {
22418 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22419 			wlc_phy_rfctrl_override_nphy_rev7(
22420 				pi, (0x1 << 5),
22421 				0, 0, 0,
22422 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22423 			wlc_phy_rfctrl_override_nphy_rev7(
22424 				pi, (0x1 << 4), 1, 0,
22425 				0,
22426 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22427 		} else {
22428 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22429 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22430 		}
22431 
22432 	} else {
22433 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22434 			wlc_phy_rfctrl_override_nphy_rev7(
22435 				pi, (0x1 << 4),
22436 				0, 0, 0,
22437 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22438 			wlc_phy_rfctrl_override_nphy_rev7(
22439 				pi, (0x1 << 5), 1, 0,
22440 				0,
22441 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
22442 		} else {
22443 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22444 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22445 		}
22446 	}
22447 
22448 	rxcore_state = wlc_phy_rxcore_getstate_nphy(
22449 		(struct brcms_phy_pub *) pi);
22450 
22451 	vcm_level_max = 8;
22452 
22453 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22454 
22455 		if ((rxcore_state & (1 << core)) == 0)
22456 			continue;
22457 
22458 		wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22459 					       core ==
22460 					       PHY_CORE_0 ?
22461 					       RADIO_MIMO_CORESEL_CORE1 :
22462 					       RADIO_MIMO_CORESEL_CORE2,
22463 					       NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
22464 		wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22465 					       core ==
22466 					       PHY_CORE_0 ?
22467 					       RADIO_MIMO_CORESEL_CORE1 :
22468 					       RADIO_MIMO_CORESEL_CORE2,
22469 					       NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
22470 
22471 		for (vcm = 0; vcm < vcm_level_max; vcm++) {
22472 			if (NREV_GE(pi->pubpi.phy_rev, 7))
22473 				mod_radio_reg(pi, (core == PHY_CORE_0) ?
22474 					      RADIO_2057_NB_MASTER_CORE0 :
22475 					      RADIO_2057_NB_MASTER_CORE1,
22476 					      RADIO_2057_VCM_MASK, vcm);
22477 			else
22478 				mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22479 					      ((core ==
22480 						PHY_CORE_0) ? RADIO_2056_RX0 :
22481 					       RADIO_2056_RX1),
22482 					      RADIO_2056_VCM_MASK,
22483 					      vcm << RADIO_2056_RSSI_VCM_SHIFT);
22484 
22485 			wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
22486 					       &poll_results[vcm][0],
22487 					       NPHY_RSSICAL_NPOLL);
22488 		}
22489 
22490 		for (result_idx = 0; result_idx < 4; result_idx++) {
22491 			if ((core == result_idx / 2) &&
22492 			    (result_idx % 2 == 0)) {
22493 
22494 				min_d = NPHY_RSSICAL_MAXD;
22495 				min_vcm = 0;
22496 				min_poll =
22497 					NPHY_RSSICAL_MAXREAD *
22498 					NPHY_RSSICAL_NPOLL + 1;
22499 				for (vcm = 0; vcm < vcm_level_max; vcm++) {
22500 					curr_d =
22501 						poll_results[vcm][result_idx] *
22502 						poll_results[vcm][result_idx] +
22503 						poll_results[vcm][result_idx +
22504 								  1] *
22505 						poll_results[vcm][result_idx +
22506 								  1];
22507 					if (curr_d < min_d) {
22508 						min_d = curr_d;
22509 						min_vcm = vcm;
22510 					}
22511 					if (poll_results[vcm][result_idx] <
22512 					    min_poll)
22513 						min_poll =
22514 							poll_results[vcm]
22515 							[result_idx];
22516 				}
22517 				vcm_final = min_vcm;
22518 				poll_results_min[result_idx] = min_poll;
22519 			}
22520 		}
22521 
22522 		if (NREV_GE(pi->pubpi.phy_rev, 7))
22523 			mod_radio_reg(pi, (core == PHY_CORE_0) ?
22524 				      RADIO_2057_NB_MASTER_CORE0 :
22525 				      RADIO_2057_NB_MASTER_CORE1,
22526 				      RADIO_2057_VCM_MASK, vcm_final);
22527 		else
22528 			mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22529 				      ((core ==
22530 					PHY_CORE_0) ? RADIO_2056_RX0 :
22531 				       RADIO_2056_RX1), RADIO_2056_VCM_MASK,
22532 				      vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22533 
22534 		for (result_idx = 0; result_idx < 4; result_idx++) {
22535 			if (core == result_idx / 2) {
22536 				fine_digital_offset[result_idx] =
22537 					(NPHY_RSSICAL_NB_TARGET *
22538 					 NPHY_RSSICAL_NPOLL) -
22539 					poll_results[vcm_final][result_idx];
22540 				if (fine_digital_offset[result_idx] < 0) {
22541 					fine_digital_offset[result_idx] =
22542 						abs(fine_digital_offset
22543 						    [result_idx]);
22544 					fine_digital_offset[result_idx] +=
22545 						(NPHY_RSSICAL_NPOLL / 2);
22546 					fine_digital_offset[result_idx] /=
22547 						NPHY_RSSICAL_NPOLL;
22548 					fine_digital_offset[result_idx] =
22549 						-fine_digital_offset[
22550 								    result_idx];
22551 				} else {
22552 					fine_digital_offset[result_idx] +=
22553 						(NPHY_RSSICAL_NPOLL / 2);
22554 					fine_digital_offset[result_idx] /=
22555 						NPHY_RSSICAL_NPOLL;
22556 				}
22557 
22558 				if (poll_results_min[result_idx] ==
22559 				    NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22560 					fine_digital_offset[result_idx] =
22561 						(NPHY_RSSICAL_NB_TARGET -
22562 						 NPHY_RSSICAL_MAXREAD - 1);
22563 
22564 				wlc_phy_scale_offset_rssi_nphy(
22565 					pi, 0x0,
22566 					(s8)
22567 					fine_digital_offset
22568 					[result_idx],
22569 					(result_idx / 2 == 0) ?
22570 					RADIO_MIMO_CORESEL_CORE1 :
22571 					RADIO_MIMO_CORESEL_CORE2,
22572 					(result_idx % 2 == 0) ?
22573 					NPHY_RAIL_I : NPHY_RAIL_Q,
22574 					NPHY_RSSI_SEL_NB);
22575 			}
22576 		}
22577 
22578 	}
22579 
22580 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22581 
22582 		if ((rxcore_state & (1 << core)) == 0)
22583 			continue;
22584 
22585 		for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22586 			if (wb_cnt == 0) {
22587 				rssi_type = NPHY_RSSI_SEL_W1;
22588 				target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22589 			} else {
22590 				rssi_type = NPHY_RSSI_SEL_W2;
22591 				target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22592 			}
22593 
22594 			wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22595 						       core ==
22596 						       PHY_CORE_0 ?
22597 						       RADIO_MIMO_CORESEL_CORE1
22598 						       :
22599 						       RADIO_MIMO_CORESEL_CORE2,
22600 						       NPHY_RAIL_I, rssi_type);
22601 			wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22602 						       core ==
22603 						       PHY_CORE_0 ?
22604 						       RADIO_MIMO_CORESEL_CORE1
22605 						       :
22606 						       RADIO_MIMO_CORESEL_CORE2,
22607 						       NPHY_RAIL_Q, rssi_type);
22608 
22609 			wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22610 					       NPHY_RSSICAL_NPOLL);
22611 
22612 			for (result_idx = 0; result_idx < 4; result_idx++) {
22613 				if (core == result_idx / 2) {
22614 					fine_digital_offset[result_idx] =
22615 						(target_code *
22616 						 NPHY_RSSICAL_NPOLL) -
22617 						poll_result_core[result_idx];
22618 					if (fine_digital_offset[result_idx] <
22619 					    0) {
22620 						fine_digital_offset[result_idx]
22621 							= abs(
22622 							    fine_digital_offset
22623 							    [result_idx]);
22624 						fine_digital_offset[result_idx]
22625 							+= (NPHY_RSSICAL_NPOLL
22626 							    / 2);
22627 						fine_digital_offset[result_idx]
22628 							/= NPHY_RSSICAL_NPOLL;
22629 						fine_digital_offset[result_idx]
22630 							= -fine_digital_offset
22631 								[result_idx];
22632 					} else {
22633 						fine_digital_offset[result_idx]
22634 							+= (NPHY_RSSICAL_NPOLL
22635 							    / 2);
22636 						fine_digital_offset[result_idx]
22637 							/= NPHY_RSSICAL_NPOLL;
22638 					}
22639 
22640 					wlc_phy_scale_offset_rssi_nphy(
22641 						pi, 0x0,
22642 						(s8)
22643 						fine_digital_offset
22644 						[core *
22645 						 2],
22646 						(core == PHY_CORE_0) ?
22647 						RADIO_MIMO_CORESEL_CORE1 :
22648 						RADIO_MIMO_CORESEL_CORE2,
22649 						(result_idx % 2 == 0) ?
22650 						NPHY_RAIL_I :
22651 						NPHY_RAIL_Q,
22652 						rssi_type);
22653 				}
22654 			}
22655 
22656 		}
22657 	}
22658 
22659 	write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22660 	write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22661 
22662 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22663 
22664 	mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22665 	mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22666 	mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22667 
22668 	mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22669 	mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22670 	mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22671 
22672 	write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22673 	write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22674 	write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22675 	write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22676 	write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22677 	write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22678 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22679 		write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22680 		write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22681 		write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22682 		write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22683 	}
22684 	write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22685 	write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22686 	write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22687 	write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22688 	write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22689 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22690 		write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22691 		write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22692 		write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22693 		write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22694 	}
22695 	write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22696 	write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22697 
22698 	if (CHSPEC_IS2G(pi->radio_chanspec)) {
22699 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22700 			pi->rssical_cache.rssical_radio_regs_2G[0] =
22701 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22702 			pi->rssical_cache.rssical_radio_regs_2G[1] =
22703 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22704 		} else {
22705 			pi->rssical_cache.rssical_radio_regs_2G[0] =
22706 				read_radio_reg(pi,
22707 					       RADIO_2056_RX_RSSI_MISC |
22708 					       RADIO_2056_RX0);
22709 			pi->rssical_cache.rssical_radio_regs_2G[1] =
22710 				read_radio_reg(pi,
22711 					       RADIO_2056_RX_RSSI_MISC |
22712 					       RADIO_2056_RX1);
22713 		}
22714 
22715 		pi->rssical_cache.rssical_phyregs_2G[0] =
22716 			read_phy_reg(pi, 0x1a6);
22717 		pi->rssical_cache.rssical_phyregs_2G[1] =
22718 			read_phy_reg(pi, 0x1ac);
22719 		pi->rssical_cache.rssical_phyregs_2G[2] =
22720 			read_phy_reg(pi, 0x1b2);
22721 		pi->rssical_cache.rssical_phyregs_2G[3] =
22722 			read_phy_reg(pi, 0x1b8);
22723 		pi->rssical_cache.rssical_phyregs_2G[4] =
22724 			read_phy_reg(pi, 0x1a4);
22725 		pi->rssical_cache.rssical_phyregs_2G[5] =
22726 			read_phy_reg(pi, 0x1aa);
22727 		pi->rssical_cache.rssical_phyregs_2G[6] =
22728 			read_phy_reg(pi, 0x1b0);
22729 		pi->rssical_cache.rssical_phyregs_2G[7] =
22730 			read_phy_reg(pi, 0x1b6);
22731 		pi->rssical_cache.rssical_phyregs_2G[8] =
22732 			read_phy_reg(pi, 0x1a5);
22733 		pi->rssical_cache.rssical_phyregs_2G[9] =
22734 			read_phy_reg(pi, 0x1ab);
22735 		pi->rssical_cache.rssical_phyregs_2G[10] =
22736 			read_phy_reg(pi, 0x1b1);
22737 		pi->rssical_cache.rssical_phyregs_2G[11] =
22738 			read_phy_reg(pi, 0x1b7);
22739 
22740 		pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22741 	} else {
22742 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22743 			pi->rssical_cache.rssical_radio_regs_5G[0] =
22744 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22745 			pi->rssical_cache.rssical_radio_regs_5G[1] =
22746 				read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22747 		} else {
22748 			pi->rssical_cache.rssical_radio_regs_5G[0] =
22749 				read_radio_reg(pi,
22750 					       RADIO_2056_RX_RSSI_MISC |
22751 					       RADIO_2056_RX0);
22752 			pi->rssical_cache.rssical_radio_regs_5G[1] =
22753 				read_radio_reg(pi,
22754 					       RADIO_2056_RX_RSSI_MISC |
22755 					       RADIO_2056_RX1);
22756 		}
22757 
22758 		pi->rssical_cache.rssical_phyregs_5G[0] =
22759 			read_phy_reg(pi, 0x1a6);
22760 		pi->rssical_cache.rssical_phyregs_5G[1] =
22761 			read_phy_reg(pi, 0x1ac);
22762 		pi->rssical_cache.rssical_phyregs_5G[2] =
22763 			read_phy_reg(pi, 0x1b2);
22764 		pi->rssical_cache.rssical_phyregs_5G[3] =
22765 			read_phy_reg(pi, 0x1b8);
22766 		pi->rssical_cache.rssical_phyregs_5G[4] =
22767 			read_phy_reg(pi, 0x1a4);
22768 		pi->rssical_cache.rssical_phyregs_5G[5] =
22769 			read_phy_reg(pi, 0x1aa);
22770 		pi->rssical_cache.rssical_phyregs_5G[6] =
22771 			read_phy_reg(pi, 0x1b0);
22772 		pi->rssical_cache.rssical_phyregs_5G[7] =
22773 			read_phy_reg(pi, 0x1b6);
22774 		pi->rssical_cache.rssical_phyregs_5G[8] =
22775 			read_phy_reg(pi, 0x1a5);
22776 		pi->rssical_cache.rssical_phyregs_5G[9] =
22777 			read_phy_reg(pi, 0x1ab);
22778 		pi->rssical_cache.rssical_phyregs_5G[10] =
22779 			read_phy_reg(pi, 0x1b1);
22780 		pi->rssical_cache.rssical_phyregs_5G[11] =
22781 			read_phy_reg(pi, 0x1b7);
22782 
22783 		pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22784 	}
22785 
22786 	wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22787 	wlc_phy_clip_det_nphy(pi, 1, clip_state);
22788 }
22789 
22790 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
22791 {
22792 	s32 target_code;
22793 	u16 classif_state;
22794 	u16 clip_state[2];
22795 	u16 rssi_ctrl_state[2], pd_state[2];
22796 	u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
22797 	u16 rfctrlintc_override_val;
22798 	u16 clip_off[] = { 0xffff, 0xffff };
22799 	u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
22800 	u8 vcm, min_vcm, vcm_tmp[4];
22801 	u8 vcm_final[4] = { 0, 0, 0, 0 };
22802 	u8 result_idx, ctr;
22803 	s32 poll_results[4][4] = {
22804 		{0, 0, 0, 0},
22805 		{0, 0, 0, 0},
22806 		{0, 0, 0, 0},
22807 		{0, 0, 0, 0}
22808 	};
22809 	s32 poll_miniq[4][2] = {
22810 		{0, 0},
22811 		{0, 0},
22812 		{0, 0},
22813 		{0, 0}
22814 	};
22815 	s32 min_d, curr_d;
22816 	s32 fine_digital_offset[4];
22817 	s32 poll_results_min[4] = { 0, 0, 0, 0 };
22818 	s32 min_poll;
22819 
22820 	switch (rssi_type) {
22821 	case NPHY_RSSI_SEL_NB:
22822 		target_code = NPHY_RSSICAL_NB_TARGET;
22823 		break;
22824 	case NPHY_RSSI_SEL_W1:
22825 		target_code = NPHY_RSSICAL_W1_TARGET;
22826 		break;
22827 	case NPHY_RSSI_SEL_W2:
22828 		target_code = NPHY_RSSICAL_W2_TARGET;
22829 		break;
22830 	default:
22831 		return;
22832 	}
22833 
22834 	classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22835 	wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22836 	wlc_phy_clip_det_nphy(pi, 0, clip_state);
22837 	wlc_phy_clip_det_nphy(pi, 1, clip_off);
22838 
22839 	rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
22840 	rfctrlintc_override_val =
22841 		CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
22842 
22843 	rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
22844 	rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
22845 	write_phy_reg(pi, 0x91, rfctrlintc_override_val);
22846 	write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
22847 
22848 	rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
22849 	rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
22850 	write_phy_reg(pi, 0x92, rfctrlintc_override_val);
22851 	write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
22852 
22853 	pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
22854 		  RADIO_2055_WBRSSI_G2_PD;
22855 	pd_state[0] =
22856 		read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
22857 	pd_state[1] =
22858 		read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
22859 	mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
22860 	mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
22861 	rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
22862 			 RADIO_2055_WBRSSI_G2_SEL;
22863 	rssi_ctrl_state[0] =
22864 		read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
22865 	rssi_ctrl_state[1] =
22866 		read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
22867 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22868 
22869 	wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22870 				       NPHY_RAIL_I, rssi_type);
22871 	wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22872 				       NPHY_RAIL_Q, rssi_type);
22873 
22874 	for (vcm = 0; vcm < 4; vcm++) {
22875 
22876 		vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
22877 		if (rssi_type != NPHY_RSSI_SEL_W2)
22878 			wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
22879 
22880 		wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
22881 				       NPHY_RSSICAL_NPOLL);
22882 
22883 		if ((rssi_type == NPHY_RSSI_SEL_W1)
22884 		    || (rssi_type == NPHY_RSSI_SEL_W2)) {
22885 			for (ctr = 0; ctr < 2; ctr++)
22886 				poll_miniq[vcm][ctr] =
22887 					min(poll_results[vcm][ctr * 2 + 0],
22888 					    poll_results[vcm][ctr * 2 + 1]);
22889 		}
22890 	}
22891 
22892 	for (result_idx = 0; result_idx < 4; result_idx++) {
22893 		min_d = NPHY_RSSICAL_MAXD;
22894 		min_vcm = 0;
22895 		min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
22896 		for (vcm = 0; vcm < 4; vcm++) {
22897 			curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
22898 				      poll_results[vcm][result_idx] :
22899 				      poll_miniq[vcm][result_idx / 2]) -
22900 				     (target_code * NPHY_RSSICAL_NPOLL));
22901 			if (curr_d < min_d) {
22902 				min_d = curr_d;
22903 				min_vcm = vcm;
22904 			}
22905 			if (poll_results[vcm][result_idx] < min_poll)
22906 				min_poll = poll_results[vcm][result_idx];
22907 		}
22908 		vcm_final[result_idx] = min_vcm;
22909 		poll_results_min[result_idx] = min_poll;
22910 	}
22911 
22912 	if (rssi_type != NPHY_RSSI_SEL_W2)
22913 		wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
22914 
22915 	for (result_idx = 0; result_idx < 4; result_idx++) {
22916 		fine_digital_offset[result_idx] =
22917 			(target_code * NPHY_RSSICAL_NPOLL) -
22918 			poll_results[vcm_final[result_idx]][result_idx];
22919 		if (fine_digital_offset[result_idx] < 0) {
22920 			fine_digital_offset[result_idx] =
22921 				abs(fine_digital_offset[result_idx]);
22922 			fine_digital_offset[result_idx] +=
22923 				(NPHY_RSSICAL_NPOLL / 2);
22924 			fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
22925 			fine_digital_offset[result_idx] =
22926 				-fine_digital_offset[result_idx];
22927 		} else {
22928 			fine_digital_offset[result_idx] +=
22929 				(NPHY_RSSICAL_NPOLL / 2);
22930 			fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
22931 		}
22932 
22933 		if (poll_results_min[result_idx] ==
22934 		    NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22935 			fine_digital_offset[result_idx] =
22936 				(target_code - NPHY_RSSICAL_MAXREAD - 1);
22937 
22938 		wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
22939 					       (s8)
22940 					       fine_digital_offset[result_idx],
22941 					       (result_idx / 2 ==
22942 						0) ? RADIO_MIMO_CORESEL_CORE1 :
22943 					       RADIO_MIMO_CORESEL_CORE2,
22944 					       (result_idx % 2 ==
22945 						0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
22946 					       rssi_type);
22947 	}
22948 
22949 	mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
22950 	mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
22951 	if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
22952 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
22953 				     NPHY_RSSI_SEL_NB);
22954 	else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
22955 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
22956 				     NPHY_RSSI_SEL_W1);
22957 	else /* RADIO_2055_WBRSSI_G2_SEL */
22958 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
22959 				     NPHY_RSSI_SEL_W2);
22960 	if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
22961 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
22962 				     NPHY_RSSI_SEL_NB);
22963 	else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
22964 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
22965 				     NPHY_RSSI_SEL_W1);
22966 	else /* RADIO_2055_WBRSSI_G1_SEL */
22967 		wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
22968 				     NPHY_RSSI_SEL_W2);
22969 	wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
22970 
22971 	write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
22972 	write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
22973 	write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
22974 	write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
22975 
22976 	wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22977 	wlc_phy_clip_det_nphy(pi, 1, clip_state);
22978 
22979 	wlc_phy_resetcca_nphy(pi);
22980 }
22981 
22982 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
22983 {
22984 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22985 		wlc_phy_rssi_cal_nphy_rev3(pi);
22986 	} else {
22987 		wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
22988 		wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
22989 		wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
22990 	}
22991 }
22992 
22993 int
22994 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
22995 {
22996 	s16 rxpwr, rxpwr0, rxpwr1;
22997 	s16 phyRx0_l, phyRx2_l;
22998 
22999 	rxpwr = 0;
23000 	rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23001 	rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23002 
23003 	if (rxpwr0 > 127)
23004 		rxpwr0 -= 256;
23005 	if (rxpwr1 > 127)
23006 		rxpwr1 -= 256;
23007 
23008 	phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23009 	phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23010 	if (phyRx2_l > 127)
23011 		phyRx2_l -= 256;
23012 
23013 	if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23014 		rxpwr0 = rxpwr1;
23015 		rxpwr1 = phyRx2_l;
23016 	}
23017 
23018 	if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23019 		rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23020 	else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23021 		rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23022 	else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23023 		rxpwr = (rxpwr0 + rxpwr1) >> 1;
23024 
23025 	return rxpwr;
23026 }
23027 
23028 static void
23029 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23030 			     u16 num_samps)
23031 {
23032 	u16 t;
23033 	u32 *data_buf = NULL;
23034 
23035 	data_buf = kmalloc_array(num_samps, sizeof(u32), GFP_ATOMIC);
23036 	if (data_buf == NULL)
23037 		return;
23038 
23039 	if (pi->phyhang_avoid)
23040 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
23041 
23042 	for (t = 0; t < num_samps; t++)
23043 		data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23044 			      (((unsigned int)tone_buf[t].q) & 0x3ff);
23045 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23046 				 data_buf);
23047 
23048 	kfree(data_buf);
23049 
23050 	if (pi->phyhang_avoid)
23051 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
23052 }
23053 
23054 static u16
23055 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23056 			      u8 dac_test_mode)
23057 {
23058 	u8 phy_bw, is_phybw40;
23059 	u16 num_samps, t, spur;
23060 	s32 theta = 0, rot = 0;
23061 	u32 tbl_len;
23062 	struct cordic_iq *tone_buf = NULL;
23063 
23064 	is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23065 	phy_bw = (is_phybw40 == 1) ? 40 : 20;
23066 	tbl_len = (phy_bw << 3);
23067 
23068 	if (dac_test_mode == 1) {
23069 		spur = read_phy_reg(pi, 0x01);
23070 		spur = (spur >> 15) & 1;
23071 		phy_bw = (spur == 1) ? 82 : 80;
23072 		phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23073 
23074 		tbl_len = (phy_bw << 1);
23075 	}
23076 
23077 	tone_buf = kmalloc_array(tbl_len, sizeof(struct cordic_iq),
23078 				 GFP_ATOMIC);
23079 	if (tone_buf == NULL)
23080 		return 0;
23081 
23082 	num_samps = (u16) tbl_len;
23083 	rot = ((f_kHz * 36) / phy_bw) / 100;
23084 	theta = 0;
23085 
23086 	for (t = 0; t < num_samps; t++) {
23087 
23088 		tone_buf[t] = cordic_calc_iq(theta);
23089 
23090 		theta += rot;
23091 
23092 		tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23093 		tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23094 	}
23095 
23096 	wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23097 
23098 	kfree(tone_buf);
23099 
23100 	return num_samps;
23101 }
23102 
23103 static void
23104 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23105 			u16 wait, u8 iqmode, u8 dac_test_mode,
23106 			bool modify_bbmult)
23107 {
23108 	u16 bb_mult;
23109 	u8 phy_bw, sample_cmd;
23110 	u16 orig_RfseqCoreActv;
23111 	u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23112 	    lpf_bw_ctl_miscreg4;
23113 
23114 	if (pi->phyhang_avoid)
23115 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
23116 
23117 	phy_bw = 20;
23118 	if (CHSPEC_IS40(pi->radio_chanspec))
23119 		phy_bw = 40;
23120 
23121 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23122 
23123 		lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23124 		lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23125 		if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23126 			lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23127 					      (0x7 << 8);
23128 			lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23129 					      (0x7 << 8);
23130 		} else {
23131 			wlc_phy_rfctrl_override_nphy_rev7(
23132 				pi,
23133 				(0x1 << 7),
23134 				wlc_phy_read_lpf_bw_ctl_nphy
23135 					(pi,
23136 					0), 0, 0,
23137 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
23138 
23139 			pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
23140 
23141 			lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23142 					      (0x7 << 8);
23143 			lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23144 					      (0x7 << 8);
23145 		}
23146 	}
23147 
23148 	if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23149 
23150 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23151 					&bb_mult);
23152 		pi->nphy_bb_mult_save =
23153 			BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23154 	}
23155 
23156 	if (modify_bbmult) {
23157 		bb_mult = (phy_bw == 20) ? 100 : 71;
23158 		bb_mult = (bb_mult << 8) + bb_mult;
23159 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23160 					 &bb_mult);
23161 	}
23162 
23163 	if (pi->phyhang_avoid)
23164 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
23165 
23166 	write_phy_reg(pi, 0xc6, num_samps - 1);
23167 
23168 	if (loops != 0xffff)
23169 		write_phy_reg(pi, 0xc4, loops - 1);
23170 	else
23171 		write_phy_reg(pi, 0xc4, loops);
23172 
23173 	write_phy_reg(pi, 0xc5, wait);
23174 
23175 	orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23176 	or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
23177 	if (iqmode) {
23178 
23179 		and_phy_reg(pi, 0xc2, 0x7FFF);
23180 
23181 		or_phy_reg(pi, 0xc2, 0x8000);
23182 	} else {
23183 
23184 		sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23185 		write_phy_reg(pi, 0xc3, sample_cmd);
23186 	}
23187 
23188 	SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23189 
23190 	write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23191 }
23192 
23193 int
23194 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23195 		     u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23196 {
23197 	u16 num_samps;
23198 	u16 loops = 0xffff;
23199 	u16 wait = 0;
23200 
23201 	num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23202 						  dac_test_mode);
23203 	if (num_samps == 0)
23204 		return -EBADE;
23205 
23206 	wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23207 				dac_test_mode, modify_bbmult);
23208 
23209 	return 0;
23210 }
23211 
23212 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
23213 {
23214 	u16 playback_status;
23215 	u16 bb_mult;
23216 
23217 	if (pi->phyhang_avoid)
23218 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
23219 
23220 	playback_status = read_phy_reg(pi, 0xc7);
23221 	if (playback_status & 0x1)
23222 		or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23223 	else if (playback_status & 0x2)
23224 		and_phy_reg(pi, 0xc2,
23225 			    (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
23226 
23227 	and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23228 
23229 	if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23230 
23231 		bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23232 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23233 					 &bb_mult);
23234 
23235 		pi->nphy_bb_mult_save = 0;
23236 	}
23237 
23238 	if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23239 		if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
23240 			wlc_phy_rfctrl_override_nphy_rev7(
23241 				pi,
23242 				(0x1 << 7),
23243 				0, 0, 1,
23244 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
23245 			pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23246 		}
23247 	}
23248 
23249 	if (pi->phyhang_avoid)
23250 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
23251 }
23252 
23253 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23254 {
23255 	u32 *tx_pwrctrl_tbl = NULL;
23256 	uint phyrev = pi->pubpi.phy_rev;
23257 
23258 	if (PHY_IPA(pi)) {
23259 		tx_pwrctrl_tbl =
23260 			wlc_phy_get_ipa_gaintbl_nphy(pi);
23261 	} else {
23262 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
23263 			if (NREV_IS(phyrev, 3))
23264 				tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23265 			else if (NREV_IS(phyrev, 4))
23266 				tx_pwrctrl_tbl =
23267 					(pi->srom_fem5g.extpagain == 3) ?
23268 					nphy_tpc_5GHz_txgain_HiPwrEPA :
23269 					nphy_tpc_5GHz_txgain_rev4;
23270 			else
23271 				tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23272 		} else {
23273 			if (NREV_GE(phyrev, 7)) {
23274 				if (pi->pubpi.radiorev == 3)
23275 					tx_pwrctrl_tbl =
23276 						nphy_tpc_txgain_epa_2057rev3;
23277 				else if (pi->pubpi.radiorev == 5)
23278 					tx_pwrctrl_tbl =
23279 						nphy_tpc_txgain_epa_2057rev5;
23280 			} else {
23281 				if (NREV_GE(phyrev, 5) &&
23282 				   (pi->srom_fem2g.extpagain ==	3))
23283 					tx_pwrctrl_tbl =
23284 						nphy_tpc_txgain_HiPwrEPA;
23285 				else
23286 					tx_pwrctrl_tbl =
23287 						nphy_tpc_txgain_rev3;
23288 			}
23289 		}
23290 	}
23291 	return tx_pwrctrl_tbl;
23292 }
23293 
23294 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
23295 {
23296 	u16 base_idx[2], curr_gain[2];
23297 	u8 core_no;
23298 	struct nphy_txgains target_gain;
23299 	u32 *tx_pwrctrl_tbl = NULL;
23300 
23301 	if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23302 		if (pi->phyhang_avoid)
23303 			wlc_phy_stay_in_carriersearch_nphy(pi, true);
23304 
23305 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23306 					curr_gain);
23307 
23308 		if (pi->phyhang_avoid)
23309 			wlc_phy_stay_in_carriersearch_nphy(pi, false);
23310 
23311 		for (core_no = 0; core_no < 2; core_no++) {
23312 			if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23313 				target_gain.ipa[core_no] =
23314 					curr_gain[core_no] & 0x0007;
23315 				target_gain.pad[core_no] =
23316 					((curr_gain[core_no] & 0x00F8) >> 3);
23317 				target_gain.pga[core_no] =
23318 					((curr_gain[core_no] & 0x0F00) >> 8);
23319 				target_gain.txgm[core_no] =
23320 					((curr_gain[core_no] & 0x7000) >> 12);
23321 				target_gain.txlpf[core_no] =
23322 					((curr_gain[core_no] & 0x8000) >> 15);
23323 			} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23324 				target_gain.ipa[core_no] =
23325 					curr_gain[core_no] & 0x000F;
23326 				target_gain.pad[core_no] =
23327 					((curr_gain[core_no] & 0x00F0) >> 4);
23328 				target_gain.pga[core_no] =
23329 					((curr_gain[core_no] & 0x0F00) >> 8);
23330 				target_gain.txgm[core_no] =
23331 					((curr_gain[core_no] & 0x7000) >> 12);
23332 			} else {
23333 				target_gain.ipa[core_no] =
23334 					curr_gain[core_no] & 0x0003;
23335 				target_gain.pad[core_no] =
23336 					((curr_gain[core_no] & 0x000C) >> 2);
23337 				target_gain.pga[core_no] =
23338 					((curr_gain[core_no] & 0x0070) >> 4);
23339 				target_gain.txgm[core_no] =
23340 					((curr_gain[core_no] & 0x0380) >> 7);
23341 			}
23342 		}
23343 	} else {
23344 		uint phyrev = pi->pubpi.phy_rev;
23345 
23346 		base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23347 		base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23348 		for (core_no = 0; core_no < 2; core_no++) {
23349 			if (NREV_GE(phyrev, 3)) {
23350 				tx_pwrctrl_tbl =
23351 					brcms_phy_get_tx_pwrctrl_tbl(pi);
23352 				if (NREV_GE(phyrev, 7)) {
23353 					target_gain.ipa[core_no] =
23354 						(tx_pwrctrl_tbl
23355 						 [base_idx[core_no]]
23356 						 >> 16) & 0x7;
23357 					target_gain.pad[core_no] =
23358 						(tx_pwrctrl_tbl
23359 						 [base_idx[core_no]]
23360 						 >> 19) & 0x1f;
23361 					target_gain.pga[core_no] =
23362 						(tx_pwrctrl_tbl
23363 						 [base_idx[core_no]]
23364 						 >> 24) & 0xf;
23365 					target_gain.txgm[core_no] =
23366 						(tx_pwrctrl_tbl
23367 						 [base_idx[core_no]]
23368 						 >> 28) & 0x7;
23369 					target_gain.txlpf[core_no] =
23370 						(tx_pwrctrl_tbl
23371 						 [base_idx[core_no]]
23372 						 >> 31) & 0x1;
23373 				} else {
23374 					target_gain.ipa[core_no] =
23375 						(tx_pwrctrl_tbl
23376 						 [base_idx[core_no]]
23377 						 >> 16) & 0xf;
23378 					target_gain.pad[core_no] =
23379 						(tx_pwrctrl_tbl
23380 						 [base_idx[core_no]]
23381 						 >> 20) & 0xf;
23382 					target_gain.pga[core_no] =
23383 						(tx_pwrctrl_tbl
23384 						 [base_idx[core_no]]
23385 						 >> 24) & 0xf;
23386 					target_gain.txgm[core_no] =
23387 						(tx_pwrctrl_tbl
23388 						[base_idx[core_no]]
23389 						 >> 28) & 0x7;
23390 				}
23391 			} else {
23392 				target_gain.ipa[core_no] =
23393 					(nphy_tpc_txgain[base_idx[core_no]] >>
23394 					 16) & 0x3;
23395 				target_gain.pad[core_no] =
23396 					(nphy_tpc_txgain[base_idx[core_no]] >>
23397 					 18) & 0x3;
23398 				target_gain.pga[core_no] =
23399 					(nphy_tpc_txgain[base_idx[core_no]] >>
23400 					 20) & 0x7;
23401 				target_gain.txgm[core_no] =
23402 					(nphy_tpc_txgain[base_idx[core_no]] >>
23403 					 23) & 0x7;
23404 			}
23405 		}
23406 	}
23407 
23408 	return target_gain;
23409 }
23410 
23411 static void
23412 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23413 			      struct nphy_txgains target_gain,
23414 			      struct nphy_iqcal_params *params)
23415 {
23416 	u8 k;
23417 	int idx;
23418 	u16 gain_index;
23419 	u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23420 
23421 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23422 		if (NREV_GE(pi->pubpi.phy_rev, 7))
23423 			params->txlpf = target_gain.txlpf[core_no];
23424 
23425 		params->txgm = target_gain.txgm[core_no];
23426 		params->pga = target_gain.pga[core_no];
23427 		params->pad = target_gain.pad[core_no];
23428 		params->ipa = target_gain.ipa[core_no];
23429 		if (NREV_GE(pi->pubpi.phy_rev, 7))
23430 			params->cal_gain =
23431 				((params->txlpf << 15) | (params->txgm << 12) |
23432 				 (params->pga << 8) |
23433 				 (params->pad << 3) | (params->ipa));
23434 		else
23435 			params->cal_gain =
23436 				((params->txgm << 12) | (params->pga << 8) |
23437 				 (params->pad << 4) | (params->ipa));
23438 
23439 		params->ncorr[0] = 0x79;
23440 		params->ncorr[1] = 0x79;
23441 		params->ncorr[2] = 0x79;
23442 		params->ncorr[3] = 0x79;
23443 		params->ncorr[4] = 0x79;
23444 	} else {
23445 
23446 		gain_index = ((target_gain.pad[core_no] << 0) |
23447 			      (target_gain.pga[core_no] << 4) |
23448 			      (target_gain.txgm[core_no] << 8));
23449 
23450 		idx = -1;
23451 		for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23452 			if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23453 			    gain_index) {
23454 				idx = k;
23455 				break;
23456 			}
23457 		}
23458 
23459 		params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23460 		params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23461 		params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23462 		params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23463 				    (params->pad << 2));
23464 		params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23465 		params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23466 		params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23467 		params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23468 	}
23469 }
23470 
23471 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23472 {
23473 	u16 jtag_core, core;
23474 
23475 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23476 
23477 		for (core = 0; core <= 1; core++) {
23478 
23479 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23480 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23481 						TX_SSI_MASTER);
23482 
23483 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23484 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23485 						IQCAL_VCM_HG);
23486 
23487 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23488 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23489 						IQCAL_IDAC);
23490 
23491 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23492 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23493 						TSSI_VCM);
23494 
23495 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23496 
23497 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23498 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23499 						TX_SSI_MUX);
23500 
23501 			if (pi->pubpi.radiorev != 5)
23502 				pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23503 					READ_RADIO_REG3(pi, RADIO_2057, TX,
23504 							core,
23505 							TSSIA);
23506 
23507 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23508 			       READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23509 
23510 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23511 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23512 						TSSI_MISC1);
23513 
23514 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
23515 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23516 						 TX_SSI_MASTER, 0x0a);
23517 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23518 						 IQCAL_VCM_HG, 0x43);
23519 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23520 						 IQCAL_IDAC, 0x55);
23521 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23522 						 TSSI_VCM, 0x00);
23523 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23524 						 TSSIG, 0x00);
23525 				if (pi->use_int_tx_iqlo_cal_nphy) {
23526 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23527 							 core, TX_SSI_MUX, 0x4);
23528 					if (!(pi->
23529 					internal_tx_iqlo_cal_tapoff_intpa_nphy))
23530 						WRITE_RADIO_REG3(pi, RADIO_2057,
23531 								 TX, core,
23532 								 TSSIA, 0x31);
23533 					else
23534 						WRITE_RADIO_REG3(pi, RADIO_2057,
23535 								 TX, core,
23536 								 TSSIA, 0x21);
23537 				}
23538 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23539 						 TSSI_MISC1, 0x00);
23540 			} else {
23541 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23542 						 TX_SSI_MASTER, 0x06);
23543 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23544 						 IQCAL_VCM_HG, 0x43);
23545 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23546 						 IQCAL_IDAC, 0x55);
23547 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23548 						 TSSI_VCM, 0x00);
23549 
23550 				if (pi->pubpi.radiorev != 5)
23551 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23552 							 core, TSSIA, 0x00);
23553 				if (pi->use_int_tx_iqlo_cal_nphy) {
23554 					WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23555 							 core, TX_SSI_MUX,
23556 							 0x06);
23557 					if (!(pi->
23558 					internal_tx_iqlo_cal_tapoff_intpa_nphy))
23559 						WRITE_RADIO_REG3(pi, RADIO_2057,
23560 								 TX, core,
23561 								 TSSIG, 0x31);
23562 					else
23563 						WRITE_RADIO_REG3(pi, RADIO_2057,
23564 								 TX, core,
23565 								 TSSIG, 0x21);
23566 				}
23567 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23568 						 TSSI_MISC1, 0x00);
23569 			}
23570 		}
23571 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23572 
23573 		for (core = 0; core <= 1; core++) {
23574 			jtag_core =
23575 				(core ==
23576 				 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23577 
23578 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23579 				read_radio_reg(pi,
23580 					       RADIO_2056_TX_TX_SSI_MASTER |
23581 					       jtag_core);
23582 
23583 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23584 				read_radio_reg(pi,
23585 					       RADIO_2056_TX_IQCAL_VCM_HG |
23586 					       jtag_core);
23587 
23588 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23589 				read_radio_reg(pi,
23590 					       RADIO_2056_TX_IQCAL_IDAC |
23591 					       jtag_core);
23592 
23593 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23594 				read_radio_reg(
23595 					pi,
23596 					RADIO_2056_TX_TSSI_VCM |
23597 					jtag_core);
23598 
23599 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23600 				read_radio_reg(pi,
23601 					       RADIO_2056_TX_TX_AMP_DET |
23602 					       jtag_core);
23603 
23604 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23605 				read_radio_reg(pi,
23606 					       RADIO_2056_TX_TX_SSI_MUX |
23607 					       jtag_core);
23608 
23609 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23610 				read_radio_reg(pi,
23611 					       RADIO_2056_TX_TSSIA | jtag_core);
23612 
23613 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23614 				read_radio_reg(pi,
23615 					       RADIO_2056_TX_TSSIG | jtag_core);
23616 
23617 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23618 				read_radio_reg(pi,
23619 					       RADIO_2056_TX_TSSI_MISC1 |
23620 					       jtag_core);
23621 
23622 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23623 				read_radio_reg(pi,
23624 					       RADIO_2056_TX_TSSI_MISC2 |
23625 					       jtag_core);
23626 
23627 			pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23628 				read_radio_reg(pi,
23629 					       RADIO_2056_TX_TSSI_MISC3 |
23630 					       jtag_core);
23631 
23632 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
23633 				write_radio_reg(pi,
23634 						RADIO_2056_TX_TX_SSI_MASTER |
23635 						jtag_core, 0x0a);
23636 				write_radio_reg(pi,
23637 						RADIO_2056_TX_IQCAL_VCM_HG |
23638 						jtag_core, 0x40);
23639 				write_radio_reg(pi,
23640 						RADIO_2056_TX_IQCAL_IDAC |
23641 						jtag_core, 0x55);
23642 				write_radio_reg(pi,
23643 						RADIO_2056_TX_TSSI_VCM |
23644 						jtag_core, 0x00);
23645 				write_radio_reg(pi,
23646 						RADIO_2056_TX_TX_AMP_DET |
23647 						jtag_core, 0x00);
23648 
23649 				if (PHY_IPA(pi)) {
23650 					write_radio_reg(
23651 						pi,
23652 						RADIO_2056_TX_TX_SSI_MUX
23653 						| jtag_core, 0x4);
23654 					write_radio_reg(pi,
23655 							RADIO_2056_TX_TSSIA |
23656 							jtag_core, 0x1);
23657 				} else {
23658 					write_radio_reg(
23659 						pi,
23660 						RADIO_2056_TX_TX_SSI_MUX
23661 						| jtag_core, 0x00);
23662 					write_radio_reg(pi,
23663 							RADIO_2056_TX_TSSIA |
23664 							jtag_core, 0x2f);
23665 				}
23666 				write_radio_reg(pi,
23667 						RADIO_2056_TX_TSSIG | jtag_core,
23668 						0x00);
23669 				write_radio_reg(pi,
23670 						RADIO_2056_TX_TSSI_MISC1 |
23671 						jtag_core, 0x00);
23672 
23673 				write_radio_reg(pi,
23674 						RADIO_2056_TX_TSSI_MISC2 |
23675 						jtag_core, 0x00);
23676 				write_radio_reg(pi,
23677 						RADIO_2056_TX_TSSI_MISC3 |
23678 						jtag_core, 0x00);
23679 			} else {
23680 				write_radio_reg(pi,
23681 						RADIO_2056_TX_TX_SSI_MASTER |
23682 						jtag_core, 0x06);
23683 				write_radio_reg(pi,
23684 						RADIO_2056_TX_IQCAL_VCM_HG |
23685 						jtag_core, 0x40);
23686 				write_radio_reg(pi,
23687 						RADIO_2056_TX_IQCAL_IDAC |
23688 						jtag_core, 0x55);
23689 				write_radio_reg(pi,
23690 						RADIO_2056_TX_TSSI_VCM |
23691 						jtag_core, 0x00);
23692 				write_radio_reg(pi,
23693 						RADIO_2056_TX_TX_AMP_DET |
23694 						jtag_core, 0x00);
23695 				write_radio_reg(pi,
23696 						RADIO_2056_TX_TSSIA | jtag_core,
23697 						0x00);
23698 
23699 				if (PHY_IPA(pi)) {
23700 
23701 					write_radio_reg(
23702 						pi,
23703 						RADIO_2056_TX_TX_SSI_MUX
23704 						| jtag_core, 0x06);
23705 					if (NREV_LT(pi->pubpi.phy_rev, 5))
23706 						write_radio_reg(
23707 							pi,
23708 							RADIO_2056_TX_TSSIG
23709 							| jtag_core,
23710 							0x11);
23711 					else
23712 						write_radio_reg(
23713 							pi,
23714 							RADIO_2056_TX_TSSIG
23715 							| jtag_core,
23716 							0x1);
23717 				} else {
23718 					write_radio_reg(
23719 						pi,
23720 						RADIO_2056_TX_TX_SSI_MUX
23721 						| jtag_core, 0x00);
23722 					write_radio_reg(pi,
23723 							RADIO_2056_TX_TSSIG |
23724 							jtag_core, 0x20);
23725 				}
23726 
23727 				write_radio_reg(pi,
23728 						RADIO_2056_TX_TSSI_MISC1 |
23729 						jtag_core, 0x00);
23730 				write_radio_reg(pi,
23731 						RADIO_2056_TX_TSSI_MISC2 |
23732 						jtag_core, 0x00);
23733 				write_radio_reg(pi,
23734 						RADIO_2056_TX_TSSI_MISC3 |
23735 						jtag_core, 0x00);
23736 			}
23737 		}
23738 	} else {
23739 
23740 		pi->tx_rx_cal_radio_saveregs[0] =
23741 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23742 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23743 		pi->tx_rx_cal_radio_saveregs[1] =
23744 			read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23745 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23746 
23747 		pi->tx_rx_cal_radio_saveregs[2] =
23748 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23749 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23750 		pi->tx_rx_cal_radio_saveregs[3] =
23751 			read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23752 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23753 
23754 		pi->tx_rx_cal_radio_saveregs[4] =
23755 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23756 		pi->tx_rx_cal_radio_saveregs[5] =
23757 			read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23758 
23759 		if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23760 		    0) {
23761 
23762 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23763 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23764 		} else {
23765 
23766 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23767 			write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23768 		}
23769 
23770 		if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23771 
23772 			or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23773 			or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23774 		} else {
23775 
23776 			and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23777 			and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23778 		}
23779 	}
23780 }
23781 
23782 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
23783 {
23784 	u16 jtag_core, core;
23785 
23786 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23787 		for (core = 0; core <= 1; core++) {
23788 
23789 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23790 					 TX_SSI_MASTER,
23791 					 pi->
23792 					 tx_rx_cal_radio_saveregs[(core * 11) +
23793 								  0]);
23794 
23795 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23796 					 pi->
23797 					 tx_rx_cal_radio_saveregs[(core * 11) +
23798 								  1]);
23799 
23800 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23801 					 pi->
23802 					 tx_rx_cal_radio_saveregs[(core * 11) +
23803 								  2]);
23804 
23805 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23806 					 pi->
23807 					 tx_rx_cal_radio_saveregs[(core * 11) +
23808 								  3]);
23809 
23810 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23811 					 pi->
23812 					 tx_rx_cal_radio_saveregs[(core * 11) +
23813 								  5]);
23814 
23815 			if (pi->pubpi.radiorev != 5)
23816 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23817 						 TSSIA,
23818 						 pi->tx_rx_cal_radio_saveregs
23819 							     [(core * 11) + 6]);
23820 
23821 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23822 					 pi->
23823 					 tx_rx_cal_radio_saveregs[(core * 11) +
23824 								  7]);
23825 
23826 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23827 					 pi->
23828 					 tx_rx_cal_radio_saveregs[(core * 11) +
23829 								  8]);
23830 		}
23831 	} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23832 		for (core = 0; core <= 1; core++) {
23833 			jtag_core = (core == PHY_CORE_0) ?
23834 				     RADIO_2056_TX0 : RADIO_2056_TX1;
23835 
23836 			write_radio_reg(pi,
23837 					RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23838 					pi->
23839 					tx_rx_cal_radio_saveregs[(core * 11) +
23840 								 0]);
23841 
23842 			write_radio_reg(pi,
23843 					RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23844 					pi->
23845 					tx_rx_cal_radio_saveregs[(core * 11) +
23846 								 1]);
23847 
23848 			write_radio_reg(pi,
23849 					RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23850 					pi->
23851 					tx_rx_cal_radio_saveregs[(core * 11) +
23852 								 2]);
23853 
23854 			write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23855 					pi->
23856 					tx_rx_cal_radio_saveregs[(core * 11) +
23857 								 3]);
23858 
23859 			write_radio_reg(pi,
23860 					RADIO_2056_TX_TX_AMP_DET | jtag_core,
23861 					pi->
23862 					tx_rx_cal_radio_saveregs[(core * 11) +
23863 								 4]);
23864 
23865 			write_radio_reg(pi,
23866 					RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23867 					pi->
23868 					tx_rx_cal_radio_saveregs[(core * 11) +
23869 								 5]);
23870 
23871 			write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23872 					pi->
23873 					tx_rx_cal_radio_saveregs[(core * 11) +
23874 								 6]);
23875 
23876 			write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23877 					pi->
23878 					tx_rx_cal_radio_saveregs[(core * 11) +
23879 								 7]);
23880 
23881 			write_radio_reg(pi,
23882 					RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23883 					pi->
23884 					tx_rx_cal_radio_saveregs[(core * 11) +
23885 								 8]);
23886 
23887 			write_radio_reg(pi,
23888 					RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23889 					pi->
23890 					tx_rx_cal_radio_saveregs[(core * 11) +
23891 								 9]);
23892 
23893 			write_radio_reg(pi,
23894 					RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23895 					pi->
23896 					tx_rx_cal_radio_saveregs[(core * 11) +
23897 								 10]);
23898 		}
23899 	} else {
23900 
23901 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23902 				pi->tx_rx_cal_radio_saveregs[0]);
23903 		write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23904 				pi->tx_rx_cal_radio_saveregs[1]);
23905 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23906 				pi->tx_rx_cal_radio_saveregs[2]);
23907 		write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23908 				pi->tx_rx_cal_radio_saveregs[3]);
23909 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23910 				pi->tx_rx_cal_radio_saveregs[4]);
23911 		write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23912 				pi->tx_rx_cal_radio_saveregs[5]);
23913 	}
23914 }
23915 
23916 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
23917 {
23918 	u16 val, mask;
23919 
23920 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23921 		pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23922 		pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23923 
23924 		mask = ((0x3 << 8) | (0x3 << 10));
23925 		val = (0x2 << 8);
23926 		val |= (0x2 << 10);
23927 		mod_phy_reg(pi, 0xa6, mask, val);
23928 		mod_phy_reg(pi, 0xa7, mask, val);
23929 
23930 		val = read_phy_reg(pi, 0x8f);
23931 		pi->tx_rx_cal_phy_saveregs[2] = val;
23932 		val |= ((0x1 << 9) | (0x1 << 10));
23933 		write_phy_reg(pi, 0x8f, val);
23934 
23935 		val = read_phy_reg(pi, 0xa5);
23936 		pi->tx_rx_cal_phy_saveregs[3] = val;
23937 		val |= ((0x1 << 9) | (0x1 << 10));
23938 		write_phy_reg(pi, 0xa5, val);
23939 
23940 		pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23941 		mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23942 
23943 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23944 					&val);
23945 		pi->tx_rx_cal_phy_saveregs[5] = val;
23946 		val = 0;
23947 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23948 					 &val);
23949 
23950 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23951 					&val);
23952 		pi->tx_rx_cal_phy_saveregs[6] = val;
23953 		val = 0;
23954 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23955 					 &val);
23956 
23957 		pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23958 		pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23959 
23960 		if (!(pi->use_int_tx_iqlo_cal_nphy))
23961 			wlc_phy_rfctrlintc_override_nphy(
23962 				pi,
23963 				NPHY_RfctrlIntc_override_PA,
23964 				1,
23965 				RADIO_MIMO_CORESEL_CORE1
23966 				|
23967 				RADIO_MIMO_CORESEL_CORE2);
23968 		else
23969 			wlc_phy_rfctrlintc_override_nphy(
23970 				pi,
23971 				NPHY_RfctrlIntc_override_PA,
23972 				0,
23973 				RADIO_MIMO_CORESEL_CORE1
23974 				|
23975 				RADIO_MIMO_CORESEL_CORE2);
23976 
23977 		wlc_phy_rfctrlintc_override_nphy(pi,
23978 						 NPHY_RfctrlIntc_override_TRSW,
23979 						 0x2, RADIO_MIMO_CORESEL_CORE1);
23980 		wlc_phy_rfctrlintc_override_nphy(pi,
23981 						 NPHY_RfctrlIntc_override_TRSW,
23982 						 0x8, RADIO_MIMO_CORESEL_CORE2);
23983 
23984 		pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23985 		pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23986 		mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23987 			    0x29b, (0x1 << 0), (0) << 0);
23988 
23989 		mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23990 			    0x29b, (0x1 << 0), (0) << 0);
23991 
23992 		if (NREV_IS(pi->pubpi.phy_rev, 7)
23993 		    || NREV_GE(pi->pubpi.phy_rev, 8))
23994 			wlc_phy_rfctrl_override_nphy_rev7(
23995 				pi, (0x1 << 7),
23996 				wlc_phy_read_lpf_bw_ctl_nphy
23997 					(pi,
23998 					0), 0, 0,
23999 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24000 
24001 		if (pi->use_int_tx_iqlo_cal_nphy
24002 		    && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24003 
24004 			if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24005 
24006 				mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24007 					      1 << 4);
24008 
24009 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
24010 					mod_radio_reg(
24011 						pi,
24012 						RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24013 						1, 0);
24014 					mod_radio_reg(
24015 						pi,
24016 						RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24017 						1, 0);
24018 				} else {
24019 					mod_radio_reg(
24020 					     pi,
24021 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24022 					     1, 0);
24023 					mod_radio_reg(
24024 					     pi,
24025 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24026 					     1, 0);
24027 				}
24028 			} else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24029 				wlc_phy_rfctrl_override_nphy_rev7(
24030 					pi,
24031 					(0x1 << 3), 0,
24032 					0x3, 0,
24033 					NPHY_REV7_RFCTRLOVERRIDE_ID0);
24034 			}
24035 		}
24036 	} else {
24037 		pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24038 		pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24039 
24040 		mask = ((0x3 << 12) | (0x3 << 14));
24041 		val = (0x2 << 12);
24042 		val |= (0x2 << 14);
24043 		mod_phy_reg(pi, 0xa6, mask, val);
24044 		mod_phy_reg(pi, 0xa7, mask, val);
24045 
24046 		val = read_phy_reg(pi, 0xa5);
24047 		pi->tx_rx_cal_phy_saveregs[2] = val;
24048 		val |= ((0x1 << 12) | (0x1 << 13));
24049 		write_phy_reg(pi, 0xa5, val);
24050 
24051 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24052 					&val);
24053 		pi->tx_rx_cal_phy_saveregs[3] = val;
24054 		val |= 0x2000;
24055 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24056 					 &val);
24057 
24058 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24059 					&val);
24060 		pi->tx_rx_cal_phy_saveregs[4] = val;
24061 		val |= 0x2000;
24062 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24063 					 &val);
24064 
24065 		pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24066 		pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24067 		val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24068 		write_phy_reg(pi, 0x91, val);
24069 		write_phy_reg(pi, 0x92, val);
24070 	}
24071 }
24072 
24073 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24074 {
24075 	u16 mask;
24076 
24077 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24078 		write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24079 		write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24080 		write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24081 		write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24082 		write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24083 
24084 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24085 					 &pi->tx_rx_cal_phy_saveregs[5]);
24086 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24087 					 &pi->tx_rx_cal_phy_saveregs[6]);
24088 
24089 		write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24090 		write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24091 
24092 		write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24093 		write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24094 
24095 		if (NREV_IS(pi->pubpi.phy_rev, 7)
24096 		    || NREV_GE(pi->pubpi.phy_rev, 8))
24097 			wlc_phy_rfctrl_override_nphy_rev7(
24098 				pi, (0x1 << 7), 0, 0,
24099 				1,
24100 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24101 
24102 		wlc_phy_resetcca_nphy(pi);
24103 
24104 		if (pi->use_int_tx_iqlo_cal_nphy
24105 		    && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24106 
24107 			if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24108 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
24109 					mod_radio_reg(
24110 						pi,
24111 						RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24112 						1, 1);
24113 					mod_radio_reg(
24114 						pi,
24115 						RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24116 						1, 1);
24117 				} else {
24118 					mod_radio_reg(
24119 					     pi,
24120 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24121 					     1, 1);
24122 					mod_radio_reg(
24123 					     pi,
24124 					     RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24125 					     1, 1);
24126 				}
24127 
24128 				mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24129 					      0);
24130 			} else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24131 				wlc_phy_rfctrl_override_nphy_rev7(
24132 					pi,
24133 					(0x1 << 3), 0,
24134 					0x3, 1,
24135 					NPHY_REV7_RFCTRLOVERRIDE_ID0);
24136 			}
24137 		}
24138 	} else {
24139 		mask = ((0x3 << 12) | (0x3 << 14));
24140 		mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24141 		mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24142 		write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24143 
24144 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24145 					 &pi->tx_rx_cal_phy_saveregs[3]);
24146 
24147 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24148 					 &pi->tx_rx_cal_phy_saveregs[4]);
24149 
24150 		write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24151 		write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24152 	}
24153 }
24154 
24155 void
24156 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24157 {
24158 	u16 tssi_reg;
24159 	s32 temp, pwrindex[2];
24160 	s32 idle_tssi[2];
24161 	s32 rssi_buf[4];
24162 	s32 tssival[2];
24163 	u8 tssi_type;
24164 
24165 	tssi_reg = read_phy_reg(pi, 0x1e9);
24166 
24167 	temp = (s32) (tssi_reg & 0x3f);
24168 	idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24169 
24170 	temp = (s32) ((tssi_reg >> 8) & 0x3f);
24171 	idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24172 
24173 	tssi_type =
24174 		CHSPEC_IS5G(pi->radio_chanspec) ?
24175 		(u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
24176 
24177 	wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24178 
24179 	tssival[0] = rssi_buf[0] / ((s32) num_samps);
24180 	tssival[1] = rssi_buf[2] / ((s32) num_samps);
24181 
24182 	pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24183 	pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24184 
24185 	if (pwrindex[0] < 0)
24186 		pwrindex[0] = 0;
24187 	else if (pwrindex[0] > 63)
24188 		pwrindex[0] = 63;
24189 
24190 	if (pwrindex[1] < 0)
24191 		pwrindex[1] = 0;
24192 	else if (pwrindex[1] > 63)
24193 		pwrindex[1] = 63;
24194 
24195 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
24196 				(u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24197 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
24198 				(u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24199 }
24200 
24201 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24202 {
24203 	int index;
24204 	u32 bbmult_scale;
24205 	u16 bbmult;
24206 	u16 tblentry;
24207 
24208 	static const struct nphy_txiqcal_ladder ladder_lo[] = {
24209 		{3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24210 		{25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24211 		{25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24212 	};
24213 
24214 	static const struct nphy_txiqcal_ladder ladder_iq[] = {
24215 		{3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24216 		{25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24217 		{100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24218 	};
24219 
24220 	bbmult = (core == PHY_CORE_0) ?
24221 		 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24222 		 (pi->nphy_txcal_bbmult & 0xff);
24223 
24224 	for (index = 0; index < 18; index++) {
24225 		bbmult_scale = ladder_lo[index].percent * bbmult;
24226 		bbmult_scale /= 100;
24227 
24228 		tblentry =
24229 			((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24230 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
24231 					 &tblentry);
24232 
24233 		bbmult_scale = ladder_iq[index].percent * bbmult;
24234 		bbmult_scale /= 100;
24235 
24236 		tblentry =
24237 			((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24238 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24239 					 16, &tblentry);
24240 	}
24241 }
24242 
24243 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24244 {
24245 	u16 tmp;
24246 	tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24247 
24248 	tmp = (tmp & (0x7f << 8)) >> 8;
24249 	return (u8) tmp;
24250 }
24251 
24252 static void
24253 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24254 {
24255 	mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24256 
24257 	if (NREV_GT(pi->pubpi.phy_rev, 1))
24258 		mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24259 }
24260 
24261 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24262 {
24263 	u16 m0m1;
24264 
24265 	wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24266 
24267 	return m0m1;
24268 }
24269 
24270 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24271 {
24272 	u16 m0m1 = (u16) ((m0 << 8) | m1);
24273 
24274 	wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24275 	wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24276 }
24277 
24278 static void
24279 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24280 			    struct nphy_papd_restore_state *state, u8 core)
24281 {
24282 	s32 tone_freq;
24283 	u8 off_core;
24284 	u16 mixgain = 0;
24285 
24286 	off_core = core ^ 0x1;
24287 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24288 
24289 		if (NREV_IS(pi->pubpi.phy_rev, 7)
24290 		    || NREV_GE(pi->pubpi.phy_rev, 8))
24291 			wlc_phy_rfctrl_override_nphy_rev7(
24292 				pi, (0x1 << 7),
24293 				wlc_phy_read_lpf_bw_ctl_nphy
24294 					(pi,
24295 					0), 0, 0,
24296 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24297 
24298 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24299 			if (pi->pubpi.radiorev == 5)
24300 				mixgain = (core == 0) ? 0x20 : 0x00;
24301 			else if ((pi->pubpi.radiorev == 7)
24302 				 || (pi->pubpi.radiorev == 8))
24303 				mixgain = 0x00;
24304 			else if ((pi->pubpi.radiorev <= 4)
24305 				 || (pi->pubpi.radiorev == 6))
24306 				mixgain = 0x00;
24307 		} else {
24308 			if ((pi->pubpi.radiorev == 4) ||
24309 			    (pi->pubpi.radiorev == 6))
24310 				mixgain = 0x50;
24311 			else if ((pi->pubpi.radiorev == 3)
24312 				 || (pi->pubpi.radiorev == 7)
24313 				 || (pi->pubpi.radiorev == 8))
24314 				mixgain = 0x0;
24315 		}
24316 
24317 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24318 						  mixgain, (1 << core), 0,
24319 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24320 
24321 		wlc_phy_rfctrl_override_1tomany_nphy(
24322 			pi,
24323 			NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24324 			1, (1 << core), 0);
24325 		wlc_phy_rfctrl_override_1tomany_nphy(
24326 			pi,
24327 			NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24328 			0, (1 << off_core), 0);
24329 
24330 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24331 						  0, 0x3, 0,
24332 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24333 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24334 						  (1 << core), 0,
24335 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24336 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24337 						  (1 << core), 0,
24338 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24339 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24340 						  (1 << core), 0,
24341 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24342 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24343 						  (1 << core), 0,
24344 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24345 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24346 						  (1 << core), 0,
24347 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24348 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24349 						  (1 << core), 0,
24350 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24351 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24352 						  (1 << core), 0,
24353 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24354 
24355 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24356 						  0, (1 << core), 0,
24357 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24358 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24359 						  (1 << core), 0,
24360 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24361 
24362 		state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24363 						    0xa6 : 0xa7);
24364 		state->afeoverride[core] =
24365 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24366 		state->afectrl[off_core] =
24367 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24368 		state->afeoverride[off_core] =
24369 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24370 
24371 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24372 			    (0x1 << 2), 0);
24373 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24374 				 0xa5), (0x1 << 2), (0x1 << 2));
24375 
24376 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24377 			    (0x1 << 2), (0x1 << 2));
24378 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24379 				 0x8f), (0x1 << 2), (0x1 << 2));
24380 
24381 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24382 			state->pwrup[core] =
24383 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24384 						TXRXCOUPLE_2G_PWRUP);
24385 			state->atten[core] =
24386 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24387 						TXRXCOUPLE_2G_ATTEN);
24388 			state->pwrup[off_core] =
24389 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24390 						TXRXCOUPLE_2G_PWRUP);
24391 			state->atten[off_core] =
24392 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24393 						TXRXCOUPLE_2G_ATTEN);
24394 
24395 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24396 					 TXRXCOUPLE_2G_PWRUP, 0xc);
24397 
24398 			if ((pi->pubpi.radiorev == 3) ||
24399 			    (pi->pubpi.radiorev == 4) ||
24400 			    (pi->pubpi.radiorev == 6))
24401 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24402 						 TXRXCOUPLE_2G_ATTEN, 0xf0);
24403 			else if (pi->pubpi.radiorev == 5)
24404 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24405 						 TXRXCOUPLE_2G_ATTEN,
24406 						 (core == 0) ? 0xf7 : 0xf2);
24407 			else if ((pi->pubpi.radiorev == 7)
24408 				 || (pi->pubpi.radiorev == 8))
24409 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24410 						 TXRXCOUPLE_2G_ATTEN, 0xf0);
24411 
24412 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24413 					 TXRXCOUPLE_2G_PWRUP, 0x0);
24414 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24415 					 TXRXCOUPLE_2G_ATTEN, 0xff);
24416 		} else {
24417 			state->pwrup[core] =
24418 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24419 						TXRXCOUPLE_5G_PWRUP);
24420 			state->atten[core] =
24421 				READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24422 						TXRXCOUPLE_5G_ATTEN);
24423 			state->pwrup[off_core] =
24424 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24425 						TXRXCOUPLE_5G_PWRUP);
24426 			state->atten[off_core] =
24427 				READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24428 						TXRXCOUPLE_5G_ATTEN);
24429 
24430 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24431 					 TXRXCOUPLE_5G_PWRUP, 0xc);
24432 
24433 			if ((pi->pubpi.radiorev == 7)
24434 			    || (pi->pubpi.radiorev == 8))
24435 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24436 						 TXRXCOUPLE_5G_ATTEN, 0xf4);
24437 
24438 			else
24439 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24440 						 TXRXCOUPLE_5G_ATTEN, 0xf0);
24441 
24442 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24443 					 TXRXCOUPLE_5G_PWRUP, 0x0);
24444 			WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24445 					 TXRXCOUPLE_5G_ATTEN, 0xff);
24446 		}
24447 
24448 		tone_freq = 4000;
24449 
24450 		wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24451 
24452 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24453 			    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24454 
24455 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24456 			    0x2a4, (0x1 << 13), (1) << 13);
24457 
24458 		mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24459 			    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24460 
24461 		mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24462 			    0x2a4, (0x1 << 13), (0) << 13);
24463 
24464 	} else {
24465 
24466 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24467 
24468 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24469 
24470 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24471 
24472 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24473 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24474 
24475 		state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24476 						    0xa6 : 0xa7);
24477 		state->afeoverride[core] =
24478 			read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24479 
24480 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24481 			    (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24482 		mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24483 				 0xa5),
24484 			    (0x1 << 0) |
24485 			    (0x1 << 1) |
24486 			    (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24487 
24488 		state->vga_master[core] =
24489 			READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24490 		WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24491 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24492 			state->fbmix[core] =
24493 				READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24494 						TXFBMIX_G);
24495 			state->intpa_master[core] =
24496 				READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24497 						INTPAG_MASTER);
24498 
24499 			WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24500 					 0x03);
24501 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24502 					 INTPAG_MASTER, 0x04);
24503 		} else {
24504 			state->fbmix[core] =
24505 				READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24506 						TXFBMIX_A);
24507 			state->intpa_master[core] =
24508 				READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24509 						INTPAA_MASTER);
24510 
24511 			WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24512 					 0x03);
24513 			WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24514 					 INTPAA_MASTER, 0x04);
24515 
24516 		}
24517 
24518 		tone_freq = 4000;
24519 
24520 		wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24521 
24522 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24523 			    0x29b, (0x1 << 0), (1) << 0);
24524 
24525 		mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24526 			    0x29b, (0x1 << 0), (0) << 0);
24527 
24528 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24529 	}
24530 }
24531 
24532 static void
24533 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24534 			      struct nphy_papd_restore_state *state)
24535 {
24536 	u8 core;
24537 
24538 	wlc_phy_stopplayback_nphy(pi);
24539 
24540 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24541 
24542 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24543 
24544 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
24545 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24546 						 TXRXCOUPLE_2G_PWRUP, 0);
24547 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24548 						 TXRXCOUPLE_2G_ATTEN,
24549 						 state->atten[core]);
24550 			} else {
24551 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24552 						 TXRXCOUPLE_5G_PWRUP, 0);
24553 				WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24554 						 TXRXCOUPLE_5G_ATTEN,
24555 						 state->atten[core]);
24556 			}
24557 		}
24558 
24559 		if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24560 			wlc_phy_rfctrl_override_nphy_rev7(
24561 				pi, (0x1 << 2),
24562 				1, 0x3, 0,
24563 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
24564 		else
24565 			wlc_phy_rfctrl_override_nphy_rev7(
24566 				pi, (0x1 << 2),
24567 				0, 0x3, 1,
24568 				NPHY_REV7_RFCTRLOVERRIDE_ID0);
24569 
24570 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24571 						  0, 0x3, 1,
24572 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24573 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24574 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24575 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24576 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24577 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24578 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24579 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24580 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24581 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24582 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24583 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24584 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24585 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24586 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24587 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24588 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24589 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24590 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
24591 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24592 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24593 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24594 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24595 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24596 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24597 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24598 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24599 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24600 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24601 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24602 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
24603 
24604 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24605 
24606 			write_phy_reg(pi, (core == PHY_CORE_0) ?
24607 				      0xa6 : 0xa7, state->afectrl[core]);
24608 			write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24609 				      0xa5, state->afeoverride[core]);
24610 		}
24611 
24612 		wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24613 					    (state->mm & 0xff));
24614 
24615 		if (NREV_IS(pi->pubpi.phy_rev, 7)
24616 		    || NREV_GE(pi->pubpi.phy_rev, 8))
24617 			wlc_phy_rfctrl_override_nphy_rev7(
24618 				pi, (0x1 << 7), 0, 0,
24619 				1,
24620 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
24621 	} else {
24622 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24623 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24624 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24625 
24626 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24627 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24628 
24629 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24630 
24631 			WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24632 					 state->vga_master[core]);
24633 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
24634 				WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24635 						 TXFBMIX_G, state->fbmix[core]);
24636 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24637 						 INTPAG_MASTER,
24638 						 state->intpa_master[core]);
24639 			} else {
24640 				WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24641 						 TXFBMIX_A, state->fbmix[core]);
24642 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24643 						 INTPAA_MASTER,
24644 						 state->intpa_master[core]);
24645 			}
24646 
24647 			write_phy_reg(pi, (core == PHY_CORE_0) ?
24648 				      0xa6 : 0xa7, state->afectrl[core]);
24649 			write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24650 				      0xa5, state->afeoverride[core]);
24651 		}
24652 
24653 		wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24654 					    (state->mm & 0xff));
24655 
24656 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24657 	}
24658 }
24659 
24660 static void
24661 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24662 		u32 end)
24663 {
24664 	u32 *buf, *src, *dst, sz;
24665 
24666 	sz = end - start + 1;
24667 
24668 	buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24669 	if (NULL == buf)
24670 		return;
24671 
24672 	src = buf;
24673 	dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24674 
24675 	wlc_phy_table_read_nphy(pi,
24676 				(core ==
24677 				 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
24678 				 NPHY_TBL_ID_EPSILONTBL1),
24679 				NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24680 
24681 	do {
24682 		u32 phy_a1, phy_a2;
24683 		s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24684 
24685 		phy_a1 = end - min(end, (winsz >> 1));
24686 		phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24687 			       end + (winsz >> 1));
24688 		phy_a3 = phy_a2 - phy_a1 + 1;
24689 		phy_a6 = 0;
24690 		phy_a7 = 0;
24691 
24692 		do {
24693 			wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24694 						    &phy_a5);
24695 			phy_a6 += phy_a4;
24696 			phy_a7 += phy_a5;
24697 		} while (phy_a2-- != phy_a1);
24698 
24699 		phy_a6 /= phy_a3;
24700 		phy_a7 /= phy_a3;
24701 		dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24702 	} while (end-- != start);
24703 
24704 	wlc_phy_table_write_nphy(pi,
24705 				 (core ==
24706 				  PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
24707 				 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24708 
24709 	kfree(buf);
24710 }
24711 
24712 static void
24713 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24714 		enum phy_cal_mode cal_mode, u8 core)
24715 {
24716 	u16 phy_a1, phy_a2, phy_a3;
24717 	u16 phy_a4, phy_a5;
24718 	bool phy_a6;
24719 	u8 phy_a7, m[2];
24720 	u32 phy_a8 = 0;
24721 	struct nphy_txgains phy_a9;
24722 
24723 	if (NREV_LT(pi->pubpi.phy_rev, 3))
24724 		return;
24725 
24726 	phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24727 
24728 	phy_a6 = ((cal_mode == CAL_GCTRL)
24729 		  || (cal_mode == CAL_SOFT)) ? true : false;
24730 
24731 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24732 
24733 		phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24734 
24735 		if (CHSPEC_IS2G(pi->radio_chanspec))
24736 			phy_a5 = ((phy_a9.txlpf[core] << 15) |
24737 				  (phy_a9.txgm[core] << 12) |
24738 				  (phy_a9.pga[core] << 8) |
24739 				  (txgains->gains.pad[core] << 3) |
24740 				  (phy_a9.ipa[core]));
24741 		else
24742 			phy_a5 = ((phy_a9.txlpf[core] << 15) |
24743 				  (phy_a9.txgm[core] << 12) |
24744 				  (txgains->gains.pga[core] << 8) |
24745 				  (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24746 
24747 		wlc_phy_rfctrl_override_1tomany_nphy(
24748 			pi,
24749 			NPHY_REV7_RfctrlOverride_cmd_txgain,
24750 			phy_a5, (1 << core), 0);
24751 
24752 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24753 			if ((pi->pubpi.radiorev <= 4)
24754 			    || (pi->pubpi.radiorev == 6))
24755 				m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24756 					  60 : 79;
24757 			else
24758 				m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24759 					  45 : 64;
24760 		} else {
24761 			m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24762 		}
24763 
24764 		m[phy_a7] = 0;
24765 		wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24766 
24767 		phy_a2 = 63;
24768 
24769 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
24770 			if ((pi->pubpi.radiorev == 4)
24771 			    || (pi->pubpi.radiorev == 6)) {
24772 				phy_a1 = 30;
24773 				phy_a3 = 30;
24774 			} else {
24775 				phy_a1 = 25;
24776 				phy_a3 = 25;
24777 			}
24778 		} else {
24779 			if ((pi->pubpi.radiorev == 5)
24780 			    || (pi->pubpi.radiorev == 7)
24781 			    || (pi->pubpi.radiorev == 8)) {
24782 				phy_a1 = 25;
24783 				phy_a3 = 25;
24784 			} else {
24785 				phy_a1 = 35;
24786 				phy_a3 = 35;
24787 			}
24788 		}
24789 
24790 		if (cal_mode == CAL_GCTRL) {
24791 			if ((pi->pubpi.radiorev == 5)
24792 			    && (CHSPEC_IS2G(pi->radio_chanspec)))
24793 				phy_a1 = 55;
24794 			else if (((pi->pubpi.radiorev == 7) &&
24795 				  (CHSPEC_IS2G(pi->radio_chanspec))) ||
24796 				 ((pi->pubpi.radiorev == 8) &&
24797 				  (CHSPEC_IS2G(pi->radio_chanspec))))
24798 				phy_a1 = 60;
24799 			else
24800 				phy_a1 = 63;
24801 
24802 		} else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
24803 
24804 			phy_a1 = 35;
24805 			phy_a3 = 35;
24806 		}
24807 
24808 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24809 			    0x29b, (0x1 << 0), (1) << 0);
24810 
24811 		mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
24812 			    0x29b, (0x1 << 0), (0) << 0);
24813 
24814 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24815 			    0x2a4, (0x1 << 13), (1) << 13);
24816 
24817 		mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
24818 			    0x2a4, (0x1 << 13), (0) << 13);
24819 
24820 		write_phy_reg(pi, 0x2a1, 0x80);
24821 		write_phy_reg(pi, 0x2a2, 0x100);
24822 
24823 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24824 			    0x2a4, (0x7 << 4), (11) << 4);
24825 
24826 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24827 			    0x2a4, (0x7 << 8), (11) << 8);
24828 
24829 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24830 			    0x2a4, (0x7 << 0), (0x3) << 0);
24831 
24832 		write_phy_reg(pi, 0x2e5, 0x20);
24833 
24834 		mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
24835 
24836 		mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
24837 
24838 		mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
24839 
24840 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24841 						  1, ((core == 0) ? 1 : 2), 0,
24842 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24843 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24844 						  0, ((core == 0) ? 2 : 1), 0,
24845 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24846 
24847 		write_phy_reg(pi, 0x2be, 1);
24848 		SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
24849 
24850 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24851 						  0, 0x3, 0,
24852 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
24853 
24854 		wlc_phy_table_write_nphy(pi,
24855 					 (core ==
24856 					  PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
24857 					 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
24858 					 32, &phy_a8);
24859 
24860 		if (cal_mode != CAL_GCTRL) {
24861 			if (CHSPEC_IS5G(pi->radio_chanspec))
24862 				wlc_phy_a1_nphy(pi, core, 5, 0, 35);
24863 		}
24864 
24865 		wlc_phy_rfctrl_override_1tomany_nphy(
24866 			pi,
24867 			NPHY_REV7_RfctrlOverride_cmd_txgain,
24868 			phy_a5, (1 << core), 1);
24869 
24870 	} else {
24871 
24872 		if (txgains) {
24873 			if (txgains->useindex) {
24874 				phy_a4 = 15 - ((txgains->index) >> 3);
24875 				if (CHSPEC_IS2G(pi->radio_chanspec)) {
24876 					if (NREV_GE(pi->pubpi.phy_rev, 6) &&
24877 					    pi->sh->chip == BCMA_CHIP_ID_BCM47162) {
24878 						phy_a5 = 0x10f7 | (phy_a4 << 8);
24879 					} else if (NREV_GE(pi->pubpi.phy_rev, 6)) {
24880 						phy_a5 = 0x00f7 | (phy_a4 << 8);
24881 					} else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
24882 						phy_a5 = 0x10f7 | (phy_a4 << 8);
24883 					} else {
24884 						phy_a5 = 0x50f7 | (phy_a4 << 8);
24885 					}
24886 				} else {
24887 					phy_a5 = 0x70f7 | (phy_a4 << 8);
24888 				}
24889 				wlc_phy_rfctrl_override_nphy(pi,
24890 							     (0x1 << 13),
24891 							     phy_a5,
24892 							     (1 << core), 0);
24893 			} else {
24894 				wlc_phy_rfctrl_override_nphy(pi,
24895 							     (0x1 << 13),
24896 							     0x5bf7,
24897 							     (1 << core), 0);
24898 			}
24899 		}
24900 
24901 		if (CHSPEC_IS2G(pi->radio_chanspec))
24902 			m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
24903 		else
24904 			m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24905 
24906 		m[phy_a7] = 0;
24907 		wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24908 
24909 		phy_a2 = 63;
24910 
24911 		if (cal_mode == CAL_FULL) {
24912 			phy_a1 = 25;
24913 			phy_a3 = 25;
24914 		} else if (cal_mode == CAL_SOFT) {
24915 			phy_a1 = 25;
24916 			phy_a3 = 25;
24917 		} else if (cal_mode == CAL_GCTRL) {
24918 			phy_a1 = 63;
24919 			phy_a3 = 25;
24920 		} else {
24921 
24922 			phy_a1 = 25;
24923 			phy_a3 = 25;
24924 		}
24925 
24926 		mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24927 			    0x29b, (0x1 << 0), (1) << 0);
24928 
24929 		mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
24930 			    0x29b, (0x1 << 0), (0) << 0);
24931 
24932 		if (NREV_GE(pi->pubpi.phy_rev, 6)) {
24933 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24934 				    0x2a4, (0x1 << 13), (1) << 13);
24935 
24936 			mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
24937 				    0x2a4, (0x1 << 13), (0) << 13);
24938 
24939 			write_phy_reg(pi, 0x2a1, 0x20);
24940 			write_phy_reg(pi, 0x2a2, 0x60);
24941 
24942 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24943 				    0x2a4, (0xf << 4), (9) << 4);
24944 
24945 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24946 				    0x2a4, (0xf << 8), (9) << 8);
24947 
24948 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24949 				    0x2a4, (0xf << 0), (0x2) << 0);
24950 
24951 			write_phy_reg(pi, 0x2e5, 0x20);
24952 		} else {
24953 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24954 				    0x2a4, (0x1 << 11), (1) << 11);
24955 
24956 			mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
24957 				    0x2a4, (0x1 << 11), (0) << 11);
24958 
24959 			write_phy_reg(pi, 0x2a1, 0x80);
24960 			write_phy_reg(pi, 0x2a2, 0x600);
24961 
24962 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24963 				    0x2a4, (0x7 << 4), (0) << 4);
24964 
24965 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24966 				    0x2a4, (0x7 << 8), (0) << 8);
24967 
24968 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24969 				    0x2a4, (0x7 << 0), (0x3) << 0);
24970 
24971 			mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
24972 
24973 		}
24974 
24975 		mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
24976 
24977 		mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
24978 
24979 		mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
24980 
24981 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
24982 
24983 		write_phy_reg(pi, 0x2be, 1);
24984 		SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
24985 
24986 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24987 
24988 		wlc_phy_table_write_nphy(pi,
24989 					 (core ==
24990 					  PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
24991 					 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
24992 					 32, &phy_a8);
24993 
24994 		if (cal_mode != CAL_GCTRL)
24995 			wlc_phy_a1_nphy(pi, core, 5, 0, 40);
24996 	}
24997 }
24998 
24999 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25000 {
25001 	int phy_a1;
25002 	int phy_a2;
25003 	bool phy_a3;
25004 	struct nphy_ipa_txcalgains phy_a4;
25005 	bool phy_a5 = false;
25006 	bool phy_a6 = true;
25007 	s32 phy_a7, phy_a8;
25008 	u32 phy_a9;
25009 	int phy_a10;
25010 	bool phy_a11 = false;
25011 	int phy_a12;
25012 	u8 phy_a13 = 0;
25013 	u8 phy_a14;
25014 	u8 *phy_a15 = NULL;
25015 
25016 	phy_a4.useindex = true;
25017 	phy_a12 = start_gain;
25018 
25019 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25020 
25021 		phy_a2 = 20;
25022 		phy_a1 = 1;
25023 
25024 		if (CHSPEC_IS2G(pi->radio_chanspec)) {
25025 			if (pi->pubpi.radiorev == 5) {
25026 
25027 				phy_a15 = pad_gain_codes_used_2057rev5;
25028 				phy_a13 =
25029 					ARRAY_SIZE(pad_gain_codes_used_2057rev5) - 1;
25030 
25031 			} else if ((pi->pubpi.radiorev == 7)
25032 				   || (pi->pubpi.radiorev == 8)) {
25033 
25034 				phy_a15 = pad_gain_codes_used_2057rev7;
25035 				phy_a13 =
25036 					ARRAY_SIZE(pad_gain_codes_used_2057rev7) - 1;
25037 
25038 			} else {
25039 
25040 				phy_a15 = pad_all_gain_codes_2057;
25041 				phy_a13 = ARRAY_SIZE(pad_all_gain_codes_2057) -
25042 					  1;
25043 			}
25044 
25045 		} else {
25046 
25047 			phy_a15 = pga_all_gain_codes_2057;
25048 			phy_a13 = ARRAY_SIZE(pga_all_gain_codes_2057) - 1;
25049 		}
25050 
25051 		phy_a14 = 0;
25052 
25053 		for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25054 			if (CHSPEC_IS2G(pi->radio_chanspec))
25055 				phy_a4.gains.pad[core] =
25056 					(u16) phy_a15[phy_a12];
25057 			else
25058 				phy_a4.gains.pga[core] =
25059 					(u16) phy_a15[phy_a12];
25060 
25061 			wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25062 
25063 			wlc_phy_table_read_nphy(pi,
25064 						(core ==
25065 						 PHY_CORE_0 ?
25066 						 NPHY_TBL_ID_EPSILONTBL0 :
25067 						 NPHY_TBL_ID_EPSILONTBL1), 1,
25068 						63, 32, &phy_a9);
25069 
25070 			wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25071 
25072 			phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25073 				  (phy_a8 == 4095) || (phy_a8 == -4096));
25074 
25075 			if (!phy_a6 && (phy_a3 != phy_a5)) {
25076 				if (!phy_a3)
25077 					phy_a12 -= (u8) phy_a1;
25078 
25079 				phy_a11 = true;
25080 				break;
25081 			}
25082 
25083 			if (phy_a3)
25084 				phy_a12 += (u8) phy_a1;
25085 			else
25086 				phy_a12 -= (u8) phy_a1;
25087 
25088 			if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25089 				if (phy_a12 < phy_a14)
25090 					phy_a12 = phy_a14;
25091 				else
25092 					phy_a12 = phy_a13;
25093 
25094 				phy_a11 = true;
25095 				break;
25096 			}
25097 
25098 			phy_a6 = false;
25099 			phy_a5 = phy_a3;
25100 		}
25101 
25102 	} else {
25103 		phy_a2 = 10;
25104 		phy_a1 = 8;
25105 		for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25106 			phy_a4.index = (u8) phy_a12;
25107 			wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25108 
25109 			wlc_phy_table_read_nphy(pi,
25110 						(core ==
25111 						 PHY_CORE_0 ?
25112 						 NPHY_TBL_ID_EPSILONTBL0 :
25113 						 NPHY_TBL_ID_EPSILONTBL1), 1,
25114 						63, 32, &phy_a9);
25115 
25116 			wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25117 
25118 			phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25119 				  (phy_a8 == 4095) || (phy_a8 == -4096));
25120 
25121 			if (!phy_a6 && (phy_a3 != phy_a5)) {
25122 				if (!phy_a3)
25123 					phy_a12 -= (u8) phy_a1;
25124 
25125 				phy_a11 = true;
25126 				break;
25127 			}
25128 
25129 			if (phy_a3)
25130 				phy_a12 += (u8) phy_a1;
25131 			else
25132 				phy_a12 -= (u8) phy_a1;
25133 
25134 			if ((phy_a12 < 0) || (phy_a12 > 127)) {
25135 				if (phy_a12 < 0)
25136 					phy_a12 = 0;
25137 				else
25138 					phy_a12 = 127;
25139 
25140 				phy_a11 = true;
25141 				break;
25142 			}
25143 
25144 			phy_a6 = false;
25145 			phy_a5 = phy_a3;
25146 		}
25147 
25148 	}
25149 
25150 	if (NREV_GE(pi->pubpi.phy_rev, 7))
25151 		return (u8) phy_a15[phy_a12];
25152 	else
25153 		return (u8) phy_a12;
25154 
25155 }
25156 
25157 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25158 {
25159 	struct nphy_ipa_txcalgains phy_b1[2];
25160 	struct nphy_papd_restore_state phy_b2;
25161 	bool phy_b3;
25162 	u8 phy_b4;
25163 	u8 phy_b5;
25164 	s16 phy_b6, phy_b7, phy_b8;
25165 	u16 phy_b9;
25166 	s16 phy_b10, phy_b11, phy_b12;
25167 
25168 	phy_b11 = 0;
25169 	phy_b12 = 0;
25170 	phy_b7 = 0;
25171 	phy_b8 = 0;
25172 	phy_b6 = 0;
25173 
25174 	if (pi->nphy_papd_skip == 1)
25175 		return;
25176 
25177 	phy_b3 = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
25178 			MCTL_EN_MAC));
25179 	if (!phy_b3)
25180 		wlapi_suspend_mac_and_wait(pi->sh->physhim);
25181 
25182 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
25183 
25184 	pi->nphy_force_papd_cal = false;
25185 
25186 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25187 		pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25188 			wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25189 
25190 	pi->nphy_papd_last_cal = pi->sh->now;
25191 	pi->nphy_papd_recal_counter++;
25192 
25193 	phy_b4 = pi->nphy_txpwrctrl;
25194 	wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25195 
25196 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
25197 				 nphy_papd_scaltbl);
25198 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
25199 				 nphy_papd_scaltbl);
25200 
25201 	phy_b9 = read_phy_reg(pi, 0x01);
25202 	mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25203 
25204 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25205 		s32 i, val = 0;
25206 		for (i = 0; i < 64; i++)
25207 			wlc_phy_table_write_nphy(pi,
25208 						 ((phy_b5 ==
25209 						   PHY_CORE_0) ?
25210 						  NPHY_TBL_ID_EPSILONTBL0 :
25211 						  NPHY_TBL_ID_EPSILONTBL1), 1,
25212 						 i, 32, &val);
25213 	}
25214 
25215 	wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25216 
25217 	phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25218 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25219 		wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25220 
25221 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25222 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25223 				if ((pi->pubpi.radiorev == 3)
25224 				    || (pi->pubpi.radiorev == 4)
25225 				    || (pi->pubpi.radiorev == 6)) {
25226 					pi->nphy_papd_cal_gain_index[phy_b5] =
25227 						23;
25228 				} else if (pi->pubpi.radiorev == 5) {
25229 					pi->nphy_papd_cal_gain_index[phy_b5] =
25230 						0;
25231 					pi->nphy_papd_cal_gain_index[phy_b5] =
25232 						wlc_phy_a3_nphy(
25233 							pi,
25234 							pi->
25235 							nphy_papd_cal_gain_index
25236 							[phy_b5],
25237 							phy_b5);
25238 
25239 				} else if ((pi->pubpi.radiorev == 7)
25240 					   || (pi->pubpi.radiorev == 8)) {
25241 
25242 					pi->nphy_papd_cal_gain_index[phy_b5] =
25243 						0;
25244 					pi->nphy_papd_cal_gain_index[phy_b5] =
25245 						wlc_phy_a3_nphy(
25246 							pi,
25247 							pi->
25248 							nphy_papd_cal_gain_index
25249 							[phy_b5],
25250 							phy_b5);
25251 
25252 				}
25253 
25254 				phy_b1[phy_b5].gains.pad[phy_b5] =
25255 					pi->nphy_papd_cal_gain_index[phy_b5];
25256 
25257 			} else {
25258 				pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25259 				pi->nphy_papd_cal_gain_index[phy_b5] =
25260 					wlc_phy_a3_nphy(
25261 						pi,
25262 						pi->
25263 						nphy_papd_cal_gain_index
25264 						[phy_b5], phy_b5);
25265 				phy_b1[phy_b5].gains.pga[phy_b5] =
25266 					pi->nphy_papd_cal_gain_index[phy_b5];
25267 			}
25268 		} else {
25269 			phy_b1[phy_b5].useindex = true;
25270 			phy_b1[phy_b5].index = 16;
25271 			phy_b1[phy_b5].index =
25272 				wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25273 						phy_b5);
25274 
25275 			pi->nphy_papd_cal_gain_index[phy_b5] =
25276 				15 - ((phy_b1[phy_b5].index) >> 3);
25277 		}
25278 
25279 		switch (pi->nphy_papd_cal_type) {
25280 		case 0:
25281 			wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25282 			break;
25283 		case 1:
25284 			wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25285 			break;
25286 		}
25287 
25288 		if (NREV_GE(pi->pubpi.phy_rev, 7))
25289 			wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25290 	}
25291 
25292 	if (NREV_LT(pi->pubpi.phy_rev, 7))
25293 		wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25294 
25295 	for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25296 		int eps_offset = 0;
25297 
25298 		if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25299 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25300 				if (pi->pubpi.radiorev == 3)
25301 					eps_offset = -2;
25302 				else if (pi->pubpi.radiorev == 5)
25303 					eps_offset = 3;
25304 				else
25305 					eps_offset = -1;
25306 			} else {
25307 				eps_offset = 2;
25308 			}
25309 
25310 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25311 				phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25312 				phy_b10 = 0;
25313 				if ((pi->pubpi.radiorev == 3) ||
25314 				    (pi->pubpi.radiorev == 4) ||
25315 				    (pi->pubpi.radiorev == 6)) {
25316 					phy_b12 = -(
25317 					    nphy_papd_padgain_dlt_2g_2057rev3n4
25318 							     [phy_b8] + 1) / 2;
25319 					phy_b10 = -1;
25320 				} else if (pi->pubpi.radiorev == 5) {
25321 					phy_b12 = -(
25322 					    nphy_papd_padgain_dlt_2g_2057rev5
25323 							     [phy_b8] + 1) / 2;
25324 				} else if ((pi->pubpi.radiorev == 7) ||
25325 					   (pi->pubpi.radiorev == 8)) {
25326 					phy_b12 = -(
25327 					    nphy_papd_padgain_dlt_2g_2057rev7
25328 							     [phy_b8] + 1) / 2;
25329 				}
25330 			} else {
25331 				phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25332 				if ((pi->pubpi.radiorev == 3) ||
25333 				    (pi->pubpi.radiorev == 4) ||
25334 				    (pi->pubpi.radiorev == 6))
25335 					phy_b11 =
25336 						-(nphy_papd_pgagain_dlt_5g_2057
25337 						  [phy_b7]
25338 						  + 1) / 2;
25339 				else if ((pi->pubpi.radiorev == 7)
25340 					 || (pi->pubpi.radiorev == 8))
25341 					phy_b11 = -(
25342 					      nphy_papd_pgagain_dlt_5g_2057rev7
25343 							     [phy_b7] + 1) / 2;
25344 
25345 				phy_b10 = -9;
25346 			}
25347 
25348 			if (CHSPEC_IS2G(pi->radio_chanspec))
25349 				phy_b6 =
25350 					-60 + 27 + eps_offset + phy_b12 +
25351 					phy_b10;
25352 			else
25353 				phy_b6 =
25354 					-60 + 27 + eps_offset + phy_b11 +
25355 					phy_b10;
25356 
25357 			mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25358 				    0x29c, (0x1ff << 7), (phy_b6) << 7);
25359 
25360 			pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25361 		} else {
25362 			if (NREV_LT(pi->pubpi.phy_rev, 5))
25363 				eps_offset = 4;
25364 			else
25365 				eps_offset = 2;
25366 
25367 			phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25368 
25369 			if (CHSPEC_IS2G(pi->radio_chanspec)) {
25370 				phy_b11 =
25371 					-(nphy_papd_pga_gain_delta_ipa_2g[
25372 						  phy_b7] +
25373 					  1) / 2;
25374 				phy_b10 = 0;
25375 			} else {
25376 				phy_b11 =
25377 					-(nphy_papd_pga_gain_delta_ipa_5g[
25378 						  phy_b7] +
25379 					  1) / 2;
25380 				phy_b10 = -9;
25381 			}
25382 
25383 			phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25384 
25385 			mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25386 				    0x29c, (0x1ff << 7), (phy_b6) << 7);
25387 
25388 			pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25389 		}
25390 	}
25391 
25392 	mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25393 		    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25394 
25395 	mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25396 		    0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25397 
25398 	if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25399 		mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25400 			    0x2a4, (0x1 << 13), (0) << 13);
25401 
25402 		mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25403 			    0x2a4, (0x1 << 13), (0) << 13);
25404 
25405 	} else {
25406 		mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25407 			    0x2a4, (0x1 << 11), (0) << 11);
25408 
25409 		mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25410 			    0x2a4, (0x1 << 11), (0) << 11);
25411 
25412 	}
25413 	pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
25414 
25415 	write_phy_reg(pi, 0x01, phy_b9);
25416 
25417 	wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25418 
25419 	wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25420 	if (phy_b4 == PHY_TPC_HW_OFF) {
25421 		wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25422 					 (s8) (pi->nphy_txpwrindex[0].
25423 					       index_internal), false);
25424 		wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25425 					 (s8) (pi->nphy_txpwrindex[1].
25426 					       index_internal), false);
25427 	}
25428 
25429 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
25430 
25431 	if (!phy_b3)
25432 		wlapi_enable_mac(pi->sh->physhim);
25433 }
25434 
25435 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25436 {
25437 	struct nphy_txgains target_gain;
25438 	u8 tx_pwr_ctrl_state;
25439 	bool fullcal = true;
25440 	bool restore_tx_gain = false;
25441 	bool mphase;
25442 
25443 	if (PHY_MUTED(pi))
25444 		return;
25445 
25446 	if (caltype == PHY_PERICAL_AUTO)
25447 		fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25448 	else if (caltype == PHY_PERICAL_PARTIAL)
25449 		fullcal = false;
25450 
25451 	if (pi->cal_type_override != PHY_PERICAL_AUTO)
25452 		fullcal =
25453 			(pi->cal_type_override ==
25454 			 PHY_PERICAL_FULL) ? true : false;
25455 
25456 	if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
25457 		if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25458 			wlc_phy_cal_perical_mphase_restart(pi);
25459 	}
25460 
25461 	if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
25462 		wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25463 
25464 	wlapi_suspend_mac_and_wait(pi->sh->physhim);
25465 
25466 	wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25467 
25468 	if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
25469 	    (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
25470 		pi->nphy_cal_orig_pwr_idx[0] =
25471 			(u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25472 		pi->nphy_cal_orig_pwr_idx[1] =
25473 			(u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25474 
25475 		if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25476 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
25477 						0x110, 16,
25478 						pi->nphy_cal_orig_tx_gain);
25479 		} else {
25480 			pi->nphy_cal_orig_tx_gain[0] = 0;
25481 			pi->nphy_cal_orig_tx_gain[1] = 0;
25482 		}
25483 	}
25484 	target_gain = wlc_phy_get_tx_gain_nphy(pi);
25485 	tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25486 	wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25487 
25488 	if (pi->antsel_type == ANTSEL_2x3)
25489 		wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25490 
25491 	mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25492 	if (!mphase) {
25493 
25494 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25495 			wlc_phy_precal_txgain_nphy(pi);
25496 			pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25497 			restore_tx_gain = true;
25498 
25499 			target_gain = pi->nphy_cal_target_gain;
25500 		}
25501 		if (0 ==
25502 		    wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25503 					    mphase)) {
25504 			if (PHY_IPA(pi))
25505 				wlc_phy_a4(pi, true);
25506 
25507 			wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25508 			wlapi_enable_mac(pi->sh->physhim);
25509 			wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25510 					     10000);
25511 			wlapi_suspend_mac_and_wait(pi->sh->physhim);
25512 			wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25513 
25514 			if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25515 					(pi->first_cal_after_assoc ||
25516 					(pi->cal_type_override ==
25517 					 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25518 				wlc_phy_savecal_nphy(pi);
25519 
25520 				wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25521 
25522 				pi->nphy_perical_last = pi->sh->now;
25523 			}
25524 		}
25525 		if (caltype != PHY_PERICAL_AUTO)
25526 			wlc_phy_rssi_cal_nphy(pi);
25527 
25528 		if (pi->first_cal_after_assoc
25529 		    || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25530 			pi->first_cal_after_assoc = false;
25531 			wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25532 			wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25533 		}
25534 
25535 		if (NREV_GE(pi->pubpi.phy_rev, 3))
25536 			wlc_phy_radio205x_vcocal_nphy(pi);
25537 	} else {
25538 		switch (pi->mphase_cal_phase_id) {
25539 		case MPHASE_CAL_STATE_INIT:
25540 			pi->nphy_perical_last = pi->sh->now;
25541 			pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25542 
25543 			if (NREV_GE(pi->pubpi.phy_rev, 3))
25544 				wlc_phy_precal_txgain_nphy(pi);
25545 
25546 			pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25547 			pi->mphase_cal_phase_id++;
25548 			break;
25549 
25550 		case MPHASE_CAL_STATE_TXPHASE0:
25551 		case MPHASE_CAL_STATE_TXPHASE1:
25552 		case MPHASE_CAL_STATE_TXPHASE2:
25553 		case MPHASE_CAL_STATE_TXPHASE3:
25554 		case MPHASE_CAL_STATE_TXPHASE4:
25555 		case MPHASE_CAL_STATE_TXPHASE5:
25556 			if ((pi->radar_percal_mask & 0x10) != 0)
25557 				pi->nphy_rxcal_active = true;
25558 
25559 			if (wlc_phy_cal_txiqlo_nphy
25560 				    (pi, pi->nphy_cal_target_gain, fullcal,
25561 				    true) != 0) {
25562 
25563 				wlc_phy_cal_perical_mphase_reset(pi);
25564 				break;
25565 			}
25566 
25567 			if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25568 			    (pi->mphase_cal_phase_id ==
25569 			     MPHASE_CAL_STATE_TXPHASE4))
25570 				pi->mphase_cal_phase_id += 2;
25571 			else
25572 				pi->mphase_cal_phase_id++;
25573 			break;
25574 
25575 		case MPHASE_CAL_STATE_PAPDCAL:
25576 			if ((pi->radar_percal_mask & 0x2) != 0)
25577 				pi->nphy_rxcal_active = true;
25578 
25579 			if (PHY_IPA(pi))
25580 				wlc_phy_a4(pi, true);
25581 
25582 			pi->mphase_cal_phase_id++;
25583 			break;
25584 
25585 		case MPHASE_CAL_STATE_RXCAL:
25586 			if ((pi->radar_percal_mask & 0x1) != 0)
25587 				pi->nphy_rxcal_active = true;
25588 			if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25589 						  (pi->first_cal_after_assoc ||
25590 						   (pi->cal_type_override ==
25591 						    PHY_PERICAL_FULL)) ? 2 : 0,
25592 						  false) == 0)
25593 				wlc_phy_savecal_nphy(pi);
25594 
25595 			pi->mphase_cal_phase_id++;
25596 			break;
25597 
25598 		case MPHASE_CAL_STATE_RSSICAL:
25599 			if ((pi->radar_percal_mask & 0x4) != 0)
25600 				pi->nphy_rxcal_active = true;
25601 			wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25602 			wlc_phy_rssi_cal_nphy(pi);
25603 
25604 			if (NREV_GE(pi->pubpi.phy_rev, 3))
25605 				wlc_phy_radio205x_vcocal_nphy(pi);
25606 
25607 			restore_tx_gain = true;
25608 
25609 			if (pi->first_cal_after_assoc)
25610 				pi->mphase_cal_phase_id++;
25611 			else
25612 				wlc_phy_cal_perical_mphase_reset(pi);
25613 
25614 			break;
25615 
25616 		case MPHASE_CAL_STATE_IDLETSSI:
25617 			if ((pi->radar_percal_mask & 0x8) != 0)
25618 				pi->nphy_rxcal_active = true;
25619 
25620 			if (pi->first_cal_after_assoc) {
25621 				pi->first_cal_after_assoc = false;
25622 				wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25623 				wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25624 			}
25625 
25626 			wlc_phy_cal_perical_mphase_reset(pi);
25627 			break;
25628 
25629 		default:
25630 			wlc_phy_cal_perical_mphase_reset(pi);
25631 			break;
25632 		}
25633 	}
25634 
25635 	if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25636 		if (restore_tx_gain) {
25637 			if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25638 
25639 				wlc_phy_txpwr_index_nphy(pi, 1,
25640 							 pi->
25641 							 nphy_cal_orig_pwr_idx
25642 							 [0], false);
25643 				wlc_phy_txpwr_index_nphy(pi, 2,
25644 							 pi->
25645 							 nphy_cal_orig_pwr_idx
25646 							 [1], false);
25647 
25648 				pi->nphy_txpwrindex[0].index = -1;
25649 				pi->nphy_txpwrindex[1].index = -1;
25650 			} else {
25651 				wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25652 							 (s8) (pi->
25653 							       nphy_txpwrindex
25654 							       [0].
25655 							       index_internal),
25656 							 false);
25657 				wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25658 							 (s8) (pi->
25659 							       nphy_txpwrindex
25660 							       [1].
25661 							       index_internal),
25662 							 false);
25663 			}
25664 		}
25665 	}
25666 
25667 	wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25668 	wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25669 	wlapi_enable_mac(pi->sh->physhim);
25670 }
25671 
25672 int
25673 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25674 			bool fullcal, bool mphase)
25675 {
25676 	u16 val;
25677 	u16 tbl_buf[11];
25678 	u8 cal_cnt;
25679 	u16 cal_cmd;
25680 	u8 num_cals, max_cal_cmds;
25681 	u16 core_no, cal_type;
25682 	u16 diq_start = 0;
25683 	u8 phy_bw;
25684 	u16 max_val;
25685 	u16 tone_freq;
25686 	u16 gain_save[2];
25687 	u16 cal_gain[2];
25688 	struct nphy_iqcal_params cal_params[2];
25689 	u32 tbl_len;
25690 	const void *tbl_ptr;
25691 	bool ladder_updated[2];
25692 	u8 mphase_cal_lastphase = 0;
25693 	int bcmerror = 0;
25694 	bool phyhang_avoid_state = false;
25695 
25696 	static const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
25697 		0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25698 		0x1902,
25699 		0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25700 		0x6407
25701 	};
25702 
25703 	static const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
25704 		0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25705 		0x3200,
25706 		0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25707 		0x6407
25708 	};
25709 
25710 	static const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
25711 		0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25712 		0x1202,
25713 		0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25714 		0x4707
25715 	};
25716 
25717 	static const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
25718 		0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25719 		0x2300,
25720 		0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25721 		0x4707
25722 	};
25723 
25724 	static const u16 tbl_tx_iqlo_cal_startcoefs[] = {
25725 		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25726 		0x0000
25727 	};
25728 
25729 	static const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
25730 		0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25731 		0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25732 	};
25733 
25734 	static const u16 tbl_tx_iqlo_cal_cmds_recal[] = {
25735 		0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25736 		0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25737 	};
25738 
25739 	static const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
25740 		0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25741 		0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25742 		0x0000
25743 	};
25744 
25745 	static const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
25746 		0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25747 		0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25748 	};
25749 
25750 	static const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
25751 		0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25752 		0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25753 	};
25754 
25755 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
25756 
25757 	if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25758 		phyhang_avoid_state = pi->phyhang_avoid;
25759 		pi->phyhang_avoid = false;
25760 	}
25761 
25762 	if (CHSPEC_IS40(pi->radio_chanspec))
25763 		phy_bw = 40;
25764 	else
25765 		phy_bw = 20;
25766 
25767 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25768 
25769 	for (core_no = 0; core_no <= 1; core_no++) {
25770 		wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25771 					      &cal_params[core_no]);
25772 		cal_gain[core_no] = cal_params[core_no].cal_gain;
25773 	}
25774 
25775 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25776 
25777 	wlc_phy_txcal_radio_setup_nphy(pi);
25778 
25779 	wlc_phy_txcal_physetup_nphy(pi);
25780 
25781 	ladder_updated[0] = ladder_updated[1] = false;
25782 	if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
25783 	      (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
25784 	       && (CHSPEC_IS2G(pi->radio_chanspec))))) {
25785 
25786 		if (phy_bw == 40) {
25787 			tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
25788 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
25789 		} else {
25790 			tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
25791 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
25792 		}
25793 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
25794 					 16, tbl_ptr);
25795 
25796 		if (phy_bw == 40) {
25797 			tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
25798 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
25799 		} else {
25800 			tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
25801 			tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
25802 		}
25803 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
25804 					 16, tbl_ptr);
25805 	}
25806 
25807 	if (NREV_GE(pi->pubpi.phy_rev, 7))
25808 		write_phy_reg(pi, 0xc2, 0x8ad9);
25809 	else
25810 		write_phy_reg(pi, 0xc2, 0x8aa9);
25811 
25812 	max_val = 250;
25813 	tone_freq = (phy_bw == 20) ? 2500 : 5000;
25814 
25815 	if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
25816 		wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
25817 		bcmerror = 0;
25818 	} else {
25819 		bcmerror =
25820 			wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
25821 					     false);
25822 	}
25823 
25824 	if (bcmerror == 0) {
25825 
25826 		if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
25827 			tbl_ptr = pi->mphase_txcal_bestcoeffs;
25828 			tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
25829 			if (NREV_LT(pi->pubpi.phy_rev, 3))
25830 				tbl_len -= 2;
25831 		} else {
25832 			if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
25833 
25834 				tbl_ptr = pi->nphy_txiqlocal_bestc;
25835 				tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
25836 				if (NREV_LT(pi->pubpi.phy_rev, 3))
25837 					tbl_len -= 2;
25838 			} else {
25839 
25840 				fullcal = true;
25841 
25842 				if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25843 					tbl_ptr =
25844 					    tbl_tx_iqlo_cal_startcoefs_nphyrev3;
25845 					tbl_len = ARRAY_SIZE(
25846 					   tbl_tx_iqlo_cal_startcoefs_nphyrev3);
25847 				} else {
25848 					tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
25849 					tbl_len = ARRAY_SIZE(
25850 						    tbl_tx_iqlo_cal_startcoefs);
25851 				}
25852 			}
25853 		}
25854 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
25855 					 16, tbl_ptr);
25856 
25857 		if (fullcal) {
25858 			max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25859 				       ARRAY_SIZE(
25860 				tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
25861 				       ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
25862 		} else {
25863 			max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25864 				       ARRAY_SIZE(
25865 				tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
25866 				       ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
25867 		}
25868 
25869 		if (mphase) {
25870 			cal_cnt = pi->mphase_txcal_cmdidx;
25871 			if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
25872 				num_cals = cal_cnt + pi->mphase_txcal_numcmds;
25873 			else
25874 				num_cals = max_cal_cmds;
25875 		} else {
25876 			cal_cnt = 0;
25877 			num_cals = max_cal_cmds;
25878 		}
25879 
25880 		for (; cal_cnt < num_cals; cal_cnt++) {
25881 
25882 			if (fullcal) {
25883 				cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25884 					  tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
25885 					  [cal_cnt] :
25886 					  tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
25887 			} else {
25888 				cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25889 					  tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
25890 					cal_cnt]
25891 					  : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
25892 			}
25893 
25894 			core_no = ((cal_cmd & 0x3000) >> 12);
25895 			cal_type = ((cal_cmd & 0x0F00) >> 8);
25896 
25897 			if (NREV_GE(pi->pubpi.phy_rev, 6) ||
25898 			    (NREV_IS(pi->pubpi.phy_rev, 5) &&
25899 			     PHY_IPA(pi)
25900 			     && (CHSPEC_IS2G(pi->radio_chanspec)))) {
25901 				if (!ladder_updated[core_no]) {
25902 					wlc_phy_update_txcal_ladder_nphy(
25903 						pi,
25904 						core_no);
25905 					ladder_updated[core_no] = true;
25906 				}
25907 			}
25908 
25909 			val =
25910 				(cal_params[core_no].
25911 				 ncorr[cal_type] << 8) | NPHY_N_GCTL;
25912 			write_phy_reg(pi, 0xc1, val);
25913 
25914 			if ((cal_type == 1) || (cal_type == 3)
25915 			    || (cal_type == 4)) {
25916 
25917 				wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
25918 							1, 69 + core_no, 16,
25919 							tbl_buf);
25920 
25921 				diq_start = tbl_buf[0];
25922 
25923 				tbl_buf[0] = 0;
25924 				wlc_phy_table_write_nphy(pi,
25925 							 NPHY_TBL_ID_IQLOCAL, 1,
25926 							 69 + core_no, 16,
25927 							 tbl_buf);
25928 			}
25929 
25930 			write_phy_reg(pi, 0xc0, cal_cmd);
25931 
25932 			SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
25933 				 20000);
25934 			if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
25935 				 "HW error: txiq calib"))
25936 				return -EIO;
25937 
25938 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
25939 						tbl_len, 96, 16, tbl_buf);
25940 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
25941 						 tbl_len, 64, 16, tbl_buf);
25942 
25943 			if ((cal_type == 1) || (cal_type == 3)
25944 			    || (cal_type == 4)) {
25945 
25946 				tbl_buf[0] = diq_start;
25947 
25948 			}
25949 
25950 		}
25951 
25952 		if (mphase) {
25953 			pi->mphase_txcal_cmdidx = num_cals;
25954 			if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
25955 				pi->mphase_txcal_cmdidx = 0;
25956 		}
25957 
25958 		mphase_cal_lastphase =
25959 			(NREV_LE(pi->pubpi.phy_rev, 2)) ?
25960 			MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
25961 
25962 		if (!mphase
25963 		    || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
25964 
25965 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
25966 						16, tbl_buf);
25967 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
25968 						 16, tbl_buf);
25969 
25970 			if (NREV_LT(pi->pubpi.phy_rev, 2)) {
25971 
25972 				tbl_buf[0] = 0;
25973 				tbl_buf[1] = 0;
25974 				tbl_buf[2] = 0;
25975 				tbl_buf[3] = 0;
25976 
25977 			}
25978 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
25979 						 16, tbl_buf);
25980 
25981 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
25982 						16, tbl_buf);
25983 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
25984 						 16, tbl_buf);
25985 
25986 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
25987 						 16, tbl_buf);
25988 
25989 			tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
25990 			if (NREV_LT(pi->pubpi.phy_rev, 3))
25991 				tbl_len -= 2;
25992 
25993 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
25994 						tbl_len, 96, 16,
25995 						pi->nphy_txiqlocal_bestc);
25996 
25997 			pi->nphy_txiqlocal_coeffsvalid = true;
25998 			pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25999 		} else {
26000 			tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26001 			if (NREV_LT(pi->pubpi.phy_rev, 3))
26002 				tbl_len -= 2;
26003 
26004 			wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26005 						tbl_len, 96, 16,
26006 						pi->mphase_txcal_bestcoeffs);
26007 		}
26008 
26009 		wlc_phy_stopplayback_nphy(pi);
26010 
26011 		write_phy_reg(pi, 0xc2, 0x0000);
26012 
26013 	}
26014 
26015 	wlc_phy_txcal_phycleanup_nphy(pi);
26016 
26017 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26018 				 gain_save);
26019 
26020 	wlc_phy_txcal_radio_cleanup_nphy(pi);
26021 
26022 	if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26023 		if (!mphase
26024 		    || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26025 			wlc_phy_tx_iq_war_nphy(pi);
26026 	}
26027 
26028 	if (NREV_GE(pi->pubpi.phy_rev, 4))
26029 		pi->phyhang_avoid = phyhang_avoid_state;
26030 
26031 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
26032 
26033 	return bcmerror;
26034 }
26035 
26036 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26037 {
26038 	u16 tbl_buf[7];
26039 
26040 	if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26041 	    (pi->nphy_txiqlocal_coeffsvalid)) {
26042 		wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26043 					ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26044 
26045 		if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26046 		    (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26047 		    (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26048 		    (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26049 
26050 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26051 						 16, pi->nphy_txiqlocal_bestc);
26052 
26053 			tbl_buf[0] = 0;
26054 			tbl_buf[1] = 0;
26055 			tbl_buf[2] = 0;
26056 			tbl_buf[3] = 0;
26057 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26058 						 16, tbl_buf);
26059 
26060 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26061 						 16,
26062 						 &pi->nphy_txiqlocal_bestc[5]);
26063 
26064 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26065 						 16,
26066 						 &pi->nphy_txiqlocal_bestc[5]);
26067 		}
26068 	}
26069 }
26070 
26071 void
26072 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
26073 			  struct nphy_iq_comp *pcomp)
26074 {
26075 	if (write) {
26076 		write_phy_reg(pi, 0x9a, pcomp->a0);
26077 		write_phy_reg(pi, 0x9b, pcomp->b0);
26078 		write_phy_reg(pi, 0x9c, pcomp->a1);
26079 		write_phy_reg(pi, 0x9d, pcomp->b1);
26080 	} else {
26081 		pcomp->a0 = read_phy_reg(pi, 0x9a);
26082 		pcomp->b0 = read_phy_reg(pi, 0x9b);
26083 		pcomp->a1 = read_phy_reg(pi, 0x9c);
26084 		pcomp->b1 = read_phy_reg(pi, 0x9d);
26085 	}
26086 }
26087 
26088 void
26089 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
26090 		       u16 num_samps, u8 wait_time, u8 wait_for_crs)
26091 {
26092 	u8 core;
26093 
26094 	write_phy_reg(pi, 0x12b, num_samps);
26095 	mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26096 	mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26097 		    (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26098 
26099 	mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
26100 
26101 	SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26102 		 10000);
26103 	if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26104 		 "HW error: rxiq est"))
26105 		return;
26106 
26107 	if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26108 		for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26109 			est[core].i_pwr =
26110 				(read_phy_reg(pi,
26111 					      NPHY_IqestipwrAccHi(core)) << 16)
26112 				| read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26113 			est[core].q_pwr =
26114 				(read_phy_reg(pi,
26115 					      NPHY_IqestqpwrAccHi(core)) << 16)
26116 				| read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26117 			est[core].iq_prod =
26118 				(read_phy_reg(pi,
26119 					      NPHY_IqestIqAccHi(core)) << 16) |
26120 				read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26121 		}
26122 	}
26123 }
26124 
26125 #define CAL_RETRY_CNT 2
26126 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26127 {
26128 	u8 curr_core;
26129 	struct phy_iq_est est[PHY_CORE_MAX];
26130 	struct nphy_iq_comp old_comp, new_comp;
26131 	s32 iq = 0;
26132 	u32 ii = 0, qq = 0;
26133 	s16 iq_nbits, qq_nbits, brsh, arsh;
26134 	s32 a, b, temp;
26135 	int bcmerror = 0;
26136 	uint cal_retry = 0;
26137 
26138 	if (core_mask == 0x0)
26139 		return;
26140 
26141 	wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26142 	new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26143 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26144 
26145 cal_try:
26146 	wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26147 
26148 	new_comp = old_comp;
26149 
26150 	for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26151 
26152 		if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26153 			iq = est[curr_core].iq_prod;
26154 			ii = est[curr_core].i_pwr;
26155 			qq = est[curr_core].q_pwr;
26156 		} else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26157 			iq = est[curr_core].iq_prod;
26158 			ii = est[curr_core].i_pwr;
26159 			qq = est[curr_core].q_pwr;
26160 		} else {
26161 			continue;
26162 		}
26163 
26164 		if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26165 			bcmerror = -EBADE;
26166 			break;
26167 		}
26168 
26169 		iq_nbits = wlc_phy_nbits(iq);
26170 		qq_nbits = wlc_phy_nbits(qq);
26171 
26172 		arsh = 10 - (30 - iq_nbits);
26173 		if (arsh >= 0) {
26174 			a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26175 			temp = (s32) (ii >> arsh);
26176 			if (temp == 0) {
26177 				bcmerror = -EBADE;
26178 				break;
26179 			}
26180 		} else {
26181 			a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26182 			temp = (s32) (ii << -arsh);
26183 			if (temp == 0) {
26184 				bcmerror = -EBADE;
26185 				break;
26186 			}
26187 		}
26188 
26189 		a /= temp;
26190 
26191 		brsh = qq_nbits - 31 + 20;
26192 		if (brsh >= 0) {
26193 			b = (qq << (31 - qq_nbits));
26194 			temp = (s32) (ii >> brsh);
26195 			if (temp == 0) {
26196 				bcmerror = -EBADE;
26197 				break;
26198 			}
26199 		} else {
26200 			b = (qq << (31 - qq_nbits));
26201 			temp = (s32) (ii << -brsh);
26202 			if (temp == 0) {
26203 				bcmerror = -EBADE;
26204 				break;
26205 			}
26206 		}
26207 		b /= temp;
26208 		b -= a * a;
26209 		b = (s32) int_sqrt((unsigned long) b);
26210 		b -= (1 << 10);
26211 
26212 		if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26213 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26214 				new_comp.a0 = (s16) a & 0x3ff;
26215 				new_comp.b0 = (s16) b & 0x3ff;
26216 			} else {
26217 
26218 				new_comp.a0 = (s16) b & 0x3ff;
26219 				new_comp.b0 = (s16) a & 0x3ff;
26220 			}
26221 		}
26222 		if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26223 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26224 				new_comp.a1 = (s16) a & 0x3ff;
26225 				new_comp.b1 = (s16) b & 0x3ff;
26226 			} else {
26227 
26228 				new_comp.a1 = (s16) b & 0x3ff;
26229 				new_comp.b1 = (s16) a & 0x3ff;
26230 			}
26231 		}
26232 	}
26233 
26234 	if (bcmerror != 0) {
26235 		pr_debug("%s: Failed, cnt = %d\n", __func__, cal_retry);
26236 
26237 		if (cal_retry < CAL_RETRY_CNT) {
26238 			cal_retry++;
26239 			goto cal_try;
26240 		}
26241 
26242 		new_comp = old_comp;
26243 	}
26244 
26245 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26246 }
26247 
26248 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26249 {
26250 	u16 offtune_val;
26251 	u16 bias_g = 0;
26252 	u16 bias_a = 0;
26253 
26254 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26255 		if (rx_core == PHY_CORE_0) {
26256 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26257 				pi->tx_rx_cal_radio_saveregs[0] =
26258 					read_radio_reg(pi,
26259 					    RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
26260 				pi->tx_rx_cal_radio_saveregs[1] =
26261 					read_radio_reg(pi,
26262 					    RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
26263 
26264 				write_radio_reg(pi,
26265 					RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26266 					0x3);
26267 				write_radio_reg(pi,
26268 					RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26269 					0xaf);
26270 
26271 			} else {
26272 				pi->tx_rx_cal_radio_saveregs[0] =
26273 					read_radio_reg(pi,
26274 					    RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
26275 				pi->tx_rx_cal_radio_saveregs[1] =
26276 					read_radio_reg(pi,
26277 					    RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
26278 
26279 				write_radio_reg(
26280 					pi,
26281 					RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26282 					0x3);
26283 				write_radio_reg(
26284 					pi,
26285 					RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26286 					0x7f);
26287 			}
26288 
26289 		} else {
26290 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26291 				pi->tx_rx_cal_radio_saveregs[0] =
26292 					read_radio_reg(pi,
26293 					    RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
26294 				pi->tx_rx_cal_radio_saveregs[1] =
26295 					read_radio_reg(pi,
26296 					    RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
26297 
26298 				write_radio_reg(
26299 					pi,
26300 					RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26301 					0x3);
26302 				write_radio_reg(
26303 					pi,
26304 					RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26305 					0xaf);
26306 
26307 			} else {
26308 				pi->tx_rx_cal_radio_saveregs[0] =
26309 					read_radio_reg(pi,
26310 					    RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
26311 				pi->tx_rx_cal_radio_saveregs[1] =
26312 					read_radio_reg(pi,
26313 					    RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
26314 
26315 				write_radio_reg(pi,
26316 					RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26317 					0x3);
26318 				write_radio_reg(pi,
26319 					RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26320 					0x7f);
26321 			}
26322 		}
26323 
26324 	} else {
26325 		if (rx_core == PHY_CORE_0) {
26326 			pi->tx_rx_cal_radio_saveregs[0] =
26327 				read_radio_reg(pi,
26328 					       RADIO_2056_TX_RXIQCAL_TXMUX |
26329 					       RADIO_2056_TX1);
26330 			pi->tx_rx_cal_radio_saveregs[1] =
26331 				read_radio_reg(pi,
26332 					       RADIO_2056_RX_RXIQCAL_RXMUX |
26333 					       RADIO_2056_RX0);
26334 
26335 			if (pi->pubpi.radiorev >= 5) {
26336 				pi->tx_rx_cal_radio_saveregs[2] =
26337 					read_radio_reg(pi,
26338 						       RADIO_2056_RX_RXSPARE2 |
26339 						       RADIO_2056_RX0);
26340 				pi->tx_rx_cal_radio_saveregs[3] =
26341 					read_radio_reg(pi,
26342 						       RADIO_2056_TX_TXSPARE2 |
26343 						       RADIO_2056_TX1);
26344 			}
26345 
26346 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26347 
26348 				if (pi->pubpi.radiorev >= 5) {
26349 					pi->tx_rx_cal_radio_saveregs[4] =
26350 						read_radio_reg(pi,
26351 						      RADIO_2056_RX_LNAA_MASTER
26352 						      | RADIO_2056_RX0);
26353 
26354 					write_radio_reg(
26355 						pi,
26356 						RADIO_2056_RX_LNAA_MASTER
26357 						| RADIO_2056_RX0, 0x40);
26358 
26359 					write_radio_reg(pi,
26360 						RADIO_2056_TX_TXSPARE2 |
26361 						RADIO_2056_TX1, bias_a);
26362 
26363 					write_radio_reg(pi,
26364 						RADIO_2056_RX_RXSPARE2 |
26365 						RADIO_2056_RX0, bias_a);
26366 				} else {
26367 					pi->tx_rx_cal_radio_saveregs[4] =
26368 						read_radio_reg(pi,
26369 							RADIO_2056_RX_LNAA_TUNE
26370 							| RADIO_2056_RX0);
26371 
26372 					offtune_val =
26373 						(pi->tx_rx_cal_radio_saveregs
26374 						 [2] & 0xF0) >> 8;
26375 					offtune_val =
26376 						(offtune_val <= 0x7) ? 0xF : 0;
26377 
26378 					mod_radio_reg(pi,
26379 						      RADIO_2056_RX_LNAA_TUNE |
26380 						      RADIO_2056_RX0, 0xF0,
26381 						      (offtune_val << 8));
26382 				}
26383 
26384 				write_radio_reg(pi,
26385 						RADIO_2056_TX_RXIQCAL_TXMUX |
26386 						RADIO_2056_TX1, 0x9);
26387 				write_radio_reg(pi,
26388 						RADIO_2056_RX_RXIQCAL_RXMUX |
26389 						RADIO_2056_RX0, 0x9);
26390 			} else {
26391 				if (pi->pubpi.radiorev >= 5) {
26392 					pi->tx_rx_cal_radio_saveregs[4] =
26393 						read_radio_reg(
26394 						      pi,
26395 						      RADIO_2056_RX_LNAG_MASTER
26396 						    | RADIO_2056_RX0);
26397 
26398 					write_radio_reg(
26399 						pi,
26400 						RADIO_2056_RX_LNAG_MASTER
26401 						| RADIO_2056_RX0, 0x40);
26402 
26403 					write_radio_reg(
26404 						pi,
26405 						RADIO_2056_TX_TXSPARE2
26406 						|
26407 						RADIO_2056_TX1, bias_g);
26408 
26409 					write_radio_reg(
26410 						pi,
26411 						RADIO_2056_RX_RXSPARE2
26412 						|
26413 						RADIO_2056_RX0, bias_g);
26414 
26415 				} else {
26416 					pi->tx_rx_cal_radio_saveregs[4] =
26417 						read_radio_reg(
26418 							pi,
26419 							RADIO_2056_RX_LNAG_TUNE
26420 							| RADIO_2056_RX0);
26421 
26422 					offtune_val =
26423 						(pi->
26424 						 tx_rx_cal_radio_saveregs[2] &
26425 						 0xF0) >> 8;
26426 					offtune_val =
26427 						(offtune_val <= 0x7) ? 0xF : 0;
26428 
26429 					mod_radio_reg(pi,
26430 						      RADIO_2056_RX_LNAG_TUNE |
26431 						      RADIO_2056_RX0, 0xF0,
26432 						      (offtune_val << 8));
26433 				}
26434 
26435 				write_radio_reg(pi,
26436 						RADIO_2056_TX_RXIQCAL_TXMUX |
26437 						RADIO_2056_TX1, 0x6);
26438 				write_radio_reg(pi,
26439 						RADIO_2056_RX_RXIQCAL_RXMUX |
26440 						RADIO_2056_RX0, 0x6);
26441 			}
26442 
26443 		} else {
26444 			pi->tx_rx_cal_radio_saveregs[0] =
26445 				read_radio_reg(pi,
26446 					       RADIO_2056_TX_RXIQCAL_TXMUX |
26447 					       RADIO_2056_TX0);
26448 			pi->tx_rx_cal_radio_saveregs[1] =
26449 				read_radio_reg(pi,
26450 					       RADIO_2056_RX_RXIQCAL_RXMUX |
26451 					       RADIO_2056_RX1);
26452 
26453 			if (pi->pubpi.radiorev >= 5) {
26454 				pi->tx_rx_cal_radio_saveregs[2] =
26455 					read_radio_reg(pi,
26456 						       RADIO_2056_RX_RXSPARE2 |
26457 						       RADIO_2056_RX1);
26458 				pi->tx_rx_cal_radio_saveregs[3] =
26459 					read_radio_reg(pi,
26460 						       RADIO_2056_TX_TXSPARE2 |
26461 						       RADIO_2056_TX0);
26462 			}
26463 
26464 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26465 
26466 				if (pi->pubpi.radiorev >= 5) {
26467 					pi->tx_rx_cal_radio_saveregs[4] =
26468 						read_radio_reg(
26469 						       pi,
26470 						       RADIO_2056_RX_LNAA_MASTER
26471 						       | RADIO_2056_RX1);
26472 
26473 					write_radio_reg(
26474 						pi,
26475 						RADIO_2056_RX_LNAA_MASTER |
26476 						RADIO_2056_RX1, 0x40);
26477 
26478 					write_radio_reg(
26479 						pi,
26480 						RADIO_2056_TX_TXSPARE2
26481 						|
26482 						RADIO_2056_TX0, bias_a);
26483 
26484 					write_radio_reg(
26485 						pi,
26486 						RADIO_2056_RX_RXSPARE2
26487 						|
26488 						RADIO_2056_RX1, bias_a);
26489 				} else {
26490 					pi->tx_rx_cal_radio_saveregs[4] =
26491 						read_radio_reg(
26492 							pi,
26493 							RADIO_2056_RX_LNAA_TUNE
26494 							| RADIO_2056_RX1);
26495 
26496 					offtune_val =
26497 						(pi->
26498 						 tx_rx_cal_radio_saveregs[2] &
26499 						 0xF0) >> 8;
26500 					offtune_val =
26501 						(offtune_val <= 0x7) ? 0xF : 0;
26502 
26503 					mod_radio_reg(pi,
26504 						      RADIO_2056_RX_LNAA_TUNE |
26505 						      RADIO_2056_RX1, 0xF0,
26506 						      (offtune_val << 8));
26507 				}
26508 
26509 				write_radio_reg(pi,
26510 						RADIO_2056_TX_RXIQCAL_TXMUX |
26511 						RADIO_2056_TX0, 0x9);
26512 				write_radio_reg(pi,
26513 						RADIO_2056_RX_RXIQCAL_RXMUX |
26514 						RADIO_2056_RX1, 0x9);
26515 			} else {
26516 				if (pi->pubpi.radiorev >= 5) {
26517 					pi->tx_rx_cal_radio_saveregs[4] =
26518 						read_radio_reg(
26519 						      pi,
26520 						      RADIO_2056_RX_LNAG_MASTER
26521 						    | RADIO_2056_RX1);
26522 
26523 					write_radio_reg(
26524 						pi,
26525 						RADIO_2056_RX_LNAG_MASTER
26526 						| RADIO_2056_RX1, 0x40);
26527 
26528 					write_radio_reg(
26529 						pi,
26530 						RADIO_2056_TX_TXSPARE2
26531 						|
26532 						RADIO_2056_TX0, bias_g);
26533 
26534 					write_radio_reg(
26535 						pi,
26536 						RADIO_2056_RX_RXSPARE2
26537 						|
26538 						RADIO_2056_RX1, bias_g);
26539 				} else {
26540 					pi->tx_rx_cal_radio_saveregs[4] =
26541 						read_radio_reg(
26542 							pi,
26543 							RADIO_2056_RX_LNAG_TUNE
26544 							| RADIO_2056_RX1);
26545 
26546 					offtune_val =
26547 						(pi->
26548 						 tx_rx_cal_radio_saveregs[2] &
26549 						 0xF0) >> 8;
26550 					offtune_val =
26551 						(offtune_val <= 0x7) ? 0xF : 0;
26552 
26553 					mod_radio_reg(pi,
26554 						      RADIO_2056_RX_LNAG_TUNE |
26555 						      RADIO_2056_RX1, 0xF0,
26556 						      (offtune_val << 8));
26557 				}
26558 
26559 				write_radio_reg(pi,
26560 						RADIO_2056_TX_RXIQCAL_TXMUX |
26561 						RADIO_2056_TX0, 0x6);
26562 				write_radio_reg(pi,
26563 						RADIO_2056_RX_RXIQCAL_RXMUX |
26564 						RADIO_2056_RX1, 0x6);
26565 			}
26566 		}
26567 	}
26568 }
26569 
26570 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26571 {
26572 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26573 		if (rx_core == PHY_CORE_0) {
26574 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26575 				write_radio_reg(
26576 					pi,
26577 					RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26578 					pi->
26579 					tx_rx_cal_radio_saveregs[0]);
26580 				write_radio_reg(
26581 					pi,
26582 					RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26583 					pi->
26584 					tx_rx_cal_radio_saveregs[1]);
26585 
26586 			} else {
26587 				write_radio_reg(
26588 					pi,
26589 					RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26590 					pi->
26591 					tx_rx_cal_radio_saveregs[0]);
26592 				write_radio_reg(
26593 					pi,
26594 					RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26595 					pi->
26596 					tx_rx_cal_radio_saveregs[1]);
26597 			}
26598 
26599 		} else {
26600 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26601 				write_radio_reg(
26602 					pi,
26603 					RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26604 					pi->
26605 					tx_rx_cal_radio_saveregs[0]);
26606 				write_radio_reg(
26607 					pi,
26608 					RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26609 					pi->
26610 					tx_rx_cal_radio_saveregs[1]);
26611 
26612 			} else {
26613 				write_radio_reg(
26614 					pi,
26615 					RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26616 					pi->
26617 					tx_rx_cal_radio_saveregs[0]);
26618 				write_radio_reg(
26619 					pi,
26620 					RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26621 					pi->
26622 					tx_rx_cal_radio_saveregs[1]);
26623 			}
26624 		}
26625 
26626 	} else {
26627 		if (rx_core == PHY_CORE_0) {
26628 			write_radio_reg(pi,
26629 					RADIO_2056_TX_RXIQCAL_TXMUX |
26630 					RADIO_2056_TX1,
26631 					pi->tx_rx_cal_radio_saveregs[0]);
26632 
26633 			write_radio_reg(pi,
26634 					RADIO_2056_RX_RXIQCAL_RXMUX |
26635 					RADIO_2056_RX0,
26636 					pi->tx_rx_cal_radio_saveregs[1]);
26637 
26638 			if (pi->pubpi.radiorev >= 5) {
26639 				write_radio_reg(pi,
26640 						RADIO_2056_RX_RXSPARE2 |
26641 						RADIO_2056_RX0,
26642 						pi->
26643 						tx_rx_cal_radio_saveregs[2]);
26644 
26645 				write_radio_reg(pi,
26646 						RADIO_2056_TX_TXSPARE2 |
26647 						RADIO_2056_TX1,
26648 						pi->
26649 						tx_rx_cal_radio_saveregs[3]);
26650 			}
26651 
26652 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26653 				if (pi->pubpi.radiorev >= 5)
26654 					write_radio_reg(
26655 						pi,
26656 						RADIO_2056_RX_LNAA_MASTER
26657 						| RADIO_2056_RX0,
26658 						pi->
26659 						tx_rx_cal_radio_saveregs
26660 						[4]);
26661 				else
26662 					write_radio_reg(
26663 						pi,
26664 						RADIO_2056_RX_LNAA_TUNE
26665 						| RADIO_2056_RX0,
26666 						pi->
26667 						tx_rx_cal_radio_saveregs
26668 						[4]);
26669 			} else {
26670 				if (pi->pubpi.radiorev >= 5)
26671 					write_radio_reg(
26672 						pi,
26673 						RADIO_2056_RX_LNAG_MASTER
26674 						| RADIO_2056_RX0,
26675 						pi->
26676 						tx_rx_cal_radio_saveregs
26677 						[4]);
26678 				else
26679 					write_radio_reg(
26680 						pi,
26681 						RADIO_2056_RX_LNAG_TUNE
26682 						| RADIO_2056_RX0,
26683 						pi->
26684 						tx_rx_cal_radio_saveregs
26685 						[4]);
26686 			}
26687 
26688 		} else {
26689 			write_radio_reg(pi,
26690 					RADIO_2056_TX_RXIQCAL_TXMUX |
26691 					RADIO_2056_TX0,
26692 					pi->tx_rx_cal_radio_saveregs[0]);
26693 
26694 			write_radio_reg(pi,
26695 					RADIO_2056_RX_RXIQCAL_RXMUX |
26696 					RADIO_2056_RX1,
26697 					pi->tx_rx_cal_radio_saveregs[1]);
26698 
26699 			if (pi->pubpi.radiorev >= 5) {
26700 				write_radio_reg(pi,
26701 						RADIO_2056_RX_RXSPARE2 |
26702 						RADIO_2056_RX1,
26703 						pi->
26704 						tx_rx_cal_radio_saveregs[2]);
26705 
26706 				write_radio_reg(pi,
26707 						RADIO_2056_TX_TXSPARE2 |
26708 						RADIO_2056_TX0,
26709 						pi->
26710 						tx_rx_cal_radio_saveregs[3]);
26711 			}
26712 
26713 			if (CHSPEC_IS5G(pi->radio_chanspec)) {
26714 				if (pi->pubpi.radiorev >= 5)
26715 					write_radio_reg(
26716 						pi,
26717 						RADIO_2056_RX_LNAA_MASTER
26718 						| RADIO_2056_RX1,
26719 						pi->
26720 						tx_rx_cal_radio_saveregs
26721 						[4]);
26722 				else
26723 					write_radio_reg(
26724 						pi,
26725 						RADIO_2056_RX_LNAA_TUNE
26726 						| RADIO_2056_RX1,
26727 						pi->
26728 						tx_rx_cal_radio_saveregs
26729 						[4]);
26730 			} else {
26731 				if (pi->pubpi.radiorev >= 5)
26732 					write_radio_reg(
26733 						pi,
26734 						RADIO_2056_RX_LNAG_MASTER
26735 						| RADIO_2056_RX1,
26736 						pi->
26737 						tx_rx_cal_radio_saveregs
26738 						[4]);
26739 				else
26740 					write_radio_reg(
26741 						pi,
26742 						RADIO_2056_RX_LNAG_TUNE
26743 						| RADIO_2056_RX1,
26744 						pi->
26745 						tx_rx_cal_radio_saveregs
26746 						[4]);
26747 			}
26748 		}
26749 	}
26750 }
26751 
26752 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26753 {
26754 	u8 tx_core;
26755 	u16 rx_antval, tx_antval;
26756 
26757 	if (NREV_GE(pi->pubpi.phy_rev, 7))
26758 		tx_core = rx_core;
26759 	else
26760 		tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26761 
26762 	pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26763 	pi->tx_rx_cal_phy_saveregs[1] =
26764 		read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26765 	pi->tx_rx_cal_phy_saveregs[2] =
26766 		read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
26767 	pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
26768 	pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
26769 	pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
26770 	pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
26771 	pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
26772 	pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
26773 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26774 		pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
26775 		pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
26776 		pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
26777 		pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
26778 	}
26779 
26780 	pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
26781 	pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
26782 	mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
26783 		    0x29b, (0x1 << 0), (0) << 0);
26784 
26785 	mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
26786 		    0x29b, (0x1 << 0), (0) << 0);
26787 
26788 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26789 
26790 		mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26791 
26792 		mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
26793 
26794 	} else {
26795 
26796 		mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
26797 		mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26798 		mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
26799 		mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
26800 	}
26801 
26802 	mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
26803 	mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
26804 		    (0x1 << 2), (0x1 << 2));
26805 	if (NREV_LT(pi->pubpi.phy_rev, 7)) {
26806 		mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
26807 			    (0x1 << 0) | (0x1 << 1), 0);
26808 		mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
26809 			    0x8f : 0xa5,
26810 			    (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
26811 	}
26812 
26813 	wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
26814 					 RADIO_MIMO_CORESEL_CORE1 |
26815 					 RADIO_MIMO_CORESEL_CORE2);
26816 
26817 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26818 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26819 						  0, 0, 0,
26820 						  NPHY_REV7_RFCTRLOVERRIDE_ID0);
26821 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
26822 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26823 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
26824 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26825 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
26826 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26827 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
26828 						  NPHY_REV7_RFCTRLOVERRIDE_ID2);
26829 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
26830 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26831 		if (CHSPEC_IS40(pi->radio_chanspec))
26832 			wlc_phy_rfctrl_override_nphy_rev7(
26833 				pi,
26834 				(0x1 << 7),
26835 				2, 0, 0,
26836 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
26837 		else
26838 			wlc_phy_rfctrl_override_nphy_rev7(
26839 				pi,
26840 				(0x1 << 7),
26841 				0, 0, 0,
26842 				NPHY_REV7_RFCTRLOVERRIDE_ID1);
26843 
26844 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26845 						  0, 0, 0,
26846 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26847 		wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
26848 						  NPHY_REV7_RFCTRLOVERRIDE_ID1);
26849 	} else {
26850 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
26851 	}
26852 
26853 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
26854 
26855 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26856 
26857 		wlc_phy_rfctrlintc_override_nphy(pi,
26858 						 NPHY_RfctrlIntc_override_TRSW,
26859 						 0x1, rx_core + 1);
26860 	} else {
26861 
26862 		if (rx_core == PHY_CORE_0) {
26863 			rx_antval = 0x1;
26864 			tx_antval = 0x8;
26865 		} else {
26866 			rx_antval = 0x4;
26867 			tx_antval = 0x2;
26868 		}
26869 
26870 		wlc_phy_rfctrlintc_override_nphy(pi,
26871 						 NPHY_RfctrlIntc_override_TRSW,
26872 						 rx_antval, rx_core + 1);
26873 		wlc_phy_rfctrlintc_override_nphy(pi,
26874 						 NPHY_RfctrlIntc_override_TRSW,
26875 						 tx_antval, tx_core + 1);
26876 	}
26877 }
26878 
26879 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26880 {
26881 
26882 	write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
26883 	write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
26884 		      pi->tx_rx_cal_phy_saveregs[1]);
26885 	write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
26886 		      pi->tx_rx_cal_phy_saveregs[2]);
26887 	write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
26888 	write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
26889 
26890 	write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
26891 	write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
26892 	write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
26893 	write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
26894 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26895 		write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
26896 		write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
26897 		write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
26898 		write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
26899 	}
26900 
26901 	write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
26902 	write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
26903 }
26904 
26905 static void
26906 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
26907 				 u16 *rxgain, u8 cal_type)
26908 {
26909 
26910 	u16 num_samps;
26911 	struct phy_iq_est est[PHY_CORE_MAX];
26912 	u8 tx_core;
26913 	struct nphy_iq_comp save_comp, zero_comp;
26914 	u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
26915 	    thresh_pwr = 10000;
26916 	s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
26917 	bool gainctrl_done = false;
26918 	u8 mix_tia_gain = 3;
26919 	s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
26920 	s8 curr_gaintbl_index = 3;
26921 	u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
26922 	const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
26923 	u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
26924 	int fine_gain_idx;
26925 	s8 txpwrindex;
26926 	u16 nphy_rxcal_txgain[2];
26927 
26928 	if (NREV_GE(pi->pubpi.phy_rev, 7))
26929 		tx_core = rx_core;
26930 	else
26931 		tx_core = 1 - rx_core;
26932 
26933 	num_samps = 1024;
26934 	desired_log2_pwr = 13;
26935 
26936 	wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
26937 	zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
26938 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
26939 
26940 	if (CHSPEC_IS5G(pi->radio_chanspec)) {
26941 		if (NREV_GE(pi->pubpi.phy_rev, 7))
26942 			mix_tia_gain = 3;
26943 		else if (NREV_GE(pi->pubpi.phy_rev, 4))
26944 			mix_tia_gain = 4;
26945 		else
26946 			mix_tia_gain = 6;
26947 		if (NREV_GE(pi->pubpi.phy_rev, 7))
26948 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
26949 		else
26950 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
26951 	} else {
26952 		if (NREV_GE(pi->pubpi.phy_rev, 7))
26953 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
26954 		else
26955 			nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
26956 	}
26957 
26958 	do {
26959 
26960 		hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
26961 			0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
26962 		lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
26963 		lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
26964 		lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
26965 		lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
26966 		txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
26967 
26968 		if (NREV_GE(pi->pubpi.phy_rev, 7))
26969 			wlc_phy_rfctrl_override_1tomany_nphy(
26970 				pi,
26971 				NPHY_REV7_RfctrlOverride_cmd_rxgain,
26972 				((lpf_biq1 << 12) |
26973 				 (lpf_biq0 << 8) |
26974 				 (mix_tia_gain << 4) | (lna2 << 2)
26975 				 | lna1), 0x3, 0);
26976 		else
26977 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
26978 						     ((hpvga << 12) |
26979 						      (lpf_biq1 << 10) |
26980 						      (lpf_biq0 << 8) |
26981 						      (mix_tia_gain << 4) |
26982 						      (lna2 << 2) | lna1), 0x3,
26983 						     0);
26984 
26985 		pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
26986 
26987 		if (txpwrindex == -1) {
26988 			nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
26989 			nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
26990 			wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
26991 						 2, 0x110, 16,
26992 						 nphy_rxcal_txgain);
26993 		} else {
26994 			wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
26995 						 false);
26996 		}
26997 
26998 		wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
26999 				     NPHY_RXCAL_TONEFREQ_40MHz :
27000 				     NPHY_RXCAL_TONEFREQ_20MHz,
27001 				     NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27002 
27003 		wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27004 		i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27005 		q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27006 		curr_pwr = i_pwr + q_pwr;
27007 
27008 		switch (gainctrl_dirn) {
27009 		case NPHY_RXCAL_GAIN_INIT:
27010 			if (curr_pwr > thresh_pwr) {
27011 				gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27012 				prev_gaintbl_index = curr_gaintbl_index;
27013 				curr_gaintbl_index--;
27014 			} else {
27015 				gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27016 				prev_gaintbl_index = curr_gaintbl_index;
27017 				curr_gaintbl_index++;
27018 			}
27019 			break;
27020 
27021 		case NPHY_RXCAL_GAIN_UP:
27022 			if (curr_pwr > thresh_pwr) {
27023 				gainctrl_done = true;
27024 				optim_pwr = prev_pwr;
27025 				optim_gaintbl_index = prev_gaintbl_index;
27026 			} else {
27027 				prev_gaintbl_index = curr_gaintbl_index;
27028 				curr_gaintbl_index++;
27029 			}
27030 			break;
27031 
27032 		case NPHY_RXCAL_GAIN_DOWN:
27033 			if (curr_pwr > thresh_pwr) {
27034 				prev_gaintbl_index = curr_gaintbl_index;
27035 				curr_gaintbl_index--;
27036 			} else {
27037 				gainctrl_done = true;
27038 				optim_pwr = curr_pwr;
27039 				optim_gaintbl_index = curr_gaintbl_index;
27040 			}
27041 			break;
27042 
27043 		default:
27044 			break;
27045 		}
27046 
27047 		if ((curr_gaintbl_index < 0) ||
27048 		    (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27049 			gainctrl_done = true;
27050 			optim_pwr = curr_pwr;
27051 			optim_gaintbl_index = prev_gaintbl_index;
27052 		} else {
27053 			prev_pwr = curr_pwr;
27054 		}
27055 
27056 		wlc_phy_stopplayback_nphy(pi);
27057 	} while (!gainctrl_done);
27058 
27059 	hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27060 	lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27061 	lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27062 	lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27063 	lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27064 	txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27065 
27066 	actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27067 	delta_pwr = desired_log2_pwr - actual_log2_pwr;
27068 
27069 	if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27070 		fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27071 
27072 		if (fine_gain_idx + (int)lpf_biq0 > 10)
27073 			lpf_biq1 = 10 - lpf_biq0;
27074 		else
27075 			lpf_biq1 = (u16) max(fine_gain_idx, 0);
27076 
27077 		wlc_phy_rfctrl_override_1tomany_nphy(
27078 			pi,
27079 			NPHY_REV7_RfctrlOverride_cmd_rxgain,
27080 			((lpf_biq1 << 12) |
27081 			 (lpf_biq0 << 8) |
27082 			 (mix_tia_gain << 4) |
27083 			 (lna2 << 2) | lna1), 0x3,
27084 			0);
27085 	} else {
27086 		hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27087 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27088 					     ((hpvga << 12) |
27089 					      (lpf_biq1 << 10) |
27090 					      (lpf_biq0 << 8) |
27091 					      (mix_tia_gain << 4) |
27092 					      (lna2 << 2) |
27093 					      lna1), 0x3, 0);
27094 	}
27095 
27096 	if (rxgain != NULL) {
27097 		*rxgain++ = lna1;
27098 		*rxgain++ = lna2;
27099 		*rxgain++ = mix_tia_gain;
27100 		*rxgain++ = lpf_biq0;
27101 		*rxgain++ = lpf_biq1;
27102 		*rxgain = hpvga;
27103 	}
27104 
27105 	wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27106 }
27107 
27108 static void
27109 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27110 			    u8 cal_type)
27111 {
27112 	wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27113 }
27114 
27115 static u8
27116 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27117 {
27118 	u32 target_bws[2] = { 9500, 21000 };
27119 	u32 ref_tones[2] = { 3000, 6000 };
27120 	u32 target_bw, ref_tone;
27121 
27122 	u32 target_pwr_ratios[2] = { 28606, 18468 };
27123 	u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27124 
27125 	u16 start_rccal_ovr_val = 128;
27126 	u16 txlpf_rccal_lpc_ovr_val = 128;
27127 	u16 rxlpf_rccal_hpc_ovr_val = 159;
27128 
27129 	u16 orig_txlpf_rccal_lpc_ovr_val;
27130 	u16 orig_rxlpf_rccal_hpc_ovr_val;
27131 	u16 radio_addr_offset_rx;
27132 	u16 radio_addr_offset_tx;
27133 	u16 orig_dcBypass;
27134 	u16 orig_RxStrnFilt40Num[6];
27135 	u16 orig_RxStrnFilt40Den[4];
27136 	u16 orig_rfctrloverride[2];
27137 	u16 orig_rfctrlauxreg[2];
27138 	u16 orig_rfctrlrssiothers;
27139 	u16 tx_lpf_bw = 4;
27140 
27141 	u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27142 	u16 lpf_hpc = 7, hpvga_hpc = 7;
27143 
27144 	s8 rccal_stepsize;
27145 	u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27146 	u32 ref_iq_vals = 0, target_iq_vals = 0;
27147 	u16 num_samps, log_num_samps = 10;
27148 	struct phy_iq_est est[PHY_CORE_MAX];
27149 
27150 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27151 		return 0;
27152 
27153 	num_samps = (1 << log_num_samps);
27154 
27155 	if (CHSPEC_IS40(pi->radio_chanspec)) {
27156 		target_bw = target_bws[1];
27157 		target_pwr_ratio = target_pwr_ratios[1];
27158 		ref_tone = ref_tones[1];
27159 		rx_lpf_bw = rx_lpf_bws[1];
27160 	} else {
27161 		target_bw = target_bws[0];
27162 		target_pwr_ratio = target_pwr_ratios[0];
27163 		ref_tone = ref_tones[0];
27164 		rx_lpf_bw = rx_lpf_bws[0];
27165 	}
27166 
27167 	if (core_idx == 0) {
27168 		radio_addr_offset_rx = RADIO_2056_RX0;
27169 		radio_addr_offset_tx =
27170 			(loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27171 	} else {
27172 		radio_addr_offset_rx = RADIO_2056_RX1;
27173 		radio_addr_offset_tx =
27174 			(loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27175 	}
27176 
27177 	orig_txlpf_rccal_lpc_ovr_val =
27178 		read_radio_reg(pi,
27179 			       (RADIO_2056_TX_TXLPF_RCCAL |
27180 				radio_addr_offset_tx));
27181 	orig_rxlpf_rccal_hpc_ovr_val =
27182 		read_radio_reg(pi,
27183 			       (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27184 				radio_addr_offset_rx));
27185 
27186 	orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27187 
27188 	orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27189 	orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27190 	orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27191 	orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27192 	orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27193 	orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27194 	orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27195 	orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27196 	orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27197 	orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27198 
27199 	orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27200 	orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27201 	orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27202 	orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27203 	orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27204 
27205 	write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27206 			txlpf_rccal_lpc_ovr_val);
27207 
27208 	write_radio_reg(pi,
27209 			(RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27210 			rxlpf_rccal_hpc_ovr_val);
27211 
27212 	mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27213 
27214 	write_phy_reg(pi, 0x267, 0x02d4);
27215 	write_phy_reg(pi, 0x268, 0x0000);
27216 	write_phy_reg(pi, 0x269, 0x0000);
27217 	write_phy_reg(pi, 0x26a, 0x0000);
27218 	write_phy_reg(pi, 0x26b, 0x0000);
27219 	write_phy_reg(pi, 0x26c, 0x02d4);
27220 	write_phy_reg(pi, 0x26d, 0x0000);
27221 	write_phy_reg(pi, 0x26e, 0x0000);
27222 	write_phy_reg(pi, 0x26f, 0x0000);
27223 	write_phy_reg(pi, 0x270, 0x0000);
27224 
27225 	or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27226 	or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27227 	or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27228 	or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27229 
27230 	mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27231 		    (0x7 << 10), (tx_lpf_bw << 10));
27232 	mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27233 		    (0x7 << 0), (hpvga_hpc << 0));
27234 	mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27235 		    (0x7 << 4), (lpf_hpc << 4));
27236 	mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27237 		    (0x7 << 8), (rx_lpf_bw << 8));
27238 
27239 	rccal_stepsize = 16;
27240 	rccal_val = start_rccal_ovr_val + rccal_stepsize;
27241 
27242 	while (rccal_stepsize >= 0) {
27243 		write_radio_reg(pi,
27244 				(RADIO_2056_RX_RXLPF_RCCAL_LPC |
27245 				 radio_addr_offset_rx), rccal_val);
27246 
27247 		if (rccal_stepsize == 16) {
27248 
27249 			wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
27250 					     0, 1, false);
27251 			udelay(2);
27252 
27253 			wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27254 
27255 			if (core_idx == 0)
27256 				ref_iq_vals =
27257 					max_t(u32, (est[0].i_pwr +
27258 						    est[0].q_pwr) >>
27259 					      (log_num_samps + 1),
27260 					      1);
27261 			else
27262 				ref_iq_vals =
27263 					max_t(u32, (est[1].i_pwr +
27264 						    est[1].q_pwr) >>
27265 					      (log_num_samps + 1),
27266 					      1);
27267 
27268 			wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
27269 					     0, 1, false);
27270 			udelay(2);
27271 		}
27272 
27273 		wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27274 
27275 		if (core_idx == 0)
27276 			target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27277 					 (log_num_samps + 1);
27278 		else
27279 			target_iq_vals =
27280 				(est[1].i_pwr +
27281 				 est[1].q_pwr) >> (log_num_samps + 1);
27282 
27283 		pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27284 
27285 		if (rccal_stepsize == 0)
27286 			rccal_stepsize--;
27287 		else if (rccal_stepsize == 1) {
27288 			last_rccal_val = rccal_val;
27289 			rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27290 			last_pwr_ratio = pwr_ratio;
27291 			rccal_stepsize--;
27292 		} else {
27293 			rccal_stepsize = (rccal_stepsize >> 1);
27294 			rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27295 				      rccal_stepsize : (-rccal_stepsize));
27296 		}
27297 
27298 		if (rccal_stepsize == -1) {
27299 			best_rccal_val =
27300 				(abs((int)last_pwr_ratio -
27301 				     (int)target_pwr_ratio) <
27302 				 abs((int)pwr_ratio -
27303 				     (int)target_pwr_ratio)) ? last_rccal_val :
27304 				rccal_val;
27305 
27306 			if (CHSPEC_IS40(pi->radio_chanspec)) {
27307 				if ((best_rccal_val > 140)
27308 				    || (best_rccal_val < 135))
27309 					best_rccal_val = 138;
27310 			} else {
27311 				if ((best_rccal_val > 142)
27312 				    || (best_rccal_val < 137))
27313 					best_rccal_val = 140;
27314 			}
27315 
27316 			write_radio_reg(pi,
27317 					(RADIO_2056_RX_RXLPF_RCCAL_LPC |
27318 					 radio_addr_offset_rx), best_rccal_val);
27319 		}
27320 	}
27321 
27322 	wlc_phy_stopplayback_nphy(pi);
27323 
27324 	write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27325 			orig_txlpf_rccal_lpc_ovr_val);
27326 	write_radio_reg(pi,
27327 			(RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27328 			orig_rxlpf_rccal_hpc_ovr_val);
27329 
27330 	mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27331 
27332 	write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27333 	write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27334 	write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27335 	write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27336 	write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27337 	write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27338 	write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27339 	write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27340 	write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27341 	write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27342 
27343 	write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27344 	write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27345 	write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27346 	write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27347 	write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27348 
27349 	pi->nphy_anarxlpf_adjusted = false;
27350 
27351 	return best_rccal_val - 0x80;
27352 }
27353 
27354 #define WAIT_FOR_SCOPE  4000
27355 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27356 				      struct nphy_txgains target_gain,
27357 				      u8 cal_type, bool debug)
27358 {
27359 	u16 orig_BBConfig;
27360 	u8 core_no, rx_core;
27361 	u8 best_rccal[2];
27362 	u16 gain_save[2];
27363 	u16 cal_gain[2];
27364 	struct nphy_iqcal_params cal_params[2];
27365 	u8 rxcore_state;
27366 	s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27367 	s8 txlpf_idac;
27368 	bool phyhang_avoid_state = false;
27369 	bool skip_rxiqcal = false;
27370 
27371 	orig_BBConfig = read_phy_reg(pi, 0x01);
27372 	mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27373 
27374 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
27375 
27376 	if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27377 		phyhang_avoid_state = pi->phyhang_avoid;
27378 		pi->phyhang_avoid = false;
27379 	}
27380 
27381 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27382 
27383 	for (core_no = 0; core_no <= 1; core_no++) {
27384 		wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27385 					      &cal_params[core_no]);
27386 		cal_gain[core_no] = cal_params[core_no].cal_gain;
27387 	}
27388 
27389 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27390 
27391 	rxcore_state = wlc_phy_rxcore_getstate_nphy(
27392 		(struct brcms_phy_pub *) pi);
27393 
27394 	for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27395 
27396 		skip_rxiqcal =
27397 			((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27398 
27399 		wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27400 
27401 		wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27402 
27403 		if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27404 
27405 			wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27406 
27407 			wlc_phy_tx_tone_nphy(pi,
27408 					     (CHSPEC_IS40(
27409 						      pi->radio_chanspec)) ?
27410 					     NPHY_RXCAL_TONEFREQ_40MHz :
27411 					     NPHY_RXCAL_TONEFREQ_20MHz,
27412 					     NPHY_RXCAL_TONEAMP, 0, cal_type,
27413 					     false);
27414 
27415 			if (debug)
27416 				mdelay(WAIT_FOR_SCOPE);
27417 
27418 			wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27419 			wlc_phy_stopplayback_nphy(pi);
27420 		}
27421 
27422 		if (((cal_type == 1) || (cal_type == 2))
27423 		    && NREV_LT(pi->pubpi.phy_rev, 7)) {
27424 
27425 			if (rx_core == PHY_CORE_1) {
27426 
27427 				if (rxcore_state == 1)
27428 					wlc_phy_rxcore_setstate_nphy(
27429 						(struct brcms_phy_pub *) pi, 3);
27430 
27431 				wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27432 							    1);
27433 
27434 				best_rccal[rx_core] =
27435 					wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27436 				pi->nphy_rccal_value = best_rccal[rx_core];
27437 
27438 				if (rxcore_state == 1)
27439 					wlc_phy_rxcore_setstate_nphy(
27440 						(struct brcms_phy_pub *) pi,
27441 						rxcore_state);
27442 			}
27443 		}
27444 
27445 		wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27446 
27447 		wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27448 		wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27449 	}
27450 
27451 	if ((cal_type == 1) || (cal_type == 2)) {
27452 
27453 		best_rccal[0] = best_rccal[1];
27454 		write_radio_reg(pi,
27455 				(RADIO_2056_RX_RXLPF_RCCAL_LPC |
27456 				 RADIO_2056_RX0), (best_rccal[0] | 0x80));
27457 
27458 		for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27459 			rxlpf_rccal_hpc =
27460 				(((int)best_rccal[rx_core] - 12) >> 1) + 10;
27461 			txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27462 
27463 			if (PHY_IPA(pi)) {
27464 				txlpf_rccal_lpc +=
27465 					(pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27466 				txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27467 					     0x0e : 0x13;
27468 				WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27469 						 TXLPF_IDAC_4, txlpf_idac);
27470 			}
27471 
27472 			rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27473 					      0);
27474 			txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27475 					      0);
27476 
27477 			write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27478 					     ((rx_core ==
27479 					       PHY_CORE_0) ? RADIO_2056_RX0 :
27480 					      RADIO_2056_RX1)),
27481 					(rxlpf_rccal_hpc | 0x80));
27482 
27483 			write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
27484 					     ((rx_core ==
27485 					       PHY_CORE_0) ? RADIO_2056_TX0 :
27486 					      RADIO_2056_TX1)),
27487 					(txlpf_rccal_lpc | 0x80));
27488 		}
27489 	}
27490 
27491 	write_phy_reg(pi, 0x01, orig_BBConfig);
27492 
27493 	wlc_phy_resetcca_nphy(pi);
27494 
27495 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27496 		wlc_phy_rfctrl_override_1tomany_nphy(
27497 			pi,
27498 			NPHY_REV7_RfctrlOverride_cmd_rxgain,
27499 			0, 0x3, 1);
27500 	else
27501 		wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27502 
27503 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27504 
27505 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27506 				 gain_save);
27507 
27508 	if (NREV_GE(pi->pubpi.phy_rev, 4))
27509 		pi->phyhang_avoid = phyhang_avoid_state;
27510 
27511 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
27512 
27513 	return 0;
27514 }
27515 
27516 static int
27517 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27518 			   struct nphy_txgains target_gain, bool debug)
27519 {
27520 	struct phy_iq_est est[PHY_CORE_MAX];
27521 	u8 core_num, rx_core, tx_core;
27522 	u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27523 	u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27524 	u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27525 	s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27526 	s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27527 	u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27528 	u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27529 	u16 num_samps;
27530 	u32 i_pwr, q_pwr, tot_pwr[3];
27531 	u8 gain_pass, use_hpf_num;
27532 	u16 mask, val1, val2;
27533 	u16 core_no;
27534 	u16 gain_save[2];
27535 	u16 cal_gain[2];
27536 	struct nphy_iqcal_params cal_params[2];
27537 	u8 phy_bw;
27538 	int bcmerror = 0;
27539 	bool first_playtone = true;
27540 
27541 	wlc_phy_stay_in_carriersearch_nphy(pi, true);
27542 
27543 	if (NREV_LT(pi->pubpi.phy_rev, 2))
27544 		wlc_phy_reapply_txcal_coeffs_nphy(pi);
27545 
27546 	wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27547 
27548 	for (core_no = 0; core_no <= 1; core_no++) {
27549 		wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27550 					      &cal_params[core_no]);
27551 		cal_gain[core_no] = cal_params[core_no].cal_gain;
27552 	}
27553 
27554 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27555 
27556 	num_samps = 1024;
27557 	desired_log2_pwr = 13;
27558 
27559 	for (core_num = 0; core_num < 2; core_num++) {
27560 
27561 		rx_core = core_num;
27562 		tx_core = 1 - core_num;
27563 
27564 		orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27565 		orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27566 						0xa6 : 0xa7);
27567 		orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27568 		orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27569 						 0x91 : 0x92);
27570 		orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27571 						 0x91 : 0x92);
27572 
27573 		mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27574 		mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27575 
27576 		or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27577 			   ((0x1 << 1) | (0x1 << 2)));
27578 		or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27579 
27580 		if (((pi->nphy_rxcalparams) & 0xff000000))
27581 			write_phy_reg(pi,
27582 				      (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27583 				      (CHSPEC_IS5G(pi->radio_chanspec) ?
27584 					0x140 : 0x110));
27585 		else
27586 			write_phy_reg(pi,
27587 				      (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27588 				      (CHSPEC_IS5G(pi->radio_chanspec) ?
27589 				       0x180 : 0x120));
27590 
27591 		write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27592 			      (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27593 			       0x114));
27594 
27595 		mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
27596 		if (rx_core == PHY_CORE_0) {
27597 			val1 = RADIO_2055_COUPLE_RX_MASK;
27598 			val2 = RADIO_2055_COUPLE_TX_MASK;
27599 		} else {
27600 			val1 = RADIO_2055_COUPLE_TX_MASK;
27601 			val2 = RADIO_2055_COUPLE_RX_MASK;
27602 		}
27603 
27604 		if ((pi->nphy_rxcalparams & 0x10000)) {
27605 			mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
27606 				      val1);
27607 			mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
27608 				      val2);
27609 		}
27610 
27611 		for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27612 
27613 			if (debug)
27614 				mdelay(WAIT_FOR_SCOPE);
27615 
27616 			if (gain_pass < 3) {
27617 				curr_lna = lna_vals[gain_pass];
27618 				curr_hpf1 = hpf1_vals[gain_pass];
27619 				curr_hpf2 = hpf2_vals[gain_pass];
27620 			} else {
27621 
27622 				if (tot_pwr[1] > 10000) {
27623 					curr_lna = lna_vals[2];
27624 					curr_hpf1 = hpf1_vals[2];
27625 					curr_hpf2 = hpf2_vals[2];
27626 					use_hpf_num = 1;
27627 					curr_hpf = curr_hpf1;
27628 					actual_log2_pwr =
27629 						wlc_phy_nbits(tot_pwr[2]);
27630 				} else {
27631 					if (tot_pwr[0] > 10000) {
27632 						curr_lna = lna_vals[1];
27633 						curr_hpf1 = hpf1_vals[1];
27634 						curr_hpf2 = hpf2_vals[1];
27635 						use_hpf_num = 1;
27636 						curr_hpf = curr_hpf1;
27637 						actual_log2_pwr =
27638 							wlc_phy_nbits(
27639 								tot_pwr[1]);
27640 					} else {
27641 						curr_lna = lna_vals[0];
27642 						curr_hpf1 = hpf1_vals[0];
27643 						curr_hpf2 = hpf2_vals[0];
27644 						use_hpf_num = 2;
27645 						curr_hpf = curr_hpf2;
27646 						actual_log2_pwr =
27647 							wlc_phy_nbits(
27648 								tot_pwr[0]);
27649 					}
27650 				}
27651 
27652 				hpf_change = desired_log2_pwr - actual_log2_pwr;
27653 				curr_hpf += hpf_change;
27654 				curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27655 				if (use_hpf_num == 1)
27656 					curr_hpf1 = curr_hpf;
27657 				else
27658 					curr_hpf2 = curr_hpf;
27659 			}
27660 
27661 			wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27662 						     ((curr_hpf2 << 8) |
27663 						      (curr_hpf1 << 4) |
27664 						      (curr_lna << 2)), 0x3, 0);
27665 			wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27666 
27667 			wlc_phy_stopplayback_nphy(pi);
27668 
27669 			if (first_playtone) {
27670 				bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27671 						(u16) (pi->nphy_rxcalparams &
27672 						       0xffff), 0, 0, true);
27673 				first_playtone = false;
27674 			} else {
27675 				phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27676 					  40 : 20;
27677 				wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27678 							0, 0, 0, true);
27679 			}
27680 
27681 			if (bcmerror == 0) {
27682 				if (gain_pass < 3) {
27683 
27684 					wlc_phy_rx_iq_est_nphy(pi, est,
27685 							       num_samps, 32,
27686 							       0);
27687 					i_pwr =	(est[rx_core].i_pwr +
27688 						 num_samps / 2) / num_samps;
27689 					q_pwr =	(est[rx_core].q_pwr +
27690 						 num_samps / 2) / num_samps;
27691 					tot_pwr[gain_pass] = i_pwr + q_pwr;
27692 				} else {
27693 
27694 					wlc_phy_calc_rx_iq_comp_nphy(pi,
27695 								     (1 <<
27696 								      rx_core));
27697 				}
27698 
27699 				wlc_phy_stopplayback_nphy(pi);
27700 			}
27701 
27702 			if (bcmerror != 0)
27703 				break;
27704 		}
27705 
27706 		and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
27707 		and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
27708 
27709 		write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27710 			      0x92, orig_RfctrlIntcTx);
27711 		write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27712 			      0x92, orig_RfctrlIntcRx);
27713 		write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27714 		write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27715 			      0xa7, orig_AfectrlCore);
27716 		write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27717 
27718 		if (bcmerror != 0)
27719 			break;
27720 	}
27721 
27722 	wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27723 	wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27724 
27725 	wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27726 				 gain_save);
27727 
27728 	wlc_phy_stay_in_carriersearch_nphy(pi, false);
27729 
27730 	return bcmerror;
27731 }
27732 
27733 int
27734 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27735 		      u8 cal_type, bool debug)
27736 {
27737 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27738 		cal_type = 0;
27739 
27740 	if (NREV_GE(pi->pubpi.phy_rev, 3))
27741 		return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27742 						  debug);
27743 	else
27744 		return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27745 }
27746 
27747 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27748 {
27749 	uint core;
27750 	u32 txgain;
27751 	u16 rad_gain, dac_gain, bbmult, m1m2;
27752 	u8 txpi[2], chan_freq_range;
27753 	s32 rfpwr_offset;
27754 
27755 	if (pi->phyhang_avoid)
27756 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
27757 
27758 	if (pi->sh->sromrev < 4) {
27759 		txpi[0] = txpi[1] = 72;
27760 	} else {
27761 
27762 		chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27763 		switch (chan_freq_range) {
27764 		case WL_CHAN_FREQ_RANGE_2G:
27765 		case WL_CHAN_FREQ_RANGE_5GL:
27766 		case WL_CHAN_FREQ_RANGE_5GM:
27767 		case WL_CHAN_FREQ_RANGE_5GH:
27768 			txpi[0] = 0;
27769 			txpi[1] = 0;
27770 			break;
27771 		default:
27772 			txpi[0] = txpi[1] = 91;
27773 			break;
27774 		}
27775 	}
27776 
27777 	if (NREV_GE(pi->pubpi.phy_rev, 7))
27778 		txpi[0] = txpi[1] = 30;
27779 	else if (NREV_GE(pi->pubpi.phy_rev, 3))
27780 		txpi[0] = txpi[1] = 40;
27781 
27782 	if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27783 
27784 		if ((txpi[0] < 40) || (txpi[0] > 100) ||
27785 		    (txpi[1] < 40) || (txpi[1] > 100))
27786 			txpi[0] = txpi[1] = 91;
27787 	}
27788 
27789 	pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27790 	pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27791 	pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27792 	pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27793 
27794 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27795 		uint phyrev = pi->pubpi.phy_rev;
27796 
27797 		if (NREV_GE(phyrev, 3)) {
27798 			if (PHY_IPA(pi)) {
27799 				u32 *tx_gaintbl =
27800 					wlc_phy_get_ipa_gaintbl_nphy(pi);
27801 				txgain = tx_gaintbl[txpi[core]];
27802 			} else {
27803 				if (CHSPEC_IS5G(pi->radio_chanspec)) {
27804 					if (NREV_IS(phyrev, 3)) {
27805 						txgain =
27806 						      nphy_tpc_5GHz_txgain_rev3
27807 								   [txpi[core]];
27808 					} else if (NREV_IS(phyrev, 4)) {
27809 						txgain = (
27810 						  pi->srom_fem5g.extpagain ==
27811 						  3) ?
27812 						  nphy_tpc_5GHz_txgain_HiPwrEPA
27813 						 [txpi[core]] :
27814 						 nphy_tpc_5GHz_txgain_rev4
27815 						 [txpi[core]];
27816 					} else {
27817 						txgain =
27818 						      nphy_tpc_5GHz_txgain_rev5
27819 								   [txpi[core]];
27820 					}
27821 				} else {
27822 					if (NREV_GE(phyrev, 5) &&
27823 					    (pi->srom_fem2g.extpagain == 3)) {
27824 						txgain =
27825 							nphy_tpc_txgain_HiPwrEPA
27826 							[txpi[core]];
27827 					} else {
27828 						txgain = nphy_tpc_txgain_rev3
27829 							 [txpi[core]];
27830 					}
27831 				}
27832 			}
27833 		} else {
27834 			txgain = nphy_tpc_txgain[txpi[core]];
27835 		}
27836 
27837 		if (NREV_GE(phyrev, 3))
27838 			rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27839 		else
27840 			rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27841 
27842 		if (NREV_GE(phyrev, 7))
27843 			dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27844 		else
27845 			dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27846 
27847 		bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27848 
27849 		if (NREV_GE(phyrev, 3))
27850 			mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27851 					 0xa5), (0x1 << 8), (0x1 << 8));
27852 		else
27853 			mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27854 
27855 		write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27856 
27857 		wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27858 					 &rad_gain);
27859 
27860 		wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27861 		m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27862 		m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27863 		wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27864 
27865 		if (PHY_IPA(pi)) {
27866 			wlc_phy_table_read_nphy(pi,
27867 						(core ==
27868 						 PHY_CORE_0 ?
27869 						 NPHY_TBL_ID_CORE1TXPWRCTL :
27870 						 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27871 						576 + txpi[core], 32,
27872 						&rfpwr_offset);
27873 
27874 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27875 				    0x29b, (0x1ff << 4),
27876 				    ((s16) rfpwr_offset) << 4);
27877 
27878 			mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27879 				    0x29b, (0x1 << 2), (1) << 2);
27880 
27881 		}
27882 	}
27883 
27884 	and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
27885 
27886 	if (pi->phyhang_avoid)
27887 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
27888 }
27889 
27890 static void
27891 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
27892 				u8 tmp_max_pwr, u8 rate_start,
27893 				u8 rate_end)
27894 {
27895 	u8 rate;
27896 	u8 word_num, nibble_num;
27897 	u8 tmp_nibble;
27898 
27899 	for (rate = rate_start; rate <= rate_end; rate++) {
27900 		word_num = (rate - rate_start) >> 2;
27901 		nibble_num = (rate - rate_start) & 0x3;
27902 		tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27903 
27904 		srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27905 	}
27906 }
27907 
27908 static void
27909 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27910 			    u8 rate_start, u8 rate_end)
27911 {
27912 	u8 rate;
27913 
27914 	for (rate = rate_start; rate <= rate_end; rate++)
27915 		srom_max[rate] -= 2 * pwr_offset;
27916 }
27917 
27918 void
27919 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27920 				u8 rate_mcs_end, u8 rate_ofdm_start)
27921 {
27922 	u8 rate1, rate2;
27923 
27924 	rate2 = rate_ofdm_start;
27925 	for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27926 		power[rate1] = power[rate2];
27927 		rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27928 	}
27929 	power[rate_mcs_end] = power[rate_mcs_end - 1];
27930 }
27931 
27932 void
27933 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27934 				u8 rate_ofdm_end, u8 rate_mcs_start)
27935 {
27936 	u8 rate1, rate2;
27937 
27938 	for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27939 	     rate1 <= rate_ofdm_end; rate1++, rate2++) {
27940 		power[rate1] = power[rate2];
27941 		if (rate1 == rate_ofdm_start)
27942 			power[++rate1] = power[rate2];
27943 	}
27944 }
27945 
27946 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
27947 {
27948 	uint rate1, rate2, band_num;
27949 	u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27950 	u8 tmp_max_pwr = 0;
27951 	u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
27952 	u8 *tx_srom_max_rate = NULL;
27953 
27954 	for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
27955 	     band_num++) {
27956 		switch (band_num) {
27957 		case 0:
27958 
27959 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
27960 					  pi->nphy_pwrctrl_info[1].max_pwr_2g);
27961 
27962 			pwr_offsets1[0] = pi->cck2gpo;
27963 			wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27964 							pwr_offsets1,
27965 							tmp_max_pwr,
27966 							TXP_FIRST_CCK,
27967 							TXP_LAST_CCK);
27968 
27969 			pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
27970 			pwr_offsets1[1] =
27971 				(u16) (pi->ofdm2gpo >> 16) & 0xffff;
27972 
27973 			pwr_offsets2 = pi->mcs2gpo;
27974 
27975 			tmp_cddpo = pi->cdd2gpo;
27976 			tmp_stbcpo = pi->stbc2gpo;
27977 			tmp_bw40po = pi->bw402gpo;
27978 
27979 			tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27980 			break;
27981 		case 1:
27982 
27983 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
27984 					  pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27985 
27986 			pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
27987 			pwr_offsets1[1] =
27988 				(u16) (pi->ofdm5gpo >> 16) & 0xffff;
27989 
27990 			pwr_offsets2 = pi->mcs5gpo;
27991 
27992 			tmp_cddpo = pi->cdd5gpo;
27993 			tmp_stbcpo = pi->stbc5gpo;
27994 			tmp_bw40po = pi->bw405gpo;
27995 
27996 			tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27997 			break;
27998 		case 2:
27999 
28000 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28001 					  pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28002 
28003 			pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28004 			pwr_offsets1[1] =
28005 				(u16) (pi->ofdm5glpo >> 16) & 0xffff;
28006 
28007 			pwr_offsets2 = pi->mcs5glpo;
28008 
28009 			tmp_cddpo = pi->cdd5glpo;
28010 			tmp_stbcpo = pi->stbc5glpo;
28011 			tmp_bw40po = pi->bw405glpo;
28012 
28013 			tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28014 			break;
28015 		case 3:
28016 
28017 			tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28018 					  pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28019 
28020 			pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28021 			pwr_offsets1[1] =
28022 				(u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28023 
28024 			pwr_offsets2 = pi->mcs5ghpo;
28025 
28026 			tmp_cddpo = pi->cdd5ghpo;
28027 			tmp_stbcpo = pi->stbc5ghpo;
28028 			tmp_bw40po = pi->bw405ghpo;
28029 
28030 			tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28031 			break;
28032 		}
28033 
28034 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28035 						tmp_max_pwr, TXP_FIRST_OFDM,
28036 						TXP_LAST_OFDM);
28037 
28038 		wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28039 						TXP_FIRST_MCS_20_SISO,
28040 						TXP_LAST_MCS_20_SISO,
28041 						TXP_FIRST_OFDM);
28042 
28043 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28044 						tmp_max_pwr,
28045 						TXP_FIRST_MCS_20_CDD,
28046 						TXP_LAST_MCS_20_CDD);
28047 
28048 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28049 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28050 						    TXP_FIRST_MCS_20_CDD,
28051 						    TXP_LAST_MCS_20_CDD);
28052 
28053 		wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28054 						TXP_FIRST_OFDM_20_CDD,
28055 						TXP_LAST_OFDM_20_CDD,
28056 						TXP_FIRST_MCS_20_CDD);
28057 
28058 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28059 						tmp_max_pwr,
28060 						TXP_FIRST_MCS_20_STBC,
28061 						TXP_LAST_MCS_20_STBC);
28062 
28063 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28064 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28065 						    tmp_stbcpo,
28066 						    TXP_FIRST_MCS_20_STBC,
28067 						    TXP_LAST_MCS_20_STBC);
28068 
28069 		wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28070 						&pwr_offsets2[2], tmp_max_pwr,
28071 						TXP_FIRST_MCS_20_SDM,
28072 						TXP_LAST_MCS_20_SDM);
28073 
28074 		if (NPHY_IS_SROM_REINTERPRET) {
28075 
28076 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28077 							&pwr_offsets2[4],
28078 							tmp_max_pwr,
28079 							TXP_FIRST_MCS_40_SISO,
28080 							TXP_LAST_MCS_40_SISO);
28081 
28082 			wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28083 							TXP_FIRST_OFDM_40_SISO,
28084 							TXP_LAST_OFDM_40_SISO,
28085 							TXP_FIRST_MCS_40_SISO);
28086 
28087 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28088 							&pwr_offsets2[4],
28089 							tmp_max_pwr,
28090 							TXP_FIRST_MCS_40_CDD,
28091 							TXP_LAST_MCS_40_CDD);
28092 
28093 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28094 						    TXP_FIRST_MCS_40_CDD,
28095 						    TXP_LAST_MCS_40_CDD);
28096 
28097 			wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28098 							TXP_FIRST_OFDM_40_CDD,
28099 							TXP_LAST_OFDM_40_CDD,
28100 							TXP_FIRST_MCS_40_CDD);
28101 
28102 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28103 							&pwr_offsets2[4],
28104 							tmp_max_pwr,
28105 							TXP_FIRST_MCS_40_STBC,
28106 							TXP_LAST_MCS_40_STBC);
28107 
28108 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28109 						    tmp_stbcpo,
28110 						    TXP_FIRST_MCS_40_STBC,
28111 						    TXP_LAST_MCS_40_STBC);
28112 
28113 			wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28114 							&pwr_offsets2[6],
28115 							tmp_max_pwr,
28116 							TXP_FIRST_MCS_40_SDM,
28117 							TXP_LAST_MCS_40_SDM);
28118 		} else {
28119 
28120 			for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28121 				     TXP_FIRST_OFDM;
28122 			     rate1 <= TXP_LAST_MCS_40_SDM;
28123 			     rate1++, rate2++)
28124 				tx_srom_max_rate[rate1] =
28125 					tx_srom_max_rate[rate2];
28126 		}
28127 
28128 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28129 			wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28130 						    tmp_bw40po,
28131 						    TXP_FIRST_OFDM_40_SISO,
28132 						    TXP_LAST_MCS_40_SDM);
28133 
28134 		tx_srom_max_rate[TXP_MCS_32] =
28135 			tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28136 	}
28137 
28138 	return;
28139 }
28140 
28141 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
28142 {
28143 	u8 tx_pwr_ctrl_state;
28144 	wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28145 	wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28146 
28147 	tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28148 
28149 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28150 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28151 		(void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
28152 		udelay(1);
28153 	}
28154 
28155 	wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28156 
28157 	if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28158 		wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28159 }
28160 
28161 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28162 {
28163 	return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28164 					    (0x1 << 14) | (0x1 << 13));
28165 }
28166 
28167 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28168 {
28169 	u16 tmp;
28170 	u16 pwr_idx[2];
28171 
28172 	if (wlc_phy_txpwr_ison_nphy(pi)) {
28173 		pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28174 		pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28175 
28176 		tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28177 	} else {
28178 		tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28179 			<< 8) |
28180 			(pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28181 	}
28182 
28183 	return tmp;
28184 }
28185 
28186 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28187 {
28188 	if (PHY_IPA(pi)
28189 	    && (pi->nphy_force_papd_cal
28190 		|| (wlc_phy_txpwr_ison_nphy(pi)
28191 		    &&
28192 		    (((u32)
28193 		      abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28194 			  pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28195 		     || ((u32)
28196 			 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28197 			     pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28198 		wlc_phy_a4(pi, true);
28199 }
28200 
28201 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28202 {
28203 	u16 mask = 0, val = 0, ishw = 0;
28204 	u8 ctr;
28205 	uint core;
28206 	u32 tbl_offset;
28207 	u32 tbl_len;
28208 	u16 regval[84];
28209 
28210 	if (pi->phyhang_avoid)
28211 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
28212 
28213 	switch (ctrl_type) {
28214 	case PHY_TPC_HW_OFF:
28215 	case PHY_TPC_HW_ON:
28216 		pi->nphy_txpwrctrl = ctrl_type;
28217 		break;
28218 	default:
28219 		break;
28220 	}
28221 
28222 	if (ctrl_type == PHY_TPC_HW_OFF) {
28223 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28224 
28225 			if (wlc_phy_txpwr_ison_nphy(pi)) {
28226 				for (core = 0; core < pi->pubpi.phy_corenum;
28227 				     core++)
28228 					pi->nphy_txpwr_idx[core] =
28229 						wlc_phy_txpwr_idx_cur_get_nphy(
28230 							pi,
28231 							(u8) core);
28232 			}
28233 
28234 		}
28235 
28236 		tbl_len = 84;
28237 		tbl_offset = 64;
28238 		for (ctr = 0; ctr < tbl_len; ctr++)
28239 			regval[ctr] = 0;
28240 		wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28241 					 regval);
28242 		wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28243 					 regval);
28244 
28245 		if (NREV_GE(pi->pubpi.phy_rev, 3))
28246 			and_phy_reg(pi, 0x1e7,
28247 				    (u16) (~((0x1 << 15) |
28248 					     (0x1 << 14) | (0x1 << 13))));
28249 		else
28250 			and_phy_reg(pi, 0x1e7,
28251 				    (u16) (~((0x1 << 14) | (0x1 << 13))));
28252 
28253 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28254 			or_phy_reg(pi, 0x8f, (0x1 << 8));
28255 			or_phy_reg(pi, 0xa5, (0x1 << 8));
28256 		} else {
28257 			or_phy_reg(pi, 0xa5, (0x1 << 14));
28258 		}
28259 
28260 		if (NREV_IS(pi->pubpi.phy_rev, 2))
28261 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28262 		else if (NREV_LT(pi->pubpi.phy_rev, 2))
28263 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28264 
28265 		if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28266 		    pi->bw == WL_CHANSPEC_BW_40)
28267 			wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28268 				       MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28269 
28270 	} else {
28271 
28272 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28273 					 8, pi->adj_pwr_tbl_nphy);
28274 		wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28275 					 8, pi->adj_pwr_tbl_nphy);
28276 
28277 		ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28278 		mask = (0x1 << 14) | (0x1 << 13);
28279 		val = (ishw << 14) | (ishw << 13);
28280 
28281 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28282 			mask |= (0x1 << 15);
28283 			val |= (ishw << 15);
28284 		}
28285 
28286 		mod_phy_reg(pi, 0x1e7, mask, val);
28287 
28288 		if (CHSPEC_IS5G(pi->radio_chanspec)) {
28289 			if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28290 				mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28291 				mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28292 			} else {
28293 				mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28294 				if (NREV_GT(pi->pubpi.phy_rev, 1))
28295 					mod_phy_reg(pi, 0x222,
28296 						    (0xff << 0), 0x64);
28297 			}
28298 		}
28299 
28300 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28301 			if ((pi->nphy_txpwr_idx[0] != 128)
28302 			    && (pi->nphy_txpwr_idx[1] != 128))
28303 				wlc_phy_txpwr_idx_cur_set_nphy(pi,
28304 							       pi->
28305 							       nphy_txpwr_idx
28306 							       [0],
28307 							       pi->
28308 							       nphy_txpwr_idx
28309 							       [1]);
28310 		}
28311 
28312 		if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28313 			and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28314 			and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28315 		} else {
28316 			and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28317 		}
28318 
28319 		if (NREV_IS(pi->pubpi.phy_rev, 2))
28320 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28321 		else if (NREV_LT(pi->pubpi.phy_rev, 2))
28322 			mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28323 
28324 		if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28325 		    pi->bw == WL_CHANSPEC_BW_40)
28326 			wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28327 				       0x0, BRCM_BAND_ALL);
28328 
28329 		if (PHY_IPA(pi)) {
28330 			mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28331 				    0x29b, (0x1 << 2), (0) << 2);
28332 
28333 			mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28334 				    0x29b, (0x1 << 2), (0) << 2);
28335 
28336 		}
28337 
28338 	}
28339 
28340 	if (pi->phyhang_avoid)
28341 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
28342 }
28343 
28344 void
28345 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28346 			 bool restore_cals)
28347 {
28348 	u8 core, txpwrctl_tbl;
28349 	u16 tx_ind0, iq_ind0, lo_ind0;
28350 	u16 m1m2;
28351 	u32 txgain;
28352 	u16 rad_gain, dac_gain;
28353 	u8 bbmult;
28354 	u32 iqcomp;
28355 	u16 iqcomp_a, iqcomp_b;
28356 	u32 locomp;
28357 	u16 tmpval;
28358 	u8 tx_pwr_ctrl_state;
28359 	s32 rfpwr_offset;
28360 	u16 regval[2];
28361 
28362 	if (pi->phyhang_avoid)
28363 		wlc_phy_stay_in_carriersearch_nphy(pi, true);
28364 
28365 	tx_ind0 = 192;
28366 	iq_ind0 = 320;
28367 	lo_ind0 = 448;
28368 
28369 	for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28370 
28371 		if ((core_mask & (1 << core)) == 0)
28372 			continue;
28373 
28374 		txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28375 
28376 		if (txpwrindex < 0) {
28377 			if (pi->nphy_txpwrindex[core].index < 0)
28378 				continue;
28379 
28380 			if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28381 				mod_phy_reg(pi, 0x8f,
28382 					    (0x1 << 8),
28383 					    pi->nphy_txpwrindex[core].
28384 					    AfectrlOverride);
28385 				mod_phy_reg(pi, 0xa5, (0x1 << 8),
28386 					    pi->nphy_txpwrindex[core].
28387 					    AfectrlOverride);
28388 			} else {
28389 				mod_phy_reg(pi, 0xa5,
28390 					    (0x1 << 14),
28391 					    pi->nphy_txpwrindex[core].
28392 					    AfectrlOverride);
28393 			}
28394 
28395 			write_phy_reg(pi, (core == PHY_CORE_0) ?
28396 				      0xaa : 0xab,
28397 				      pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28398 
28399 			wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28400 						 &pi->nphy_txpwrindex[core].
28401 						 rad_gain);
28402 
28403 			wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28404 			m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28405 			m1m2 |= ((core == PHY_CORE_0) ?
28406 				 (pi->nphy_txpwrindex[core].bbmult << 8) :
28407 				 (pi->nphy_txpwrindex[core].bbmult << 0));
28408 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28409 
28410 			if (restore_cals) {
28411 				wlc_phy_table_write_nphy(
28412 					pi, 15, 2, (80 + 2 * core), 16,
28413 					&pi->nphy_txpwrindex[core].iqcomp_a);
28414 				wlc_phy_table_write_nphy(
28415 					pi, 15, 1, (85 + core), 16,
28416 					&pi->nphy_txpwrindex[core].locomp);
28417 				wlc_phy_table_write_nphy(
28418 					pi, 15, 1, (93 + core), 16,
28419 					&pi->nphy_txpwrindex[core].locomp);
28420 			}
28421 
28422 			wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28423 
28424 			pi->nphy_txpwrindex[core].index_internal =
28425 				pi->nphy_txpwrindex[core].index_internal_save;
28426 		} else {
28427 
28428 			if (pi->nphy_txpwrindex[core].index < 0) {
28429 
28430 				if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28431 					mod_phy_reg(pi, 0x8f,
28432 						    (0x1 << 8),
28433 						    pi->nphy_txpwrindex[core].
28434 						    AfectrlOverride);
28435 					mod_phy_reg(pi, 0xa5, (0x1 << 8),
28436 						    pi->nphy_txpwrindex[core].
28437 						    AfectrlOverride);
28438 				} else {
28439 					pi->nphy_txpwrindex[core].
28440 					AfectrlOverride =
28441 						read_phy_reg(pi, 0xa5);
28442 				}
28443 
28444 				pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28445 					read_phy_reg(pi, (core == PHY_CORE_0) ?
28446 							 0xaa : 0xab);
28447 
28448 				wlc_phy_table_read_nphy(pi, 7, 1,
28449 							(0x110 + core), 16,
28450 							&pi->
28451 							nphy_txpwrindex[core].
28452 							rad_gain);
28453 
28454 				wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28455 							&tmpval);
28456 				tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28457 				tmpval &= 0xff;
28458 				pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28459 
28460 				wlc_phy_table_read_nphy(pi, 15, 2,
28461 							(80 + 2 * core), 16,
28462 							&pi->
28463 							nphy_txpwrindex[core].
28464 							iqcomp_a);
28465 
28466 				wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28467 							16,
28468 							&pi->
28469 							nphy_txpwrindex[core].
28470 							locomp);
28471 
28472 				pi->nphy_txpwrindex[core].index_internal_save =
28473 					pi->nphy_txpwrindex[core].
28474 					index_internal;
28475 			}
28476 
28477 			tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28478 			wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28479 
28480 			if (NREV_IS(pi->pubpi.phy_rev, 1))
28481 				wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28482 
28483 			wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28484 						(tx_ind0 + txpwrindex), 32,
28485 						&txgain);
28486 
28487 			if (NREV_GE(pi->pubpi.phy_rev, 3))
28488 				rad_gain = (txgain >> 16) &
28489 					   ((1 << (32 - 16 + 1)) - 1);
28490 			else
28491 				rad_gain = (txgain >> 16) &
28492 					   ((1 << (28 - 16 + 1)) - 1);
28493 
28494 			dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28495 			bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28496 
28497 			if (NREV_GE(pi->pubpi.phy_rev, 3))
28498 				mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28499 						 0xa5), (0x1 << 8), (0x1 << 8));
28500 			else
28501 				mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28502 
28503 			write_phy_reg(pi, (core == PHY_CORE_0) ?
28504 				      0xaa : 0xab, dac_gain);
28505 
28506 			wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28507 						 &rad_gain);
28508 
28509 			wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28510 			m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28511 			m1m2 |= ((core == PHY_CORE_0) ?
28512 				(bbmult << 8) : (bbmult << 0));
28513 
28514 			wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28515 
28516 			wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28517 						(iq_ind0 + txpwrindex), 32,
28518 						&iqcomp);
28519 			iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28520 			iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28521 
28522 			if (restore_cals) {
28523 				regval[0] = (u16) iqcomp_a;
28524 				regval[1] = (u16) iqcomp_b;
28525 				wlc_phy_table_write_nphy(pi, 15, 2,
28526 							 (80 + 2 * core), 16,
28527 							 regval);
28528 			}
28529 
28530 			wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28531 						(lo_ind0 + txpwrindex), 32,
28532 						&locomp);
28533 			if (restore_cals)
28534 				wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28535 							 16, &locomp);
28536 
28537 			if (NREV_IS(pi->pubpi.phy_rev, 1))
28538 				wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28539 
28540 			if (PHY_IPA(pi)) {
28541 				wlc_phy_table_read_nphy(pi,
28542 						(core == PHY_CORE_0 ?
28543 						 NPHY_TBL_ID_CORE1TXPWRCTL :
28544 						 NPHY_TBL_ID_CORE2TXPWRCTL),
28545 						1, 576 + txpwrindex, 32,
28546 						&rfpwr_offset);
28547 
28548 				mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28549 					    0x29b, (0x1ff << 4),
28550 					    ((s16) rfpwr_offset) << 4);
28551 
28552 				mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28553 					    0x29b, (0x1 << 2), (1) << 2);
28554 
28555 			}
28556 
28557 			wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28558 		}
28559 
28560 		pi->nphy_txpwrindex[core].index = txpwrindex;
28561 	}
28562 
28563 	if (pi->phyhang_avoid)
28564 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
28565 }
28566 
28567 void
28568 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28569 				   u8 txp_rate_idx)
28570 {
28571 	u8 chan_freq_range;
28572 
28573 	chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28574 	switch (chan_freq_range) {
28575 	case WL_CHAN_FREQ_RANGE_2G:
28576 		*max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28577 		break;
28578 	case WL_CHAN_FREQ_RANGE_5GM:
28579 		*max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28580 		break;
28581 	case WL_CHAN_FREQ_RANGE_5GL:
28582 		*max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28583 		break;
28584 	case WL_CHAN_FREQ_RANGE_5GH:
28585 		*max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28586 		break;
28587 	default:
28588 		*max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28589 		break;
28590 	}
28591 
28592 	return;
28593 }
28594 
28595 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28596 {
28597 	u16 clip_off[] = { 0xffff, 0xffff };
28598 
28599 	if (enable) {
28600 		if (pi->nphy_deaf_count == 0) {
28601 			pi->classifier_state =
28602 				wlc_phy_classifier_nphy(pi, 0, 0);
28603 			wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28604 			wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28605 			wlc_phy_clip_det_nphy(pi, 1, clip_off);
28606 		}
28607 
28608 		pi->nphy_deaf_count++;
28609 
28610 		wlc_phy_resetcca_nphy(pi);
28611 
28612 	} else {
28613 		pi->nphy_deaf_count--;
28614 
28615 		if (pi->nphy_deaf_count == 0) {
28616 			wlc_phy_classifier_nphy(pi, (0x7 << 0),
28617 						pi->classifier_state);
28618 			wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28619 		}
28620 	}
28621 }
28622 
28623 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28624 {
28625 	wlapi_suspend_mac_and_wait(pi->sh->physhim);
28626 
28627 	if (mode) {
28628 		if (pi->nphy_deaf_count == 0)
28629 			wlc_phy_stay_in_carriersearch_nphy(pi, true);
28630 	} else if (pi->nphy_deaf_count > 0) {
28631 		wlc_phy_stay_in_carriersearch_nphy(pi, false);
28632 	}
28633 
28634 	wlapi_enable_mac(pi->sh->physhim);
28635 }
28636