2 * Copyright (c) 2010 Broadcom Corporation
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.
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.
17 #include <linux/delay.h>
18 #include <linux/cordic.h>
20 #include <brcm_hw_ids.h>
22 #include <chipcommon.h>
28 #include "phy_radio.h"
32 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
33 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
34 ((core == PHY_CORE_0) ? \
35 radio_type##_##jspace##0 : \
36 radio_type##_##jspace##1))
38 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
39 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
40 ((core == PHY_CORE_0) ? \
41 radio_type##_##jspace##0 : \
42 radio_type##_##jspace##1), value)
44 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
45 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
47 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
48 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
49 radio_type##_##jspace##0##_##reg_name : \
50 radio_type##_##jspace##1##_##reg_name))
52 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
53 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
54 radio_type##_##jspace##0##_##reg_name : \
55 radio_type##_##jspace##1##_##reg_name), \
58 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
59 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
60 radio_type##_##reg_name##_##jspace##0 : \
61 radio_type##_##reg_name##_##jspace##1))
63 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
64 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
65 radio_type##_##reg_name##_##jspace##0 : \
66 radio_type##_##reg_name##_##jspace##1), \
69 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
70 #define NPHY_ACI_CHANNEL_DELTA 5
71 #define NPHY_ACI_CHANNEL_SKIP 4
72 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
73 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
74 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
75 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
76 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
77 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
79 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
81 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
83 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
85 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
87 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
89 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
91 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
93 #define NPHY_NOISE_ASSOC_ENTER_TH 400
95 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
97 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
98 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
100 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
102 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
104 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
106 #define NPHY_RSSICAL_MAXREAD 31
108 #define NPHY_RSSICAL_NPOLL 8
109 #define NPHY_RSSICAL_MAXD (1<<20)
110 #define NPHY_MIN_RXIQ_PWR 2
112 #define NPHY_RSSICAL_W1_TARGET 25
113 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
114 #define NPHY_RSSICAL_NB_TARGET 0
116 #define NPHY_RSSICAL_W1_TARGET_REV3 29
117 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
119 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
120 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
121 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
122 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
123 NPHY_RSSICAL_MAXREAD)
124 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
125 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
126 NPHY_RSSICAL_MAXREAD)
127 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
128 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
129 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
130 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
131 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
132 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
133 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
135 #define NPHY_IQCAL_NUMGAINS 9
136 #define NPHY_N_GCTL 0x66
138 #define NPHY_PAPD_EPS_TBL_SIZE 64
139 #define NPHY_PAPD_SCL_TBL_SIZE 64
140 #define NPHY_NUM_DIG_FILT_COEFFS 15
142 #define NPHY_PAPD_COMP_OFF 0
143 #define NPHY_PAPD_COMP_ON 1
145 #define NPHY_SROM_TEMPSHIFT 32
146 #define NPHY_SROM_MAXTEMPOFFSET 16
147 #define NPHY_SROM_MINTEMPOFFSET -16
149 #define NPHY_CAL_MAXTEMPDELTA 64
151 #define NPHY_NOISEVAR_TBLLEN40 256
152 #define NPHY_NOISEVAR_TBLLEN20 128
154 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
156 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
158 /* 5357 Chip specific ChipControl register bits */
159 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
160 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
162 struct nphy_iqcal_params {
172 struct nphy_txiqcal_ladder {
177 struct nphy_ipa_txcalgains {
178 struct nphy_txgains gains;
183 struct nphy_papd_restore_state {
194 struct nphy_ipa_txrxgain {
203 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
205 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
206 {0, 0, 0, 0, 0, 100},
214 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
215 {0, 0, 0, 0, 0, 128},
223 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
224 {0, 0, 0, 0, 0, 100},
232 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
241 #define NPHY_RXCAL_TONEAMP 181
242 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
243 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
246 NPHY_RXCAL_GAIN_INIT = 0,
251 #define wlc_phy_get_papd_nphy(pi) \
252 (read_phy_reg((pi), 0x1e7) & \
257 #define TXFILT_SHAPING_OFDM20 0
258 #define TXFILT_SHAPING_OFDM40 1
259 #define TXFILT_SHAPING_CCK 2
260 #define TXFILT_DEFAULT_OFDM20 3
261 #define TXFILT_DEFAULT_OFDM40 4
263 u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
264 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
265 230, -44, 230, 201, -191, 201},
266 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
268 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
269 121, -73, 121, 91, 124, 91},
270 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
271 151, 301, 151, 602, -752, 602},
272 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
273 12, 25, 12, 13, 27, 13},
274 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
275 230, -44, 230, 201, -191, 201},
276 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
277 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
280 struct chan_info_nphy_2055 {
296 u8 RF_core1_lgbuf_a_tune;
297 u8 RF_core1_lgbuf_g_tune;
298 u8 RF_core1_rxrf_reg1;
299 u8 RF_core1_tx_pga_pad_tn;
300 u8 RF_core1_tx_mx_bgtrim;
301 u8 RF_core2_lgbuf_a_tune;
302 u8 RF_core2_lgbuf_g_tune;
303 u8 RF_core2_rxrf_reg1;
304 u8 RF_core2_tx_pga_pad_tn;
305 u8 RF_core2_tx_mx_bgtrim;
314 struct chan_info_nphy_radio205x {
317 u8 RF_SYN_pll_vcocal1;
318 u8 RF_SYN_pll_vcocal2;
319 u8 RF_SYN_pll_refdiv;
322 u8 RF_SYN_pll_loopfilter1;
323 u8 RF_SYN_pll_loopfilter2;
324 u8 RF_SYN_pll_loopfilter3;
325 u8 RF_SYN_pll_loopfilter4;
326 u8 RF_SYN_pll_loopfilter5;
327 u8 RF_SYN_reserved_addr27;
328 u8 RF_SYN_reserved_addr28;
329 u8 RF_SYN_reserved_addr29;
330 u8 RF_SYN_logen_VCOBUF1;
331 u8 RF_SYN_logen_MIXER2;
332 u8 RF_SYN_logen_BUF3;
333 u8 RF_SYN_logen_BUF4;
336 u8 RF_TX0_intpaa_boost_tune;
337 u8 RF_TX0_intpag_boost_tune;
338 u8 RF_TX0_pada_boost_tune;
339 u8 RF_TX0_padg_boost_tune;
340 u8 RF_TX0_pgaa_boost_tune;
341 u8 RF_TX0_pgag_boost_tune;
342 u8 RF_TX0_mixa_boost_tune;
343 u8 RF_TX0_mixg_boost_tune;
346 u8 RF_TX1_intpaa_boost_tune;
347 u8 RF_TX1_intpag_boost_tune;
348 u8 RF_TX1_pada_boost_tune;
349 u8 RF_TX1_padg_boost_tune;
350 u8 RF_TX1_pgaa_boost_tune;
351 u8 RF_TX1_pgag_boost_tune;
352 u8 RF_TX1_mixa_boost_tune;
353 u8 RF_TX1_mixg_boost_tune;
362 struct chan_info_nphy_radio2057 {
365 u8 RF_vcocal_countval0;
366 u8 RF_vcocal_countval1;
367 u8 RF_rfpll_refmaster_sparextalsize;
368 u8 RF_rfpll_loopfilter_r1;
369 u8 RF_rfpll_loopfilter_c2;
370 u8 RF_rfpll_loopfilter_c1;
375 u8 RF_logen_mx2g_tune;
376 u8 RF_logen_mx5g_tune;
377 u8 RF_logen_indbuf2g_tune;
378 u8 RF_logen_indbuf5g_tune;
379 u8 RF_txmix2g_tune_boost_pu_core0;
380 u8 RF_pad2g_tune_pus_core0;
381 u8 RF_pga_boost_tune_core0;
382 u8 RF_txmix5g_boost_tune_core0;
383 u8 RF_pad5g_tune_misc_pus_core0;
384 u8 RF_lna2g_tune_core0;
385 u8 RF_lna5g_tune_core0;
386 u8 RF_txmix2g_tune_boost_pu_core1;
387 u8 RF_pad2g_tune_pus_core1;
388 u8 RF_pga_boost_tune_core1;
389 u8 RF_txmix5g_boost_tune_core1;
390 u8 RF_pad5g_tune_misc_pus_core1;
391 u8 RF_lna2g_tune_core1;
392 u8 RF_lna5g_tune_core1;
401 struct chan_info_nphy_radio2057_rev5 {
404 u8 RF_vcocal_countval0;
405 u8 RF_vcocal_countval1;
406 u8 RF_rfpll_refmaster_sparextalsize;
407 u8 RF_rfpll_loopfilter_r1;
408 u8 RF_rfpll_loopfilter_c2;
409 u8 RF_rfpll_loopfilter_c1;
414 u8 RF_logen_mx2g_tune;
415 u8 RF_logen_indbuf2g_tune;
416 u8 RF_txmix2g_tune_boost_pu_core0;
417 u8 RF_pad2g_tune_pus_core0;
418 u8 RF_lna2g_tune_core0;
419 u8 RF_txmix2g_tune_boost_pu_core1;
420 u8 RF_pad2g_tune_pus_core1;
421 u8 RF_lna2g_tune_core1;
430 struct nphy_sfo_cfg {
439 static struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
441 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
442 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
443 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
445 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
446 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
447 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
449 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
450 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
451 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
453 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
454 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
455 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
457 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
458 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
459 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
461 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
462 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
463 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
465 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
466 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
467 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
469 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
470 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
471 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
473 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
474 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
475 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
477 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
478 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
479 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
481 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
482 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
483 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
485 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
486 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
487 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
489 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
490 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
491 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
493 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
494 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
495 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
497 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
498 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
499 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
501 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
502 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
503 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
505 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
506 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
507 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
509 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
510 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
511 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
513 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
514 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
515 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
517 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
518 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
519 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
521 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
522 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
523 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
525 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
526 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
527 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
529 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
530 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
531 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
533 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
534 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
535 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
537 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
538 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
539 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
541 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
542 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
543 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
545 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
546 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
547 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
549 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
550 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
551 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
553 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
554 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
555 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
557 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
558 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
559 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
561 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
562 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
563 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
565 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
566 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
567 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
569 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
570 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
571 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
573 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
574 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
575 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
577 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
578 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
579 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
581 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
582 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
583 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
585 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
586 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
587 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
589 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
590 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
591 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
593 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
594 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
595 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
597 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
598 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
599 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
601 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
602 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
603 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
605 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
606 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
607 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
609 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
610 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
611 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
613 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
614 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
615 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
617 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
618 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
619 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
621 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
622 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
623 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
625 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
626 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
627 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
629 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
630 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
631 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
633 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
634 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
635 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
637 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
638 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
639 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
641 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
642 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
643 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
645 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
646 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
647 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
649 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
650 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
651 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
653 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
654 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
655 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
657 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
658 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
659 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
661 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
662 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
663 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
665 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
666 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
667 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
669 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
670 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
671 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
673 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
674 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
675 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
677 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
678 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
679 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
681 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
682 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
683 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
685 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
686 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
687 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
689 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
690 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
691 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
693 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
694 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
695 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
697 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
698 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
699 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
701 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
702 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
703 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
705 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
706 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
707 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
709 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
710 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
711 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
713 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
714 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
715 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
717 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
718 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
719 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
721 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
722 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
723 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
725 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
726 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
727 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
729 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
730 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
731 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
733 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
734 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
735 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
737 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
738 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
739 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
741 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
742 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
743 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
745 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
746 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
747 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
749 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
750 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
751 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
753 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
754 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
755 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
757 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
758 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
759 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
761 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
762 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
763 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
765 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
766 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
767 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
769 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
770 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
771 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
773 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
774 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
775 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
777 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
778 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
779 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
781 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
782 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
783 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
785 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
786 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
787 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
789 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
790 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
791 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
793 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
794 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
795 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
797 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
798 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
799 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
801 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
802 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
803 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
805 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
806 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
807 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
809 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
810 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
811 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
813 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
814 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
815 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
817 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
818 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
819 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
821 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
822 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
823 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
825 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
826 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
827 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
829 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
830 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
831 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
833 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
834 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
835 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
837 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
838 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
839 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
841 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
842 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
843 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
845 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
846 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
847 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
849 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
850 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
851 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
853 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
854 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
855 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
857 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
858 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
859 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
861 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
862 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
863 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
865 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
866 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
867 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
869 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
870 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
871 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
873 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
874 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
875 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
877 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
878 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
879 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
881 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
882 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
883 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
885 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
886 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
887 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
889 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
890 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
891 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
893 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
894 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
895 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
897 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
898 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
899 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
901 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
902 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
903 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
905 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
906 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
907 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
909 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
910 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
911 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
913 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
914 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
915 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
917 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
918 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
919 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
921 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
922 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
923 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
925 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
926 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
927 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
929 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
930 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
931 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
933 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
934 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
935 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
938 static struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
940 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
941 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
942 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
943 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
945 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
946 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
947 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
948 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
950 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
955 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
960 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
961 0x01, 0x01, 0x01, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
965 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
966 0x01, 0x01, 0x01, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
970 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
975 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
980 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
981 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
982 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
983 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
985 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
986 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
987 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
988 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
990 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 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, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
995 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 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, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1000 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 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, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1005 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 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, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1010 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 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, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1015 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 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, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1020 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 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, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1025 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 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, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1030 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1031 0x02, 0x02, 0x02, 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, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1035 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1036 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1037 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1038 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1040 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1041 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1042 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1043 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1045 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 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, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1050 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 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, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1055 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 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, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1060 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 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, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1065 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1066 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1067 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1068 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1070 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1071 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1072 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1073 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1075 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1076 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1077 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1078 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1080 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1081 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1082 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1083 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1085 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1086 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1087 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1088 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1090 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 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, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1095 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1096 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1097 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1098 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1100 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1101 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1102 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1103 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1105 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 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, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1110 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1111 0x03, 0x03, 0x03, 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, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1115 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1116 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1117 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1118 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1120 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1121 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1122 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1123 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1125 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1126 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1127 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1128 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1130 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1131 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1132 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1133 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1135 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1136 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1137 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1138 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1140 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1141 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1142 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1143 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1145 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1146 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1147 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1148 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1150 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1151 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1152 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1153 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1155 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1156 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1157 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1158 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1160 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 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, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1165 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 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, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1170 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1171 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1172 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1173 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1175 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1176 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1177 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1178 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1180 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1181 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1182 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1183 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1185 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1186 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1187 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1188 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1190 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1191 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1192 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1193 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1195 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1196 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1197 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1198 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1200 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1201 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1202 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1203 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1205 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1206 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1207 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1208 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1210 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1211 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1212 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1213 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1215 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1216 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1217 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1218 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1220 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1221 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1222 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1223 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1225 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1226 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1227 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1228 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1230 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1231 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1232 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1233 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1235 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1236 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1237 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1238 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1240 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1241 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1242 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1243 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1245 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1246 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1247 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1248 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1250 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 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, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1255 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1256 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1257 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1258 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1260 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1261 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1262 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1263 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1265 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1266 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1267 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1268 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1270 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1271 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1272 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1273 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1275 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1276 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1277 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1278 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1280 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1281 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1282 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1283 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1285 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1286 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1287 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1288 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1290 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1291 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1292 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1293 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1295 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1296 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1297 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1298 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1300 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1301 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1302 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1303 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1305 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1306 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1307 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1308 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1310 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1311 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1312 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1313 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1315 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 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, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1320 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1321 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1322 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1323 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1325 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1326 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1327 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1328 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1330 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1331 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1332 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1333 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1335 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1336 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1337 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1338 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1340 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1341 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1342 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1343 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1345 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1346 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1347 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1348 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1350 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 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, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1355 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 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, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1360 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 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, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1365 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 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, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1370 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1371 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1372 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1373 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1375 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1376 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1377 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1378 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1380 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 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, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1385 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 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, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1390 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 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, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1395 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 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, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1400 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1401 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1402 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1403 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1405 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1406 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1407 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1408 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1410 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 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, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1415 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1416 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1417 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1418 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1420 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1421 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1422 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1423 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1425 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 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, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1430 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 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, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1435 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1436 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1437 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1438 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1440 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1441 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1442 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1443 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1445 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 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, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1450 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 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, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1455 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 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, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1460 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1461 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1462 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1463 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1465 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1466 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1467 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1468 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1470 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1471 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1472 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1473 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1475 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 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, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1480 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1481 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1482 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1483 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1485 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1486 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1487 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1488 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1490 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1491 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1492 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1493 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1495 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1496 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1497 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1498 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1500 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1501 0x05, 0x05, 0x05, 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, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1505 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1506 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1507 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1508 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1510 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1511 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1512 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1513 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1515 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1516 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1517 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1518 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1520 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1521 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1522 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1523 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1525 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1526 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1527 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1528 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1530 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1531 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1532 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1533 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1535 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1536 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1537 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1538 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1540 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1541 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1542 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1543 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1545 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1546 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1547 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1548 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1550 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1551 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1552 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1553 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1555 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1556 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1557 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1558 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1561 static struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1563 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1564 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1565 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1566 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1568 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1569 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1570 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1571 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1573 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1578 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1583 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1584 0x01, 0x01, 0x01, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1588 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1589 0x01, 0x01, 0x01, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1593 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1598 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1603 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1604 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1605 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1606 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1608 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1609 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1610 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1611 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1613 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 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, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1618 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 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, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1623 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 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, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1628 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 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, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1633 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 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, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1638 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 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, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1643 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 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, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1648 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 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, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1653 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1654 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1655 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1656 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1658 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1659 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1660 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1661 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1663 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 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, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1668 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 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, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1673 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 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, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1678 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 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, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1683 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 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, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1688 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1689 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1690 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1691 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1693 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1694 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1695 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1696 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1698 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1699 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1700 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1701 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1703 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1704 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1705 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1706 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1708 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1709 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1710 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1711 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1713 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 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, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1718 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1719 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1720 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1721 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1723 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1724 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1725 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1726 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1728 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 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, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1733 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1734 0x03, 0x03, 0x03, 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, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1738 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1739 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1740 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1741 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1743 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1744 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1745 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1746 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1748 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1749 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1750 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1751 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1753 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1754 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1755 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1756 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1758 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 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, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1763 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1764 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1765 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1766 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1768 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1769 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1770 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1771 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1773 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1774 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1775 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1776 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1778 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1779 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1780 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1781 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1783 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 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, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1788 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 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, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1793 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1794 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1795 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1796 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1798 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1799 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1800 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1801 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1803 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1804 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1805 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1806 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1808 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1809 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1810 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1811 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1813 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1814 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1815 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1816 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1818 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1819 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1820 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1821 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1823 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1824 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1825 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1826 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1828 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1829 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1830 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1831 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1833 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1834 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1835 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1836 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1838 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1839 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1840 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1841 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1843 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1844 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1845 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1846 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1848 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1849 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1850 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1851 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1853 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1854 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1855 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1856 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1858 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1859 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1860 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1861 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1863 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1864 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1865 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1866 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1868 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1869 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1870 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1871 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1873 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 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, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1878 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1879 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1880 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1881 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1883 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1884 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1885 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1886 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1888 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1889 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1890 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1891 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1893 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1894 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1895 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1896 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1898 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1899 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1900 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1901 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1903 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1904 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1905 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1906 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1908 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1909 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1910 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1911 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1913 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1914 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1915 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1916 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1918 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1919 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1920 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1921 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1923 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1924 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1925 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1926 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1928 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1929 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1930 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1931 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1933 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 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, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1938 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 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, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1943 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1944 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1945 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1946 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1948 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1949 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1950 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1951 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1953 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1954 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1955 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1956 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1958 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 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, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1963 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1964 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1965 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1966 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1968 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1969 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1970 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1971 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1973 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 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, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1978 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 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, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1983 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 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, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1988 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 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, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1993 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1994 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1995 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1996 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1998 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1999 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2000 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2001 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2003 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 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, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2008 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 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, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2013 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 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, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2018 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 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, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2023 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2024 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2025 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2026 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2028 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2029 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2030 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2031 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2033 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 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, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2038 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2039 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2040 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2041 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2043 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2044 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2045 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2046 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2048 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 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, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2053 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 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, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2058 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2059 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2060 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2061 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2063 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2064 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2065 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2066 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2068 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 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, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2073 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 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, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2078 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 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, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2083 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 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, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2088 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2089 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2090 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2091 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2093 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2094 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2095 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2096 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2098 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 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, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2103 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2104 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2105 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2106 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2108 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2109 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2110 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2111 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2113 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2114 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2115 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2116 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2118 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2119 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2120 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2121 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2123 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2124 0x05, 0x05, 0x05, 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, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2128 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2129 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2130 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2131 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2133 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2134 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2135 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2136 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2138 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2139 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2140 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2141 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2143 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2144 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2145 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2146 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2148 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2149 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2150 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2151 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2153 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2154 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2155 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2156 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2158 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2159 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2160 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2161 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2163 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2164 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2165 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2166 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2168 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2169 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2170 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2171 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2173 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2174 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2175 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2176 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2178 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2179 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2180 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2181 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2184 static struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2186 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2187 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2188 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2189 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2191 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2192 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2193 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2194 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2196 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2197 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2198 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2199 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2201 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2206 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2207 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2208 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2209 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2211 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2212 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2213 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2214 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2216 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2217 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2218 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2219 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2221 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2226 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2231 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 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, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2236 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2237 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2238 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2239 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2241 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2242 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2243 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2244 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2246 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2247 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2248 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2249 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2251 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2252 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2253 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2254 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2256 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2257 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2258 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2259 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2261 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2262 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2263 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2264 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2266 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2267 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2268 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2269 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2271 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2272 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2273 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2274 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2276 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2277 0x02, 0x02, 0x02, 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, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2281 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2282 0x02, 0x02, 0x02, 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, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2286 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 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, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2291 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2292 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2293 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2294 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2296 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2297 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2298 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2299 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2301 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2302 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2303 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2304 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2306 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2307 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2308 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2309 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2311 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2312 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2313 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2314 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2316 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2317 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2318 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2319 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2321 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 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, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2326 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 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, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2331 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 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, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2336 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2337 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2338 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2339 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2341 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2342 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2343 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2344 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2346 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2347 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2348 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2349 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2351 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2352 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2353 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2354 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2356 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2357 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2358 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2359 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2361 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2362 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2363 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2364 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2366 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2367 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2368 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2369 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2371 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2372 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2373 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2374 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2376 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2377 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2378 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2379 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2381 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2382 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2383 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2384 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2386 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2387 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2388 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2389 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2391 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2392 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2393 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2394 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2396 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2397 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2398 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2399 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2401 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2402 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2403 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2404 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2406 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2407 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2408 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2409 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2411 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2412 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2413 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2414 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2416 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2417 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2418 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2419 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2421 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2422 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2423 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2424 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2426 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2427 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2428 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2429 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2431 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2432 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2433 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2434 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2436 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2437 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2438 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2439 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2441 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2442 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2443 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2444 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2446 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2447 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2448 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2449 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2451 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2452 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2453 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2454 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2456 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2457 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2458 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2459 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2461 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2462 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2463 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2464 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2466 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2467 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2468 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2469 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2471 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2472 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2473 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2474 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2476 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2477 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2478 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2479 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2481 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 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, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2486 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2487 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2488 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2489 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2491 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2492 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2493 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2494 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2496 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2497 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2498 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2499 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2501 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 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, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2506 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2507 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2508 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2509 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2511 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2512 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2513 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2514 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2516 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2517 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2518 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2519 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2521 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2522 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2523 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2524 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2526 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2527 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2528 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2529 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2531 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 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, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2536 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 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, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2541 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2542 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2543 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2544 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2546 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2547 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2548 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2549 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2551 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2552 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2553 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2554 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2556 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2557 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2558 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2559 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2561 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2562 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2563 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2564 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2566 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 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, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2571 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2572 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2573 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2574 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2576 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2577 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2578 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2579 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2581 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 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, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2586 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 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, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2591 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2592 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2593 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2594 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2596 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2597 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2598 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2599 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2601 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2602 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2603 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2604 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2606 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 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, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2611 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 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, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2616 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 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, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2621 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2622 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2623 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2624 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2626 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2627 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2628 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2629 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2631 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2632 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2633 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2634 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2636 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 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, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2641 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2642 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2643 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2644 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2646 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2647 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2648 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2649 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2651 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2652 0x06, 0x06, 0x06, 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, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2656 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 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, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2661 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2662 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2663 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2664 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2666 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2667 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2668 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2669 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2671 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 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, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2676 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 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, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2681 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 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, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2686 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 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, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2691 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 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, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2696 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 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, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2701 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2702 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2703 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2704 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2706 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2707 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2708 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2709 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2711 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2712 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2713 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2714 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2716 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2717 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2718 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2719 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2721 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 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, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2726 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2727 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2728 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2729 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2731 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2732 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2733 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2734 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2736 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2737 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2738 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2739 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2741 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2742 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2743 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2744 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2746 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2747 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2748 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2749 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2751 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2752 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2753 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2754 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2756 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2757 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2758 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2759 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2761 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2762 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2763 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2764 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2766 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2767 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2768 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2769 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2771 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2772 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2773 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2774 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2776 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2777 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2778 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2779 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2781 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2782 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2783 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2784 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2786 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2787 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2788 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2789 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2791 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2792 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2793 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2794 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2796 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2797 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2798 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2799 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2801 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2802 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2803 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2804 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2807 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2809 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2810 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2811 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2812 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2814 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2815 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2816 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2817 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2819 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2824 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2829 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2830 0x01, 0x01, 0x01, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2834 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2835 0x01, 0x01, 0x01, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2839 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2844 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2849 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2854 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 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, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2859 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 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, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2864 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 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, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2869 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 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, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2874 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 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, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2879 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 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, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2884 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2885 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2886 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2887 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2889 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2890 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2891 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2892 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2894 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 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, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2899 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2900 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2901 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2902 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2904 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2905 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2906 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2907 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2909 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2910 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2911 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2912 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2914 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 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, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2919 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2920 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2921 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2922 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2924 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2925 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2926 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2927 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2929 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2930 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2931 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2932 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2934 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2935 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2936 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2937 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2939 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2940 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2941 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2942 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2944 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2945 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2946 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2947 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2949 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2950 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2951 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2952 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2954 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2955 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2956 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2957 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2959 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2960 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2961 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2962 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2964 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2965 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2966 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2967 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2969 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2970 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2971 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2972 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2974 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2975 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2976 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2977 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2979 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2980 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2981 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2982 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2984 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2985 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2986 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2987 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2989 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2990 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2991 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2992 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2994 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 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, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2999 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 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, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3004 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3005 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3006 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3007 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3009 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3010 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3011 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3012 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3014 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3015 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3016 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3017 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3019 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3020 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3021 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3022 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3024 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3025 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3026 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3027 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3029 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3030 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3031 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3032 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3034 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3035 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3036 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3037 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3039 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3040 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3041 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3042 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3044 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3045 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3046 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3047 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3049 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3050 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3051 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3052 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3054 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3055 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3056 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3057 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3059 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3060 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3061 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3062 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3064 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3065 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3066 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3067 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3069 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3070 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3071 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3072 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3074 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3075 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3076 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3077 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3079 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3080 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3081 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3082 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3084 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3085 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3086 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3087 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3089 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3090 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3091 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3092 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3094 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3095 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3096 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3097 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3099 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3100 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3101 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3102 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3104 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3105 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3106 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3107 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3109 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3110 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3111 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3112 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3114 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3115 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3116 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3117 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3119 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3120 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3121 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3122 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3124 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3125 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3126 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3127 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3129 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3130 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3131 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3132 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3134 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3135 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3136 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3137 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3139 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3140 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3141 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3142 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3144 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3145 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3146 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3147 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3149 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3150 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3151 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3152 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3154 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3155 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3156 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3157 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3159 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3160 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3161 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3162 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3164 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3165 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3166 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3167 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3169 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3170 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3171 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3172 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3174 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3175 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3176 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3177 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3179 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3180 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3181 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3182 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3184 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3185 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3186 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3187 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3189 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3190 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3191 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3192 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3194 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3195 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3196 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3197 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3199 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3200 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3201 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3202 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3204 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 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, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3209 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 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, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3214 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3215 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3216 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3217 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3219 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3220 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3221 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3222 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3224 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3225 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3226 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3227 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3229 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 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, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3234 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3235 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3236 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3237 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3239 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3240 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3241 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3242 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3244 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3245 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3246 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3247 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3249 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3250 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3251 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3252 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3254 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3255 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3256 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3257 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3259 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3260 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3261 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3262 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3264 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 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, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3269 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3270 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3271 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3272 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3274 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3275 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3276 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3277 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3279 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3280 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3281 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3282 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3284 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3285 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3286 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3287 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3289 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3290 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3291 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3292 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3294 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3295 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3296 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3297 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3299 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 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, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3304 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 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, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3309 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3310 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3311 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3312 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3314 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3315 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3316 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3317 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3319 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3320 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3321 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3322 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3324 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3325 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3326 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3327 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3329 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3330 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3331 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3332 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3334 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3335 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3336 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3337 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3339 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3340 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3341 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3342 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3344 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 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, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3349 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 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, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3354 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 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, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3359 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3360 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3361 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3362 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3364 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3365 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3366 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3367 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3369 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3370 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3371 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3372 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3374 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3375 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3376 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3377 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3379 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3380 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3381 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3382 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3384 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3385 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3386 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3387 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3389 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3390 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3391 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3392 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3394 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3395 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3396 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3397 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3399 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3400 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3401 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3402 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3404 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3405 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3406 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3407 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3409 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3410 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3411 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3412 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3414 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3415 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3416 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3417 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3419 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3420 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3421 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3422 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3424 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3425 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3426 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3427 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3430 static struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3432 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3433 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3434 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3435 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3437 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3438 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3439 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3440 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3442 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3443 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3444 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3445 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3447 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3452 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3453 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3454 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3455 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3457 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3458 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3459 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3460 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3462 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3463 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3464 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3465 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3467 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3472 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3477 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 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, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3482 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3483 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3484 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3485 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3487 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3488 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3489 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3490 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3492 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3493 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3494 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3495 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3497 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3498 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3499 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3500 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3502 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3503 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3504 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3505 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3507 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3508 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3509 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3510 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3512 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3513 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3514 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3515 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3517 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3518 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3519 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3520 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3522 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3523 0x02, 0x02, 0x02, 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, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3527 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3528 0x02, 0x02, 0x02, 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, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3532 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 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, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3537 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3538 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3539 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3540 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3542 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3543 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3544 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3545 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3547 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3548 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3549 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3550 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3552 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3553 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3554 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3555 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3557 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3558 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3559 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3560 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3562 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3563 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3564 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3565 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3567 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 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, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3572 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 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, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3577 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3578 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3579 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3580 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3582 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3583 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3584 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3585 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3587 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3588 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3589 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3590 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3592 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3593 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3594 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3595 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3597 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3598 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3599 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3600 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3602 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3603 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3604 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3605 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3607 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3608 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3609 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3610 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3612 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3613 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3614 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3615 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3617 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 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, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3622 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 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, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3627 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3628 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3629 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3630 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3632 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3633 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3634 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3635 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3637 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3638 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3639 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3640 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3642 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3643 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3644 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3645 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3647 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3648 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3649 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3650 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3652 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3653 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3654 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3655 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3657 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3658 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3659 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3660 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3662 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3663 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3664 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3665 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3667 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3668 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3669 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3670 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3672 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3673 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3674 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3675 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3677 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3678 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3679 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3680 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3682 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3683 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3684 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3685 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3687 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3688 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3689 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3690 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3692 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3693 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3694 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3695 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3697 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3698 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3699 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3700 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3702 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3703 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3704 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3705 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3707 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3708 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3709 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3710 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3712 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3713 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3714 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3715 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3717 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3718 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3719 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3720 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3722 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3723 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3724 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3725 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3727 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3728 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3729 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3730 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3732 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3733 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3734 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3735 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3737 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3738 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3739 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3740 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3742 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3743 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3744 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3745 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3747 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3748 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3749 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3750 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3752 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3753 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3754 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3755 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3757 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3758 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3759 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3760 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3762 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3763 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3764 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3765 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3767 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3768 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3769 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3770 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3772 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3773 0x05, 0x05, 0x05, 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, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3777 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 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, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3782 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3783 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3784 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3785 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3787 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3788 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3789 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3790 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3792 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3793 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3794 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3795 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3797 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3798 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3799 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3800 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3802 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3803 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3804 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3805 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3807 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3808 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3809 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3810 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3812 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3813 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3814 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3815 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3817 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 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, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3822 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 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, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3827 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 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, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3832 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 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, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3837 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3838 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3839 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3840 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3842 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3843 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3844 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3845 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3847 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3848 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3849 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3850 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3852 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 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, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3857 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 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, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3862 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3863 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3864 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3865 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3867 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3868 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3869 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3870 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3872 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3873 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3874 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3875 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3877 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3878 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3879 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3880 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3882 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3883 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3884 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3885 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3887 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3888 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3889 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3890 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3892 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3893 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3894 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3895 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3897 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3898 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3899 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3900 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3902 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 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, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3907 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 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, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3912 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 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, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3917 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 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, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3922 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 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, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3927 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 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, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3932 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 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, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3937 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 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, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3942 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 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, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3947 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3948 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3949 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3950 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3952 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3953 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3954 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3955 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3957 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3958 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3959 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3960 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3962 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3963 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3964 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3965 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3967 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 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, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3972 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 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, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3977 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 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, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3982 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3983 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3984 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3985 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3987 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3988 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3989 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3990 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3992 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3993 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3994 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3995 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3997 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3998 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3999 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4000 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4002 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4003 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4004 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4005 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4007 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4008 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4009 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4010 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4012 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4013 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4014 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4015 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4017 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4018 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4019 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4020 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4022 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4023 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4024 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4025 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4027 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4028 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4029 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4030 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4032 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4033 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4034 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4035 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4037 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4038 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4039 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4040 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4042 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4043 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4044 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4045 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4047 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4048 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4049 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4050 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4053 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4055 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4056 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4057 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4058 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4060 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4061 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4062 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4063 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4065 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4070 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4075 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4076 0x01, 0x01, 0x01, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4080 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4081 0x01, 0x01, 0x01, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4085 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4090 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4095 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4100 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 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, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4105 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 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, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4110 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 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, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4115 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 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, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4120 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 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, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4125 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 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, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4130 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4131 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4132 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4133 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4135 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4136 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4137 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4138 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4140 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 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, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4145 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4146 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4147 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4148 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4150 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4151 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4152 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4153 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4155 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4156 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4157 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4158 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4160 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 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, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4165 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4166 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4167 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4168 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4170 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4171 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4172 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4173 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4175 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4176 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4177 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4178 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4180 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4181 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4182 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4183 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4185 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4186 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4187 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4188 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4190 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4191 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4192 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4193 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4195 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4196 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4197 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4198 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4200 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4201 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4202 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4203 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4205 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4206 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4207 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4208 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4210 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4211 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4212 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4213 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4215 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4216 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4217 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4218 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4220 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4221 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4222 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4223 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4225 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4226 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4227 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4228 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4230 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4231 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4232 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4233 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4235 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4236 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4237 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4238 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4240 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 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, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4245 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 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, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4250 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4251 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4252 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4253 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4255 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4256 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4257 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4258 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4260 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4261 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4262 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4263 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4265 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4266 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4267 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4268 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4270 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4271 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4272 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4273 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4275 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4276 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4277 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4278 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4280 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4281 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4282 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4283 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4285 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4286 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4287 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4288 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4290 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4291 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4292 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4293 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4295 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4296 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4297 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4298 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4300 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4301 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4302 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4303 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4305 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4306 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4307 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4308 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4310 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4311 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4312 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4313 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4315 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4316 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4317 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4318 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4320 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4321 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4322 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4323 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4325 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4326 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4327 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4328 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4330 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4331 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4332 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4333 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4335 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4336 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4337 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4338 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4340 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4341 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4342 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4343 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4345 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4346 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4347 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4348 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4350 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4351 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4352 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4353 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4355 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4356 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4357 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4358 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4360 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4361 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4362 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4363 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4365 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4366 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4367 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4368 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4370 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4371 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4372 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4373 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4375 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4376 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4377 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4378 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4380 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4381 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4382 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4383 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4385 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4386 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4387 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4388 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4390 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4391 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4392 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4393 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4395 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4396 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4397 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4398 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4400 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4401 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4402 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4403 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4405 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4406 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4407 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4408 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4410 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4411 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4412 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4413 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4415 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4416 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4417 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4418 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4420 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4421 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4422 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4423 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4425 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4426 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4427 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4428 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4430 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4431 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4432 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4433 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4435 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4436 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4437 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4438 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4440 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4441 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4442 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4443 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4445 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4446 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4447 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4448 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4450 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 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, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4455 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 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, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4460 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4461 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4462 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4463 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4465 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4466 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4467 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4468 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4470 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4471 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4472 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4473 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4475 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 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, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4480 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4481 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4482 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4483 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4485 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4486 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4487 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4488 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4490 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4491 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4492 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4493 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4495 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4496 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4497 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4498 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4500 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4501 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4502 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4503 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4505 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4506 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4507 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4508 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4510 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 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, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4515 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4516 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4517 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4518 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4520 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4521 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4522 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4523 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4525 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4526 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4527 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4528 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4530 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4531 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4532 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4533 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4535 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4536 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4537 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4538 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4540 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4541 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4542 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4543 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4545 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 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, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4550 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 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, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4555 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4556 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4557 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4558 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4560 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4561 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4562 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4563 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4565 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4566 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4567 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4568 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4570 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4571 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4572 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4573 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4575 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4576 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4577 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4578 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4580 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4581 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4582 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4583 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4585 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4586 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4587 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4588 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4590 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 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, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4595 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 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, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4600 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 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, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4605 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4606 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4607 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4608 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4610 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4611 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4612 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4613 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4615 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4616 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4617 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4618 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4620 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4621 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4622 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4623 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4625 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4626 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4627 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4628 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4630 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4631 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4632 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4633 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4635 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4636 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4637 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4638 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4640 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4641 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4642 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4643 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4645 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4646 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4647 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4648 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4650 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4651 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4652 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4653 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4655 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4656 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4657 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4658 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4660 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4661 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4662 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4663 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4665 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4666 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4667 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4668 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4670 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4671 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4672 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4673 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4676 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4678 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4679 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4680 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4681 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4683 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4684 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4685 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4686 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4688 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4693 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4698 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4699 0x01, 0x01, 0x01, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4703 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4704 0x01, 0x01, 0x01, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4708 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4713 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4718 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4723 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 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, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4728 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 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, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4733 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 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, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4738 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 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, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4743 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 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, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4748 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 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, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4753 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4754 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4755 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4756 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4758 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4759 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4760 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4761 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4763 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 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, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4768 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4769 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4770 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4771 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4773 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4774 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4775 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4776 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4778 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4779 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4780 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4781 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4783 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 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, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4788 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4789 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4790 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4791 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4793 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4794 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4795 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4796 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4798 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4799 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4800 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4801 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4803 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4804 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4805 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4806 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4808 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4809 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4810 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4811 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4813 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4814 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4815 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4816 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4818 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4819 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4820 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4821 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4823 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4824 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4825 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4826 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4828 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4829 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4830 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4831 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4833 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4834 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4835 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4836 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4838 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4839 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4840 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4841 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4843 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4844 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4845 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4846 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4848 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4849 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4850 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4851 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4853 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4854 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4855 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4856 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4858 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4859 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4860 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4861 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4863 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 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, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4868 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 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, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4873 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4874 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4875 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4876 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4878 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4879 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4880 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4881 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4883 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4884 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4885 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4886 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4888 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4889 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4890 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4891 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4893 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4894 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4895 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4896 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4898 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4899 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4900 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4901 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4903 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4904 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4905 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4906 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4908 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4909 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4910 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4911 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4913 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4914 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4915 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4916 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4918 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4919 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4920 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4921 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4923 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4924 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4925 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4926 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4928 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4929 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4930 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4931 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4933 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4934 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4935 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4936 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4938 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4939 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4940 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4941 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4943 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4944 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4945 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4946 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4948 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4949 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4950 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4951 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4953 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4954 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4955 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4956 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4958 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4959 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4960 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4961 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4963 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4964 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4965 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4966 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4968 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4969 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4970 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4971 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4973 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4974 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4975 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4976 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4978 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4979 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4980 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4981 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4983 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4984 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4985 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4986 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4988 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4989 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4990 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4991 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4993 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4994 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4995 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4996 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4998 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4999 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5000 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5001 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5003 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5004 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5005 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5006 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5008 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5009 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5010 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5011 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5013 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5014 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5015 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5016 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5018 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5019 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5020 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5021 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5023 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5024 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5025 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5026 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5028 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5029 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5030 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5031 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5033 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5034 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5035 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5036 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5038 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5039 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5040 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5041 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5043 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5044 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5045 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5046 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5048 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5049 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5050 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5051 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5053 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5054 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5055 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5056 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5058 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5059 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5060 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5061 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5063 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5064 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5065 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5066 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5068 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5069 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5070 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5071 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5073 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 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, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5078 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 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, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5083 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5084 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5085 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5086 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5088 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5089 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5090 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5091 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5093 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5094 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5095 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5096 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5098 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 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, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5103 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5104 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5105 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5106 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5108 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5109 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5110 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5111 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5113 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5114 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5115 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5116 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5118 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5119 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5120 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5121 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5123 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5124 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5125 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5126 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5128 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5129 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5130 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5131 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5133 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 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, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5138 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5139 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5140 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5141 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5143 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5144 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5145 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5146 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5148 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5149 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5150 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5151 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5153 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5154 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5155 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5156 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5158 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5159 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5160 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5161 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5163 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5164 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5165 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5166 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5168 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 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, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5173 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 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, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5178 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5179 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5180 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5181 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5183 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5184 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5185 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5186 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5188 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5189 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5190 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5191 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5193 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5194 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5195 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5196 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5198 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5199 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5200 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5201 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5203 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5204 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5205 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5206 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5208 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5209 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5210 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5211 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5213 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 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, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5218 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 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, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5223 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 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, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5228 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5229 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5230 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5231 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5233 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5234 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5235 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5236 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5238 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5239 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5240 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5241 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5243 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5244 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5245 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5246 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5248 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5249 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5250 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5251 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5253 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5254 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5255 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5256 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5258 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5259 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5260 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5261 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5263 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5264 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5265 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5266 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5268 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5269 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5270 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5271 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5273 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5274 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5275 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5276 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5278 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5279 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5280 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5281 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5283 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5284 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5285 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5286 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5288 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5289 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5290 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5291 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5293 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5294 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5295 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5296 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5299 static struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5301 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5302 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5303 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5308 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5309 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5310 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5315 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5316 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5317 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5322 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5323 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5324 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5329 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5330 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5331 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5336 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5337 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5338 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5343 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5344 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5345 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5350 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5351 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5352 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5357 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5358 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5359 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5364 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5365 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5366 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5371 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5372 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5373 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5378 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5379 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5380 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5385 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5386 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5387 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5392 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5393 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5394 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5399 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5400 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5401 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5406 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5407 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5408 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5413 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5414 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5415 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5420 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5421 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5422 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5427 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5428 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5429 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5434 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5435 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5436 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5441 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5442 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5443 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5448 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5449 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5450 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5455 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5456 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5457 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5462 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5463 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5464 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5469 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5470 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5471 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5476 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5477 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5478 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5483 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5484 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5485 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5490 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5491 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5492 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5497 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5498 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5499 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5504 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5505 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5506 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5511 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5512 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5513 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5518 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5519 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5520 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5525 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5526 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5527 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5532 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5533 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5534 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5539 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5540 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5541 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5546 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5547 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5548 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5553 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5554 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5555 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5560 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5561 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5562 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5567 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5568 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5569 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5574 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5575 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5576 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5581 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5582 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5583 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5588 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5589 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5590 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5595 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5596 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5597 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5602 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5603 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5604 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5609 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5610 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5611 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5616 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5617 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5618 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5623 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5624 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5625 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5630 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5631 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5632 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5637 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5638 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5639 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5644 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5645 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5646 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5651 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5652 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5653 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5658 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5659 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5660 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5665 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5666 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5667 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5672 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5673 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5674 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5679 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5680 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5681 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5686 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5687 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5688 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5693 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5694 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5695 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5700 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5701 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5702 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5707 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5708 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5709 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5714 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5715 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5716 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5721 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5722 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5723 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5728 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5729 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5730 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5735 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5736 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5737 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5742 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5743 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5744 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5749 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5750 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5751 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5756 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5757 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5758 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5763 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5764 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5765 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5770 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5771 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5772 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5777 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5778 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5779 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5784 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5785 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5786 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5791 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5792 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5793 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5798 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5799 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5800 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5805 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5806 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5807 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5812 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5813 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5814 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5819 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5820 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5821 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5826 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5827 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5828 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5833 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5834 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5835 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5840 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5841 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5842 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5847 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5848 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5849 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5854 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5855 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5856 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5861 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5862 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5863 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5868 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5869 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5870 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5875 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5876 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5877 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5882 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5883 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5884 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5889 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5890 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5891 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5896 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5897 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5898 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5903 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5904 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5905 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5910 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5911 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5912 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5917 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5918 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5919 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5924 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5925 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5926 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5931 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5932 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5933 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5938 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5939 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5940 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5945 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5946 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5947 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5952 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5953 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5954 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5959 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5960 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5961 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5966 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5967 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5968 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5973 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5974 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5975 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5980 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5981 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5982 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5987 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5988 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5989 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5994 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5995 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5996 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6001 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6002 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6003 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6008 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6009 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6010 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6015 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6016 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6017 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6022 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6023 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6024 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6029 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6030 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6031 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6036 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6037 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6038 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6043 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6044 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6045 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6050 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6051 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6052 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6057 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6058 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6059 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6064 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6065 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6066 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6071 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6072 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6073 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6078 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6079 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6080 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6085 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6086 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6087 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6092 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6093 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6094 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6099 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6100 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6101 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6106 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6107 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6108 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6113 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6114 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6115 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6120 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6121 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6122 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6127 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6128 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6129 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6134 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6135 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6136 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6141 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6142 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6143 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6148 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6149 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6150 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6155 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6156 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6157 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6162 static struct chan_info_nphy_radio2057_rev5 chan_info_nphyrev8_2057_rev5[] = {
6164 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6165 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6166 0x043a, 0x043f, 0x0443},
6168 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6169 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6170 0x0438, 0x043d, 0x0441},
6172 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6173 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6174 0x0436, 0x043a, 0x043f},
6176 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6177 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6178 0x0434, 0x0438, 0x043d},
6180 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6181 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6182 0x0431, 0x0436, 0x043a},
6184 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6185 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6186 0x042f, 0x0434, 0x0438},
6188 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6189 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6190 0x042d, 0x0431, 0x0436},
6192 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6193 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6194 0x042b, 0x042f, 0x0434},
6196 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6197 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6198 0x0429, 0x042d, 0x0431},
6200 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6201 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6202 0x0427, 0x042b, 0x042f},
6204 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6205 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6206 0x0424, 0x0429, 0x042d},
6208 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6209 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6210 0x0422, 0x0427, 0x042b},
6212 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6213 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6214 0x0420, 0x0424, 0x0429},
6216 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6217 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6218 0x041b, 0x041f, 0x0424}
6221 static struct chan_info_nphy_radio2057_rev5 chan_info_nphyrev9_2057_rev5v1[] = {
6223 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6224 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6225 0x043a, 0x043f, 0x0443},
6227 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6228 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6229 0x0438, 0x043d, 0x0441},
6231 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6232 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6233 0x0436, 0x043a, 0x043f},
6235 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6236 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6237 0x0434, 0x0438, 0x043d},
6239 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6240 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6241 0x0431, 0x0436, 0x043a},
6243 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6244 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6245 0x042f, 0x0434, 0x0438},
6247 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6248 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6249 0x042d, 0x0431, 0x0436},
6251 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6252 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6253 0x042b, 0x042f, 0x0434},
6255 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6256 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6257 0x0429, 0x042d, 0x0431},
6259 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6260 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6261 0x0427, 0x042b, 0x042f},
6263 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6264 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6265 0x0424, 0x0429, 0x042d},
6267 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6268 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6269 0x0422, 0x0427, 0x042b},
6271 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6272 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6273 0x0420, 0x0424, 0x0429},
6275 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6276 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6277 0x041b, 0x041f, 0x0424}
6280 static struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6282 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6283 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6284 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6288 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6289 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6290 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6294 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6295 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6296 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6300 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6301 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6302 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6306 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6307 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6308 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6312 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6313 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6314 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6318 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6319 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6320 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6324 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6325 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6326 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6330 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6332 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6336 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6337 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6338 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6342 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6343 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6344 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6348 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6349 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6350 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6354 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6355 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6356 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6360 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6361 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6362 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6366 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6367 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6368 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6372 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6373 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6374 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6378 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6379 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6380 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6384 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6385 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6386 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6390 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6391 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6392 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6396 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6397 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6398 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6402 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6403 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6404 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6408 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6409 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6410 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6414 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6415 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6416 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6420 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6421 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6422 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6426 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6427 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6428 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6432 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6433 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6434 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6438 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6439 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6440 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6444 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6445 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6446 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6450 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6451 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6452 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6456 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6457 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6458 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6462 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6463 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6464 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6468 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6469 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6470 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6474 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6475 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6476 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6480 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6481 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6482 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6486 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6487 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6488 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6492 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6493 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6494 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6498 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6499 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6500 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6504 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6505 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6506 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6510 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6511 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6512 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6516 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6517 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6518 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6522 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6523 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6524 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6528 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6529 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6530 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6534 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6535 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6536 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6540 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6541 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6542 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6546 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6547 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6548 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6552 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6553 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6554 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6558 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6559 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6560 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6564 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6565 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6566 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6570 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6571 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6572 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6576 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6577 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6578 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6582 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6583 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6584 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6588 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6589 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6590 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6594 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6595 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6596 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6600 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6601 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6602 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6606 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6607 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6608 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6612 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6613 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6614 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6618 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6619 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6620 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6624 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6625 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6626 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6630 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6631 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6632 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6636 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6637 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6638 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6642 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6643 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6644 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6648 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6649 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6650 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6654 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6655 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6656 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6660 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6661 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6662 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6666 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6667 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6668 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6672 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6673 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6674 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6678 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6679 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6680 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6684 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6685 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6686 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6690 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6691 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6692 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6696 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6697 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6698 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6702 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6703 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6704 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6708 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6709 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6710 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6714 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6715 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6716 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6720 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6721 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6722 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6726 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6727 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6728 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6732 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6733 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6734 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6738 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6739 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6740 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6744 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6745 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6746 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6750 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6751 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6752 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6756 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6757 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6758 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6762 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6763 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6764 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6768 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6769 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6770 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6774 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6775 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6776 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6780 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6781 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6782 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6786 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6787 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6788 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6792 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6793 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6794 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6798 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6799 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6800 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6804 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6805 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6806 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6810 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6811 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6812 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6816 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6817 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6818 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6822 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6823 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6824 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6828 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6829 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6830 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6834 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6835 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6836 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6840 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6841 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6842 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6846 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6847 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6848 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6852 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6853 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6854 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6858 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6859 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6860 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6864 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6865 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6866 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6870 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6871 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6872 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6876 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6877 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6878 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6882 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6883 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6884 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6888 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6889 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6890 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6894 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6895 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6896 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6900 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6901 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6902 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6906 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6907 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6908 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6912 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6913 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6914 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6918 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6919 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6920 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6924 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6925 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6926 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6930 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6931 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6932 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6936 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6937 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6938 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6942 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6943 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6944 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6948 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6949 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6950 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6954 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6955 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6956 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6960 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6961 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6962 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6966 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6967 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6968 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6972 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6973 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6974 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6978 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6979 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6980 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6984 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6985 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6986 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6990 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6991 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6992 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6996 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6997 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6998 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7002 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7003 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7004 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7008 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7009 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7010 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7014 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7015 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7016 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7021 static struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7023 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7024 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7025 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7029 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7030 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7031 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7035 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7036 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7037 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7041 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7042 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7043 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7047 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7048 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7049 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7053 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7054 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7055 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7059 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7060 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7061 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7065 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7066 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7067 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7071 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7072 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7073 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7077 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7078 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7079 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7083 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7084 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7085 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7089 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7090 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7091 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7095 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7096 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7097 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7101 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7102 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7103 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7107 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7108 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7109 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7113 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7114 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7115 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7119 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7120 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7121 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7125 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7126 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7127 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7131 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7132 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7133 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7137 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7138 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7139 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7143 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7144 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7145 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7149 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7150 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7151 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7155 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7156 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7157 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7161 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7162 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7163 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7167 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7168 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7169 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7173 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7174 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7175 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7179 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7180 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7181 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7185 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7186 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7187 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7191 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7192 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7193 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7197 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7198 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7199 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7203 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7204 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7205 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7209 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7210 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7211 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7215 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7216 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7217 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7221 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7222 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7223 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7227 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7228 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7229 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7233 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7234 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7235 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7239 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7240 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7241 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7245 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7246 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7247 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7251 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7252 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7253 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7257 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7258 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7259 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7263 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7264 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7265 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7269 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7270 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7271 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7275 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7276 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7277 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7281 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7282 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7283 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7287 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7288 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7289 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7293 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7294 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7295 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7299 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7300 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7301 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7305 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7306 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7307 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7311 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7312 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7313 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7317 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7318 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7319 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7323 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7324 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7325 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7329 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7330 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7331 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7335 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7336 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7337 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7341 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7342 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7343 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7347 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7348 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7349 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7353 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7354 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7355 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7359 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7360 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7361 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7365 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7366 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7367 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7371 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7372 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7373 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7377 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7378 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7379 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7383 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7384 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7385 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7389 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7390 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7391 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7395 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7396 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7397 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7401 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7402 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7403 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7407 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7408 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7409 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7413 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7414 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7415 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7419 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7420 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7421 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7425 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7426 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7427 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7431 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7432 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7433 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7437 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7438 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7439 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7443 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7444 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7445 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7449 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7450 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7451 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7455 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7456 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7457 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7461 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7462 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7463 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7467 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7468 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7469 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7473 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7474 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7475 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7479 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7480 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7481 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7485 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7486 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7487 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7491 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7492 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7493 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7497 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7498 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7499 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7503 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7504 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7505 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7509 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7510 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7511 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7515 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7516 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7517 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7521 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7522 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7523 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7527 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7528 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7529 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7533 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7534 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7535 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7539 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7540 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7541 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7545 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7546 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7547 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7551 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7552 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7553 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7557 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7558 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7559 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7563 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7564 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7565 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7569 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7570 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7571 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7575 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7576 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7577 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7581 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7582 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7583 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7587 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7588 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7589 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7593 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7594 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7595 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7599 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7600 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7601 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7605 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7606 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7607 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7611 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7612 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7613 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7617 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7618 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7619 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7623 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7624 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7625 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7629 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7630 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7631 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7635 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7636 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7637 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7641 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7642 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7643 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7647 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7648 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7649 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7653 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7654 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7655 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7659 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7660 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7661 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7665 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7666 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7667 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7671 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7672 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7673 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7677 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7678 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7679 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7683 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7684 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7685 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7689 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7690 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7691 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7695 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7696 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7697 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7701 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7702 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7703 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7707 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7708 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7709 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7713 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7714 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7715 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7719 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7720 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7721 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7725 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7726 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7727 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7731 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7732 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7733 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7737 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7738 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7739 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7743 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7744 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7745 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7749 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7750 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7751 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7756 struct radio_regs regs_2055[] = {
7757 {0x02, 0x80, 0x80, 0, 0},
7759 {0x04, 0x27, 0x27, 0, 0},
7761 {0x06, 0x27, 0x27, 0, 0},
7762 {0x07, 0x7f, 0x7f, 1, 1},
7763 {0x08, 0x7, 0x7, 1, 1},
7764 {0x09, 0x7f, 0x7f, 1, 1},
7765 {0x0A, 0x7, 0x7, 1, 1},
7766 {0x0B, 0x15, 0x15, 0, 0},
7767 {0x0C, 0x15, 0x15, 0, 0},
7768 {0x0D, 0x4f, 0x4f, 1, 1},
7769 {0x0E, 0x5, 0x5, 1, 1},
7770 {0x0F, 0x4f, 0x4f, 1, 1},
7771 {0x10, 0x5, 0x5, 1, 1},
7772 {0x11, 0xd0, 0xd0, 0, 0},
7773 {0x12, 0x2, 0x2, 0, 0},
7775 {0x14, 0x40, 0x40, 0, 0},
7784 {0x1D, 0xc0, 0xc0, 0, 0},
7785 {0x1E, 0xff, 0xff, 0, 0},
7786 {0x1F, 0xc0, 0xc0, 0, 0},
7787 {0x20, 0xff, 0xff, 0, 0},
7788 {0x21, 0xc0, 0xc0, 0, 0},
7790 {0x23, 0x2c, 0x2c, 0, 0},
7800 {0x2D, 0xa4, 0xa4, 0, 0},
7801 {0x2E, 0x38, 0x38, 0, 0},
7803 {0x30, 0x4, 0x4, 1, 1},
7805 {0x32, 0xa, 0xa, 0, 0},
7806 {0x33, 0x87, 0x87, 0, 0},
7807 {0x34, 0x9, 0x9, 0, 0},
7808 {0x35, 0x70, 0x70, 0, 0},
7809 {0x36, 0x11, 0x11, 0, 0},
7810 {0x37, 0x18, 0x18, 1, 1},
7811 {0x38, 0x6, 0x6, 0, 0},
7812 {0x39, 0x4, 0x4, 1, 1},
7813 {0x3A, 0x6, 0x6, 0, 0},
7814 {0x3B, 0x9e, 0x9e, 0, 0},
7815 {0x3C, 0x9, 0x9, 0, 0},
7816 {0x3D, 0xc8, 0xc8, 1, 1},
7817 {0x3E, 0x88, 0x88, 0, 0},
7821 {0x42, 0x1, 0x1, 0, 0},
7822 {0x43, 0x2, 0x2, 0, 0},
7823 {0x44, 0x96, 0x96, 0, 0},
7824 {0x45, 0x3e, 0x3e, 0, 0},
7825 {0x46, 0x3e, 0x3e, 0, 0},
7826 {0x47, 0x13, 0x13, 0, 0},
7827 {0x48, 0x2, 0x2, 0, 0},
7828 {0x49, 0x15, 0x15, 0, 0},
7829 {0x4A, 0x7, 0x7, 0, 0},
7835 {0x50, 0x8, 0x8, 0, 0},
7836 {0x51, 0x8, 0x8, 0, 0},
7837 {0x52, 0x6, 0x6, 0, 0},
7838 {0x53, 0x84, 0x84, 1, 1},
7839 {0x54, 0xc3, 0xc3, 0, 0},
7840 {0x55, 0x8f, 0x8f, 0, 0},
7841 {0x56, 0xff, 0xff, 0, 0},
7842 {0x57, 0xff, 0xff, 0, 0},
7843 {0x58, 0x88, 0x88, 0, 0},
7844 {0x59, 0x88, 0x88, 0, 0},
7846 {0x5B, 0xcc, 0xcc, 0, 0},
7847 {0x5C, 0x6, 0x6, 0, 0},
7848 {0x5D, 0x80, 0x80, 0, 0},
7849 {0x5E, 0x80, 0x80, 0, 0},
7850 {0x5F, 0xf8, 0xf8, 0, 0},
7851 {0x60, 0x88, 0x88, 0, 0},
7852 {0x61, 0x88, 0x88, 0, 0},
7853 {0x62, 0x88, 0x8, 1, 1},
7854 {0x63, 0x88, 0x88, 0, 0},
7856 {0x65, 0x1, 0x1, 1, 1},
7857 {0x66, 0x8a, 0x8a, 0, 0},
7858 {0x67, 0x8, 0x8, 0, 0},
7859 {0x68, 0x83, 0x83, 0, 0},
7860 {0x69, 0x6, 0x6, 0, 0},
7861 {0x6A, 0xa0, 0xa0, 0, 0},
7862 {0x6B, 0xa, 0xa, 0, 0},
7863 {0x6C, 0x87, 0x87, 1, 1},
7864 {0x6D, 0x2a, 0x2a, 0, 0},
7865 {0x6E, 0x2a, 0x2a, 0, 0},
7866 {0x6F, 0x2a, 0x2a, 0, 0},
7867 {0x70, 0x2a, 0x2a, 0, 0},
7868 {0x71, 0x18, 0x18, 0, 0},
7869 {0x72, 0x6a, 0x6a, 1, 1},
7870 {0x73, 0xab, 0xab, 1, 1},
7871 {0x74, 0x13, 0x13, 1, 1},
7872 {0x75, 0xc1, 0xc1, 1, 1},
7873 {0x76, 0xaa, 0xaa, 1, 1},
7874 {0x77, 0x87, 0x87, 1, 1},
7876 {0x79, 0x6, 0x6, 0, 0},
7877 {0x7A, 0x7, 0x7, 0, 0},
7878 {0x7B, 0x7, 0x7, 0, 0},
7879 {0x7C, 0x15, 0x15, 0, 0},
7880 {0x7D, 0x55, 0x55, 0, 0},
7881 {0x7E, 0x97, 0x97, 1, 1},
7882 {0x7F, 0x8, 0x8, 0, 0},
7883 {0x80, 0x14, 0x14, 1, 1},
7884 {0x81, 0x33, 0x33, 0, 0},
7885 {0x82, 0x88, 0x88, 0, 0},
7886 {0x83, 0x6, 0x6, 0, 0},
7887 {0x84, 0x3, 0x3, 1, 1},
7888 {0x85, 0xa, 0xa, 0, 0},
7889 {0x86, 0x3, 0x3, 1, 1},
7890 {0x87, 0x2a, 0x2a, 0, 0},
7891 {0x88, 0xa4, 0xa4, 0, 0},
7892 {0x89, 0x18, 0x18, 0, 0},
7893 {0x8A, 0x28, 0x28, 0, 0},
7895 {0x8C, 0x4a, 0x4a, 0, 0},
7897 {0x8E, 0xf8, 0xf8, 0, 0},
7898 {0x8F, 0x88, 0x88, 0, 0},
7899 {0x90, 0x88, 0x88, 0, 0},
7900 {0x91, 0x88, 0x8, 1, 1},
7901 {0x92, 0x88, 0x88, 0, 0},
7903 {0x94, 0x1, 0x1, 1, 1},
7904 {0x95, 0x8a, 0x8a, 0, 0},
7905 {0x96, 0x8, 0x8, 0, 0},
7906 {0x97, 0x83, 0x83, 0, 0},
7907 {0x98, 0x6, 0x6, 0, 0},
7908 {0x99, 0xa0, 0xa0, 0, 0},
7909 {0x9A, 0xa, 0xa, 0, 0},
7910 {0x9B, 0x87, 0x87, 1, 1},
7911 {0x9C, 0x2a, 0x2a, 0, 0},
7912 {0x9D, 0x2a, 0x2a, 0, 0},
7913 {0x9E, 0x2a, 0x2a, 0, 0},
7914 {0x9F, 0x2a, 0x2a, 0, 0},
7915 {0xA0, 0x18, 0x18, 0, 0},
7916 {0xA1, 0x6a, 0x6a, 1, 1},
7917 {0xA2, 0xab, 0xab, 1, 1},
7918 {0xA3, 0x13, 0x13, 1, 1},
7919 {0xA4, 0xc1, 0xc1, 1, 1},
7920 {0xA5, 0xaa, 0xaa, 1, 1},
7921 {0xA6, 0x87, 0x87, 1, 1},
7923 {0xA8, 0x6, 0x6, 0, 0},
7924 {0xA9, 0x7, 0x7, 0, 0},
7925 {0xAA, 0x7, 0x7, 0, 0},
7926 {0xAB, 0x15, 0x15, 0, 0},
7927 {0xAC, 0x55, 0x55, 0, 0},
7928 {0xAD, 0x97, 0x97, 1, 1},
7929 {0xAE, 0x8, 0x8, 0, 0},
7930 {0xAF, 0x14, 0x14, 1, 1},
7931 {0xB0, 0x33, 0x33, 0, 0},
7932 {0xB1, 0x88, 0x88, 0, 0},
7933 {0xB2, 0x6, 0x6, 0, 0},
7934 {0xB3, 0x3, 0x3, 1, 1},
7935 {0xB4, 0xa, 0xa, 0, 0},
7936 {0xB5, 0x3, 0x3, 1, 1},
7937 {0xB6, 0x2a, 0x2a, 0, 0},
7938 {0xB7, 0xa4, 0xa4, 0, 0},
7939 {0xB8, 0x18, 0x18, 0, 0},
7940 {0xB9, 0x28, 0x28, 0, 0},
7942 {0xBB, 0x4a, 0x4a, 0, 0},
7944 {0xBD, 0x71, 0x71, 0, 0},
7945 {0xBE, 0x72, 0x72, 0, 0},
7946 {0xBF, 0x73, 0x73, 0, 0},
7947 {0xC0, 0x74, 0x74, 0, 0},
7948 {0xC1, 0x75, 0x75, 0, 0},
7949 {0xC2, 0x76, 0x76, 0, 0},
7950 {0xC3, 0x77, 0x77, 0, 0},
7951 {0xC4, 0x78, 0x78, 0, 0},
7952 {0xC5, 0x79, 0x79, 0, 0},
7953 {0xC6, 0x7a, 0x7a, 0, 0},
7961 {0xCE, 0x6, 0x6, 0, 0},
7964 {0xD1, 0x18, 0x18, 0, 0},
7965 {0xD2, 0x88, 0x88, 0, 0},
7973 {0xDA, 0x6, 0x6, 0, 0},
7976 {0xDD, 0x18, 0x18, 0, 0},
7977 {0xDE, 0x88, 0x88, 0, 0},
7982 {0xFFFF, 0, 0, 0, 0},
7985 struct radio_regs regs_SYN_2056[] = {
7993 {0x09, 0x1, 0x1, 0, 0},
8018 {0x22, 0x60, 0x60, 0, 0},
8019 {0x23, 0x6, 0x6, 0, 0},
8020 {0x24, 0xc, 0xc, 0, 0},
8024 {0x28, 0x1, 0x1, 0, 0},
8030 {0x2E, 0xd, 0xd, 0, 0},
8031 {0x2F, 0x1f, 0x1f, 0, 0},
8032 {0x30, 0x15, 0x15, 0, 0},
8033 {0x31, 0xf, 0xf, 0, 0},
8044 {0x3C, 0x13, 0x13, 0, 0},
8045 {0x3D, 0xf, 0xf, 0, 0},
8046 {0x3E, 0x18, 0x18, 0, 0},
8049 {0x41, 0x20, 0x20, 0, 0},
8050 {0x42, 0x20, 0x20, 0, 0},
8052 {0x44, 0x77, 0x77, 0, 0},
8053 {0x45, 0x7, 0x7, 0, 0},
8054 {0x46, 0x1, 0x1, 0, 0},
8055 {0x47, 0x4, 0x4, 0, 0},
8056 {0x48, 0xf, 0xf, 0, 0},
8057 {0x49, 0x30, 0x30, 0, 0},
8058 {0x4A, 0x32, 0x32, 0, 0},
8059 {0x4B, 0xd, 0xd, 0, 0},
8060 {0x4C, 0xd, 0xd, 0, 0},
8061 {0x4D, 0x4, 0x4, 0, 0},
8062 {0x4E, 0x6, 0x6, 0, 0},
8063 {0x4F, 0x1, 0x1, 0, 0},
8064 {0x50, 0x1c, 0x1c, 0, 0},
8065 {0x51, 0x2, 0x2, 0, 0},
8066 {0x52, 0x2, 0x2, 0, 0},
8067 {0x53, 0xf7, 0xf7, 1, 1},
8068 {0x54, 0xb4, 0xb4, 0, 0},
8069 {0x55, 0xd2, 0xd2, 0, 0},
8072 {0x58, 0x4, 0x4, 0, 0},
8073 {0x59, 0x96, 0x96, 0, 0},
8074 {0x5A, 0x3e, 0x3e, 0, 0},
8075 {0x5B, 0x3e, 0x3e, 0, 0},
8076 {0x5C, 0x13, 0x13, 0, 0},
8077 {0x5D, 0x2, 0x2, 0, 0},
8079 {0x5F, 0x7, 0x7, 0, 0},
8080 {0x60, 0x7, 0x7, 1, 1},
8081 {0x61, 0x8, 0x8, 0, 0},
8082 {0x62, 0x3, 0x3, 0, 0},
8088 {0x68, 0x40, 0x40, 0, 0},
8093 {0x6D, 0x1, 0x1, 0, 0},
8096 {0x70, 0x60, 0x60, 0, 0},
8097 {0x71, 0x66, 0x66, 0, 0},
8098 {0x72, 0xc, 0xc, 0, 0},
8099 {0x73, 0x66, 0x66, 0, 0},
8100 {0x74, 0x8f, 0x8f, 1, 1},
8102 {0x76, 0xcc, 0xcc, 0, 0},
8103 {0x77, 0x1, 0x1, 0, 0},
8104 {0x78, 0x66, 0x66, 0, 0},
8105 {0x79, 0x66, 0x66, 0, 0},
8117 {0x85, 0xff, 0xff, 0, 0},
8143 {0x9F, 0x6, 0x6, 0, 0},
8144 {0xA0, 0x66, 0x66, 0, 0},
8145 {0xA1, 0x66, 0x66, 0, 0},
8146 {0xA2, 0x66, 0x66, 0, 0},
8147 {0xA3, 0x66, 0x66, 0, 0},
8148 {0xA4, 0x66, 0x66, 0, 0},
8149 {0xA5, 0x66, 0x66, 0, 0},
8150 {0xA6, 0x66, 0x66, 0, 0},
8151 {0xA7, 0x66, 0x66, 0, 0},
8152 {0xA8, 0x66, 0x66, 0, 0},
8153 {0xA9, 0x66, 0x66, 0, 0},
8154 {0xAA, 0x66, 0x66, 0, 0},
8155 {0xAB, 0x66, 0x66, 0, 0},
8156 {0xAC, 0x66, 0x66, 0, 0},
8157 {0xAD, 0x66, 0x66, 0, 0},
8158 {0xAE, 0x66, 0x66, 0, 0},
8159 {0xAF, 0x66, 0x66, 0, 0},
8160 {0xB0, 0x66, 0x66, 0, 0},
8161 {0xB1, 0x66, 0x66, 0, 0},
8162 {0xB2, 0x66, 0x66, 0, 0},
8163 {0xB3, 0xa, 0xa, 0, 0},
8167 {0xFFFF, 0, 0, 0, 0}
8170 struct radio_regs regs_TX_2056[] = {
8202 {0x21, 0x88, 0x88, 0, 0},
8203 {0x22, 0x88, 0x88, 0, 0},
8204 {0x23, 0x88, 0x88, 0, 0},
8205 {0x24, 0x88, 0x88, 0, 0},
8206 {0x25, 0xc, 0xc, 0, 0},
8208 {0x27, 0x3, 0x3, 0, 0},
8210 {0x29, 0x3, 0x3, 0, 0},
8211 {0x2A, 0x37, 0x37, 0, 0},
8212 {0x2B, 0x3, 0x3, 0, 0},
8215 {0x2E, 0x1, 0x1, 0, 0},
8216 {0x2F, 0x1, 0x1, 0, 0},
8220 {0x33, 0x11, 0x11, 0, 0},
8221 {0x34, 0x11, 0x11, 0, 0},
8224 {0x37, 0x3, 0x3, 0, 0},
8225 {0x38, 0xf, 0xf, 0, 0},
8227 {0x3A, 0x2d, 0x2d, 0, 0},
8229 {0x3C, 0x6e, 0x6e, 0, 0},
8230 {0x3D, 0xf0, 0xf0, 1, 1},
8234 {0x41, 0x3, 0x3, 0, 0},
8235 {0x42, 0x3, 0x3, 0, 0},
8237 {0x44, 0x1e, 0x1e, 0, 0},
8239 {0x46, 0x6e, 0x6e, 0, 0},
8240 {0x47, 0xf0, 0xf0, 1, 1},
8242 {0x49, 0x2, 0x2, 0, 0},
8243 {0x4A, 0xff, 0xff, 1, 1},
8244 {0x4B, 0xc, 0xc, 0, 0},
8246 {0x4D, 0x38, 0x38, 0, 0},
8247 {0x4E, 0x70, 0x70, 1, 1},
8248 {0x4F, 0x2, 0x2, 0, 0},
8249 {0x50, 0x88, 0x88, 0, 0},
8250 {0x51, 0xc, 0xc, 0, 0},
8252 {0x53, 0x8, 0x8, 0, 0},
8253 {0x54, 0x70, 0x70, 1, 1},
8254 {0x55, 0x2, 0x2, 0, 0},
8255 {0x56, 0xff, 0xff, 1, 1},
8257 {0x58, 0x83, 0x83, 0, 0},
8258 {0x59, 0x77, 0x77, 1, 1},
8260 {0x5B, 0x2, 0x2, 0, 0},
8261 {0x5C, 0x88, 0x88, 0, 0},
8263 {0x5E, 0x8, 0x8, 0, 0},
8264 {0x5F, 0x77, 0x77, 1, 1},
8265 {0x60, 0x1, 0x1, 0, 0},
8267 {0x62, 0x7, 0x7, 0, 0},
8269 {0x64, 0x7, 0x7, 0, 0},
8272 {0x67, 0x74, 0x74, 1, 1},
8274 {0x69, 0xa, 0xa, 0, 0},
8282 {0x71, 0x2, 0x2, 0, 0},
8285 {0x74, 0xe, 0xe, 0, 0},
8286 {0x75, 0xe, 0xe, 0, 0},
8287 {0x76, 0xe, 0xe, 0, 0},
8288 {0x77, 0x13, 0x13, 0, 0},
8289 {0x78, 0x13, 0x13, 0, 0},
8290 {0x79, 0x1b, 0x1b, 0, 0},
8291 {0x7A, 0x1b, 0x1b, 0, 0},
8292 {0x7B, 0x55, 0x55, 0, 0},
8293 {0x7C, 0x5b, 0x5b, 0, 0},
8316 {0xFFFF, 0, 0, 0, 0}
8319 struct radio_regs regs_RX_2056[] = {
8350 {0x20, 0x3, 0x3, 0, 0},
8353 {0x23, 0x90, 0x90, 0, 0},
8354 {0x24, 0x55, 0x55, 0, 0},
8355 {0x25, 0x15, 0x15, 0, 0},
8356 {0x26, 0x5, 0x5, 0, 0},
8357 {0x27, 0x15, 0x15, 0, 0},
8358 {0x28, 0x5, 0x5, 0, 0},
8359 {0x29, 0x20, 0x20, 0, 0},
8360 {0x2A, 0x11, 0x11, 0, 0},
8361 {0x2B, 0x90, 0x90, 0, 0},
8363 {0x2D, 0x88, 0x88, 0, 0},
8364 {0x2E, 0x32, 0x32, 0, 0},
8365 {0x2F, 0x77, 0x77, 0, 0},
8366 {0x30, 0x17, 0x17, 1, 1},
8367 {0x31, 0xff, 0xff, 1, 1},
8368 {0x32, 0x20, 0x20, 0, 0},
8370 {0x34, 0x88, 0x88, 0, 0},
8371 {0x35, 0x32, 0x32, 0, 0},
8372 {0x36, 0x77, 0x77, 0, 0},
8373 {0x37, 0x17, 0x17, 1, 1},
8374 {0x38, 0xf0, 0xf0, 1, 1},
8375 {0x39, 0x20, 0x20, 0, 0},
8376 {0x3A, 0x8, 0x8, 0, 0},
8377 {0x3B, 0x99, 0x99, 0, 0},
8379 {0x3D, 0x44, 0x44, 1, 1},
8381 {0x3F, 0x44, 0x44, 0, 0},
8382 {0x40, 0xf, 0xf, 1, 1},
8383 {0x41, 0x6, 0x6, 0, 0},
8384 {0x42, 0x4, 0x4, 0, 0},
8385 {0x43, 0x50, 0x50, 1, 1},
8386 {0x44, 0x8, 0x8, 0, 0},
8387 {0x45, 0x99, 0x99, 0, 0},
8389 {0x47, 0x11, 0x11, 0, 0},
8391 {0x49, 0x44, 0x44, 0, 0},
8392 {0x4A, 0x7, 0x7, 0, 0},
8393 {0x4B, 0x6, 0x6, 0, 0},
8394 {0x4C, 0x4, 0x4, 0, 0},
8397 {0x4F, 0x66, 0x66, 0, 0},
8398 {0x50, 0x66, 0x66, 0, 0},
8399 {0x51, 0x57, 0x57, 0, 0},
8400 {0x52, 0x57, 0x57, 0, 0},
8401 {0x53, 0x44, 0x44, 0, 0},
8404 {0x56, 0x8, 0x8, 0, 0},
8405 {0x57, 0x8, 0x8, 0, 0},
8406 {0x58, 0x7, 0x7, 0, 0},
8407 {0x59, 0x22, 0x22, 0, 0},
8408 {0x5A, 0x22, 0x22, 0, 0},
8409 {0x5B, 0x2, 0x2, 0, 0},
8410 {0x5C, 0x23, 0x23, 0, 0},
8411 {0x5D, 0x7, 0x7, 0, 0},
8412 {0x5E, 0x55, 0x55, 0, 0},
8413 {0x5F, 0x23, 0x23, 0, 0},
8414 {0x60, 0x41, 0x41, 0, 0},
8415 {0x61, 0x1, 0x1, 0, 0},
8416 {0x62, 0xa, 0xa, 0, 0},
8425 {0x6B, 0xc, 0xc, 0, 0},
8432 {0x72, 0x22, 0x22, 0, 0},
8433 {0x73, 0x22, 0x22, 0, 0},
8434 {0x74, 0x2, 0x2, 0, 0},
8435 {0x75, 0xa, 0xa, 0, 0},
8436 {0x76, 0x1, 0x1, 0, 0},
8437 {0x77, 0x22, 0x22, 0, 0},
8438 {0x78, 0x30, 0x30, 0, 0},
8467 {0xFFFF, 0, 0, 0, 0}
8470 struct radio_regs regs_SYN_2056_A1[] = {
8478 {0x09, 0x1, 0x1, 0, 0},
8503 {0x22, 0x60, 0x60, 0, 0},
8504 {0x23, 0x6, 0x6, 0, 0},
8505 {0x24, 0xc, 0xc, 0, 0},
8509 {0x28, 0x1, 0x1, 0, 0},
8515 {0x2E, 0xd, 0xd, 0, 0},
8516 {0x2F, 0x1f, 0x1f, 0, 0},
8517 {0x30, 0x15, 0x15, 0, 0},
8518 {0x31, 0xf, 0xf, 0, 0},
8529 {0x3C, 0x13, 0x13, 0, 0},
8530 {0x3D, 0xf, 0xf, 0, 0},
8531 {0x3E, 0x18, 0x18, 0, 0},
8534 {0x41, 0x20, 0x20, 0, 0},
8535 {0x42, 0x20, 0x20, 0, 0},
8537 {0x44, 0x77, 0x77, 0, 0},
8538 {0x45, 0x7, 0x7, 0, 0},
8539 {0x46, 0x1, 0x1, 0, 0},
8540 {0x47, 0x4, 0x4, 0, 0},
8541 {0x48, 0xf, 0xf, 0, 0},
8542 {0x49, 0x30, 0x30, 0, 0},
8543 {0x4A, 0x32, 0x32, 0, 0},
8544 {0x4B, 0xd, 0xd, 0, 0},
8545 {0x4C, 0xd, 0xd, 0, 0},
8546 {0x4D, 0x4, 0x4, 0, 0},
8547 {0x4E, 0x6, 0x6, 0, 0},
8548 {0x4F, 0x1, 0x1, 0, 0},
8549 {0x50, 0x1c, 0x1c, 0, 0},
8550 {0x51, 0x2, 0x2, 0, 0},
8551 {0x52, 0x2, 0x2, 0, 0},
8552 {0x53, 0xf7, 0xf7, 1, 1},
8553 {0x54, 0xb4, 0xb4, 0, 0},
8554 {0x55, 0xd2, 0xd2, 0, 0},
8557 {0x58, 0x4, 0x4, 0, 0},
8558 {0x59, 0x96, 0x96, 0, 0},
8559 {0x5A, 0x3e, 0x3e, 0, 0},
8560 {0x5B, 0x3e, 0x3e, 0, 0},
8561 {0x5C, 0x13, 0x13, 0, 0},
8562 {0x5D, 0x2, 0x2, 0, 0},
8564 {0x5F, 0x7, 0x7, 0, 0},
8565 {0x60, 0x7, 0x7, 1, 1},
8566 {0x61, 0x8, 0x8, 0, 0},
8567 {0x62, 0x3, 0x3, 0, 0},
8573 {0x68, 0x40, 0x40, 0, 0},
8578 {0x6D, 0x1, 0x1, 0, 0},
8581 {0x70, 0x60, 0x60, 0, 0},
8582 {0x71, 0x66, 0x66, 0, 0},
8583 {0x72, 0xc, 0xc, 0, 0},
8584 {0x73, 0x66, 0x66, 0, 0},
8585 {0x74, 0x8f, 0x8f, 1, 1},
8587 {0x76, 0xcc, 0xcc, 0, 0},
8588 {0x77, 0x1, 0x1, 0, 0},
8589 {0x78, 0x66, 0x66, 0, 0},
8590 {0x79, 0x66, 0x66, 0, 0},
8602 {0x85, 0xff, 0xff, 0, 0},
8628 {0x9F, 0x6, 0x6, 0, 0},
8629 {0xA0, 0x66, 0x66, 0, 0},
8630 {0xA1, 0x66, 0x66, 0, 0},
8631 {0xA2, 0x66, 0x66, 0, 0},
8632 {0xA3, 0x66, 0x66, 0, 0},
8633 {0xA4, 0x66, 0x66, 0, 0},
8634 {0xA5, 0x66, 0x66, 0, 0},
8635 {0xA6, 0x66, 0x66, 0, 0},
8636 {0xA7, 0x66, 0x66, 0, 0},
8637 {0xA8, 0x66, 0x66, 0, 0},
8638 {0xA9, 0x66, 0x66, 0, 0},
8639 {0xAA, 0x66, 0x66, 0, 0},
8640 {0xAB, 0x66, 0x66, 0, 0},
8641 {0xAC, 0x66, 0x66, 0, 0},
8642 {0xAD, 0x66, 0x66, 0, 0},
8643 {0xAE, 0x66, 0x66, 0, 0},
8644 {0xAF, 0x66, 0x66, 0, 0},
8645 {0xB0, 0x66, 0x66, 0, 0},
8646 {0xB1, 0x66, 0x66, 0, 0},
8647 {0xB2, 0x66, 0x66, 0, 0},
8648 {0xB3, 0xa, 0xa, 0, 0},
8652 {0xFFFF, 0, 0, 0, 0}
8655 struct radio_regs regs_TX_2056_A1[] = {
8687 {0x21, 0x88, 0x88, 0, 0},
8688 {0x22, 0x88, 0x88, 0, 0},
8689 {0x23, 0x88, 0x88, 0, 0},
8690 {0x24, 0x88, 0x88, 0, 0},
8691 {0x25, 0xc, 0xc, 0, 0},
8693 {0x27, 0x3, 0x3, 0, 0},
8695 {0x29, 0x3, 0x3, 0, 0},
8696 {0x2A, 0x37, 0x37, 0, 0},
8697 {0x2B, 0x3, 0x3, 0, 0},
8700 {0x2E, 0x1, 0x1, 0, 0},
8701 {0x2F, 0x1, 0x1, 0, 0},
8705 {0x33, 0x11, 0x11, 0, 0},
8706 {0x34, 0x11, 0x11, 0, 0},
8709 {0x37, 0x3, 0x3, 0, 0},
8710 {0x38, 0xf, 0xf, 0, 0},
8712 {0x3A, 0x2d, 0x2d, 0, 0},
8714 {0x3C, 0x6e, 0x6e, 0, 0},
8715 {0x3D, 0xf0, 0xf0, 1, 1},
8719 {0x41, 0x3, 0x3, 0, 0},
8720 {0x42, 0x3, 0x3, 0, 0},
8722 {0x44, 0x1e, 0x1e, 0, 0},
8724 {0x46, 0x6e, 0x6e, 0, 0},
8725 {0x47, 0xf0, 0xf0, 1, 1},
8727 {0x49, 0x2, 0x2, 0, 0},
8728 {0x4A, 0xff, 0xff, 1, 1},
8729 {0x4B, 0xc, 0xc, 0, 0},
8731 {0x4D, 0x38, 0x38, 0, 0},
8732 {0x4E, 0x70, 0x70, 1, 1},
8733 {0x4F, 0x2, 0x2, 0, 0},
8734 {0x50, 0x88, 0x88, 0, 0},
8735 {0x51, 0xc, 0xc, 0, 0},
8737 {0x53, 0x8, 0x8, 0, 0},
8738 {0x54, 0x70, 0x70, 1, 1},
8739 {0x55, 0x2, 0x2, 0, 0},
8740 {0x56, 0xff, 0xff, 1, 1},
8742 {0x58, 0x83, 0x83, 0, 0},
8743 {0x59, 0x77, 0x77, 1, 1},
8745 {0x5B, 0x2, 0x2, 0, 0},
8746 {0x5C, 0x88, 0x88, 0, 0},
8748 {0x5E, 0x8, 0x8, 0, 0},
8749 {0x5F, 0x77, 0x77, 1, 1},
8750 {0x60, 0x1, 0x1, 0, 0},
8752 {0x62, 0x7, 0x7, 0, 0},
8754 {0x64, 0x7, 0x7, 0, 0},
8757 {0x67, 0x72, 0x72, 1, 1},
8759 {0x69, 0xa, 0xa, 0, 0},
8767 {0x71, 0x2, 0x2, 0, 0},
8770 {0x74, 0xe, 0xe, 0, 0},
8771 {0x75, 0xe, 0xe, 0, 0},
8772 {0x76, 0xe, 0xe, 0, 0},
8773 {0x77, 0x13, 0x13, 0, 0},
8774 {0x78, 0x13, 0x13, 0, 0},
8775 {0x79, 0x1b, 0x1b, 0, 0},
8776 {0x7A, 0x1b, 0x1b, 0, 0},
8777 {0x7B, 0x55, 0x55, 0, 0},
8778 {0x7C, 0x5b, 0x5b, 0, 0},
8801 {0xFFFF, 0, 0, 0, 0}
8804 struct radio_regs regs_RX_2056_A1[] = {
8835 {0x20, 0x3, 0x3, 0, 0},
8838 {0x23, 0x90, 0x90, 0, 0},
8839 {0x24, 0x55, 0x55, 0, 0},
8840 {0x25, 0x15, 0x15, 0, 0},
8841 {0x26, 0x5, 0x5, 0, 0},
8842 {0x27, 0x15, 0x15, 0, 0},
8843 {0x28, 0x5, 0x5, 0, 0},
8844 {0x29, 0x20, 0x20, 0, 0},
8845 {0x2A, 0x11, 0x11, 0, 0},
8846 {0x2B, 0x90, 0x90, 0, 0},
8848 {0x2D, 0x88, 0x88, 0, 0},
8849 {0x2E, 0x32, 0x32, 0, 0},
8850 {0x2F, 0x77, 0x77, 0, 0},
8851 {0x30, 0x17, 0x17, 1, 1},
8852 {0x31, 0xff, 0xff, 1, 1},
8853 {0x32, 0x20, 0x20, 0, 0},
8855 {0x34, 0x88, 0x88, 0, 0},
8856 {0x35, 0x32, 0x32, 0, 0},
8857 {0x36, 0x77, 0x77, 0, 0},
8858 {0x37, 0x17, 0x17, 1, 1},
8859 {0x38, 0xf0, 0xf0, 1, 1},
8860 {0x39, 0x20, 0x20, 0, 0},
8861 {0x3A, 0x8, 0x8, 0, 0},
8862 {0x3B, 0x55, 0x55, 1, 1},
8864 {0x3D, 0x44, 0x44, 1, 1},
8866 {0x3F, 0x44, 0x44, 0, 0},
8867 {0x40, 0xf, 0xf, 1, 1},
8868 {0x41, 0x6, 0x6, 0, 0},
8869 {0x42, 0x4, 0x4, 0, 0},
8870 {0x43, 0x50, 0x50, 1, 1},
8871 {0x44, 0x8, 0x8, 0, 0},
8872 {0x45, 0x55, 0x55, 1, 1},
8874 {0x47, 0x11, 0x11, 0, 0},
8876 {0x49, 0x44, 0x44, 0, 0},
8877 {0x4A, 0x7, 0x7, 0, 0},
8878 {0x4B, 0x6, 0x6, 0, 0},
8879 {0x4C, 0x4, 0x4, 0, 0},
8882 {0x4F, 0x26, 0x26, 1, 1},
8883 {0x50, 0x26, 0x26, 1, 1},
8884 {0x51, 0xf, 0xf, 1, 1},
8885 {0x52, 0xf, 0xf, 1, 1},
8886 {0x53, 0x44, 0x44, 0, 0},
8889 {0x56, 0x8, 0x8, 0, 0},
8890 {0x57, 0x8, 0x8, 0, 0},
8891 {0x58, 0x7, 0x7, 0, 0},
8892 {0x59, 0x22, 0x22, 0, 0},
8893 {0x5A, 0x22, 0x22, 0, 0},
8894 {0x5B, 0x2, 0x2, 0, 0},
8895 {0x5C, 0x2f, 0x2f, 1, 1},
8896 {0x5D, 0x7, 0x7, 0, 0},
8897 {0x5E, 0x55, 0x55, 0, 0},
8898 {0x5F, 0x23, 0x23, 0, 0},
8899 {0x60, 0x41, 0x41, 0, 0},
8900 {0x61, 0x1, 0x1, 0, 0},
8901 {0x62, 0xa, 0xa, 0, 0},
8910 {0x6B, 0xc, 0xc, 0, 0},
8917 {0x72, 0x22, 0x22, 0, 0},
8918 {0x73, 0x22, 0x22, 0, 0},
8920 {0x75, 0xa, 0xa, 0, 0},
8921 {0x76, 0x1, 0x1, 0, 0},
8922 {0x77, 0x22, 0x22, 0, 0},
8923 {0x78, 0x30, 0x30, 0, 0},
8952 {0xFFFF, 0, 0, 0, 0}
8955 struct radio_regs regs_SYN_2056_rev5[] = {
8963 {0x09, 0x1, 0x1, 0, 0},
8988 {0x22, 0x60, 0x60, 0, 0},
8989 {0x23, 0x6, 0x6, 0, 0},
8990 {0x24, 0xc, 0xc, 0, 0},
8994 {0x28, 0x1, 0x1, 0, 0},
9001 {0x2F, 0x1f, 0x1f, 0, 0},
9002 {0x30, 0x15, 0x15, 0, 0},
9003 {0x31, 0xf, 0xf, 0, 0},
9014 {0x3C, 0x13, 0x13, 0, 0},
9015 {0x3D, 0xf, 0xf, 0, 0},
9016 {0x3E, 0x18, 0x18, 0, 0},
9019 {0x41, 0x20, 0x20, 0, 0},
9020 {0x42, 0x20, 0x20, 0, 0},
9022 {0x44, 0x77, 0x77, 0, 0},
9023 {0x45, 0x7, 0x7, 0, 0},
9024 {0x46, 0x1, 0x1, 0, 0},
9025 {0x47, 0x4, 0x4, 0, 0},
9026 {0x48, 0xf, 0xf, 0, 0},
9027 {0x49, 0x30, 0x30, 0, 0},
9028 {0x4A, 0x32, 0x32, 0, 0},
9029 {0x4B, 0xd, 0xd, 0, 0},
9030 {0x4C, 0xd, 0xd, 0, 0},
9031 {0x4D, 0x4, 0x4, 0, 0},
9032 {0x4E, 0x6, 0x6, 0, 0},
9033 {0x4F, 0x1, 0x1, 0, 0},
9034 {0x50, 0x1c, 0x1c, 0, 0},
9035 {0x51, 0x2, 0x2, 0, 0},
9036 {0x52, 0x2, 0x2, 0, 0},
9037 {0x53, 0xf7, 0xf7, 1, 1},
9038 {0x54, 0xb4, 0xb4, 0, 0},
9039 {0x55, 0xd2, 0xd2, 0, 0},
9042 {0x58, 0x4, 0x4, 0, 0},
9043 {0x59, 0x96, 0x96, 0, 0},
9044 {0x5A, 0x3e, 0x3e, 0, 0},
9045 {0x5B, 0x3e, 0x3e, 0, 0},
9046 {0x5C, 0x13, 0x13, 0, 0},
9047 {0x5D, 0x2, 0x2, 0, 0},
9049 {0x5F, 0x7, 0x7, 0, 0},
9050 {0x60, 0x7, 0x7, 1, 1},
9051 {0x61, 0x8, 0x8, 0, 0},
9052 {0x62, 0x3, 0x3, 0, 0},
9058 {0x68, 0x40, 0x40, 0, 0},
9063 {0x6D, 0x1, 0x1, 0, 0},
9066 {0x70, 0x60, 0x60, 0, 0},
9067 {0x71, 0x66, 0x66, 0, 0},
9068 {0x72, 0xc, 0xc, 0, 0},
9069 {0x73, 0x66, 0x66, 0, 0},
9070 {0x74, 0x8f, 0x8f, 1, 1},
9072 {0x76, 0xcc, 0xcc, 0, 0},
9073 {0x77, 0x1, 0x1, 0, 0},
9074 {0x78, 0x66, 0x66, 0, 0},
9075 {0x79, 0x66, 0x66, 0, 0},
9087 {0x85, 0xff, 0xff, 0, 0},
9113 {0x9F, 0x6, 0x6, 0, 0},
9114 {0xA0, 0x66, 0x66, 0, 0},
9115 {0xA1, 0x66, 0x66, 0, 0},
9116 {0xA2, 0x66, 0x66, 0, 0},
9117 {0xA3, 0x66, 0x66, 0, 0},
9118 {0xA4, 0x66, 0x66, 0, 0},
9119 {0xA5, 0x66, 0x66, 0, 0},
9120 {0xA6, 0x66, 0x66, 0, 0},
9121 {0xA7, 0x66, 0x66, 0, 0},
9122 {0xA8, 0x66, 0x66, 0, 0},
9123 {0xA9, 0x66, 0x66, 0, 0},
9124 {0xAA, 0x66, 0x66, 0, 0},
9125 {0xAB, 0x66, 0x66, 0, 0},
9126 {0xAC, 0x66, 0x66, 0, 0},
9127 {0xAD, 0x66, 0x66, 0, 0},
9128 {0xAE, 0x66, 0x66, 0, 0},
9129 {0xAF, 0x66, 0x66, 0, 0},
9130 {0xB0, 0x66, 0x66, 0, 0},
9131 {0xB1, 0x66, 0x66, 0, 0},
9132 {0xB2, 0x66, 0x66, 0, 0},
9133 {0xB3, 0xa, 0xa, 0, 0},
9137 {0xFFFF, 0, 0, 0, 0}
9140 struct radio_regs regs_TX_2056_rev5[] = {
9172 {0x21, 0x88, 0x88, 0, 0},
9173 {0x22, 0x88, 0x88, 0, 0},
9174 {0x23, 0x88, 0x88, 0, 0},
9175 {0x24, 0x88, 0x88, 0, 0},
9176 {0x25, 0xc, 0xc, 0, 0},
9178 {0x27, 0x3, 0x3, 0, 0},
9180 {0x29, 0x3, 0x3, 0, 0},
9181 {0x2A, 0x37, 0x37, 0, 0},
9182 {0x2B, 0x3, 0x3, 0, 0},
9185 {0x2E, 0x1, 0x1, 0, 0},
9186 {0x2F, 0x1, 0x1, 0, 0},
9190 {0x33, 0x11, 0x11, 0, 0},
9191 {0x34, 0x11, 0x11, 0, 0},
9194 {0x37, 0x3, 0x3, 0, 0},
9195 {0x38, 0xf, 0xf, 0, 0},
9197 {0x3A, 0x2d, 0x2d, 0, 0},
9199 {0x3C, 0x6e, 0x6e, 0, 0},
9200 {0x3D, 0xf0, 0xf0, 1, 1},
9204 {0x41, 0x3, 0x3, 0, 0},
9205 {0x42, 0x3, 0x3, 0, 0},
9207 {0x44, 0x1e, 0x1e, 0, 0},
9209 {0x46, 0x6e, 0x6e, 0, 0},
9210 {0x47, 0xf0, 0xf0, 1, 1},
9212 {0x49, 0x2, 0x2, 0, 0},
9213 {0x4A, 0xff, 0xff, 1, 1},
9214 {0x4B, 0xc, 0xc, 0, 0},
9216 {0x4D, 0x38, 0x38, 0, 0},
9217 {0x4E, 0x70, 0x70, 1, 1},
9218 {0x4F, 0x2, 0x2, 0, 0},
9219 {0x50, 0x88, 0x88, 0, 0},
9220 {0x51, 0xc, 0xc, 0, 0},
9222 {0x53, 0x8, 0x8, 0, 0},
9223 {0x54, 0x70, 0x70, 1, 1},
9224 {0x55, 0x2, 0x2, 0, 0},
9225 {0x56, 0xff, 0xff, 1, 1},
9227 {0x58, 0x83, 0x83, 0, 0},
9228 {0x59, 0x77, 0x77, 1, 1},
9230 {0x5B, 0x2, 0x2, 0, 0},
9231 {0x5C, 0x88, 0x88, 0, 0},
9233 {0x5E, 0x8, 0x8, 0, 0},
9234 {0x5F, 0x77, 0x77, 1, 1},
9235 {0x60, 0x1, 0x1, 0, 0},
9237 {0x62, 0x7, 0x7, 0, 0},
9239 {0x64, 0x7, 0x7, 0, 0},
9244 {0x69, 0xa, 0xa, 0, 0},
9252 {0x71, 0x2, 0x2, 0, 0},
9255 {0x74, 0xe, 0xe, 0, 0},
9256 {0x75, 0xe, 0xe, 0, 0},
9257 {0x76, 0xe, 0xe, 0, 0},
9258 {0x77, 0x13, 0x13, 0, 0},
9259 {0x78, 0x13, 0x13, 0, 0},
9260 {0x79, 0x1b, 0x1b, 0, 0},
9261 {0x7A, 0x1b, 0x1b, 0, 0},
9262 {0x7B, 0x55, 0x55, 0, 0},
9263 {0x7C, 0x5b, 0x5b, 0, 0},
9286 {0x93, 0x70, 0x70, 0, 0},
9287 {0x94, 0x70, 0x70, 0, 0},
9288 {0x95, 0x71, 0x71, 1, 1},
9289 {0x96, 0x71, 0x71, 1, 1},
9290 {0x97, 0x72, 0x72, 1, 1},
9291 {0x98, 0x73, 0x73, 1, 1},
9292 {0x99, 0x74, 0x74, 1, 1},
9293 {0x9A, 0x75, 0x75, 1, 1},
9294 {0xFFFF, 0, 0, 0, 0}
9297 struct radio_regs regs_RX_2056_rev5[] = {
9328 {0x20, 0x3, 0x3, 0, 0},
9331 {0x23, 0x90, 0x90, 0, 0},
9332 {0x24, 0x55, 0x55, 0, 0},
9333 {0x25, 0x15, 0x15, 0, 0},
9334 {0x26, 0x5, 0x5, 0, 0},
9335 {0x27, 0x15, 0x15, 0, 0},
9336 {0x28, 0x5, 0x5, 0, 0},
9337 {0x29, 0x20, 0x20, 0, 0},
9338 {0x2A, 0x11, 0x11, 0, 0},
9339 {0x2B, 0x90, 0x90, 0, 0},
9341 {0x2D, 0x88, 0x88, 0, 0},
9342 {0x2E, 0x32, 0x32, 0, 0},
9343 {0x2F, 0x77, 0x77, 0, 0},
9344 {0x30, 0x17, 0x17, 1, 1},
9345 {0x31, 0xff, 0xff, 1, 1},
9346 {0x32, 0x20, 0x20, 0, 0},
9348 {0x34, 0x88, 0x88, 0, 0},
9349 {0x35, 0x32, 0x32, 0, 0},
9350 {0x36, 0x77, 0x77, 0, 0},
9351 {0x37, 0x17, 0x17, 1, 1},
9352 {0x38, 0xf0, 0xf0, 1, 1},
9353 {0x39, 0x20, 0x20, 0, 0},
9354 {0x3A, 0x8, 0x8, 0, 0},
9355 {0x3B, 0x55, 0x55, 1, 1},
9357 {0x3D, 0x88, 0x88, 1, 1},
9360 {0x40, 0x7, 0x7, 1, 1},
9361 {0x41, 0x6, 0x6, 0, 0},
9362 {0x42, 0x4, 0x4, 0, 0},
9364 {0x44, 0x8, 0x8, 0, 0},
9365 {0x45, 0x55, 0x55, 1, 1},
9367 {0x47, 0x11, 0x11, 0, 0},
9370 {0x4A, 0x7, 0x7, 0, 0},
9371 {0x4B, 0x6, 0x6, 0, 0},
9372 {0x4C, 0x4, 0x4, 0, 0},
9375 {0x4F, 0x26, 0x26, 1, 1},
9376 {0x50, 0x26, 0x26, 1, 1},
9377 {0x51, 0xf, 0xf, 1, 1},
9378 {0x52, 0xf, 0xf, 1, 1},
9379 {0x53, 0x44, 0x44, 0, 0},
9382 {0x56, 0x8, 0x8, 0, 0},
9383 {0x57, 0x8, 0x8, 0, 0},
9384 {0x58, 0x7, 0x7, 0, 0},
9385 {0x59, 0x22, 0x22, 0, 0},
9386 {0x5A, 0x22, 0x22, 0, 0},
9387 {0x5B, 0x2, 0x2, 0, 0},
9388 {0x5C, 0x4, 0x4, 1, 1},
9389 {0x5D, 0x7, 0x7, 0, 0},
9390 {0x5E, 0x55, 0x55, 0, 0},
9391 {0x5F, 0x23, 0x23, 0, 0},
9392 {0x60, 0x41, 0x41, 0, 0},
9393 {0x61, 0x1, 0x1, 0, 0},
9394 {0x62, 0xa, 0xa, 0, 0},
9403 {0x6B, 0xc, 0xc, 0, 0},
9410 {0x72, 0x22, 0x22, 0, 0},
9411 {0x73, 0x22, 0x22, 0, 0},
9413 {0x75, 0xa, 0xa, 0, 0},
9414 {0x76, 0x1, 0x1, 0, 0},
9415 {0x77, 0x22, 0x22, 0, 0},
9416 {0x78, 0x30, 0x30, 0, 0},
9445 {0xFFFF, 0, 0, 0, 0}
9448 struct radio_regs regs_SYN_2056_rev6[] = {
9456 {0x09, 0x1, 0x1, 0, 0},
9481 {0x22, 0x60, 0x60, 0, 0},
9482 {0x23, 0x6, 0x6, 0, 0},
9483 {0x24, 0xc, 0xc, 0, 0},
9487 {0x28, 0x1, 0x1, 0, 0},
9494 {0x2F, 0x1f, 0x1f, 0, 0},
9495 {0x30, 0x15, 0x15, 0, 0},
9496 {0x31, 0xf, 0xf, 0, 0},
9507 {0x3C, 0x13, 0x13, 0, 0},
9508 {0x3D, 0xf, 0xf, 0, 0},
9509 {0x3E, 0x18, 0x18, 0, 0},
9512 {0x41, 0x20, 0x20, 0, 0},
9513 {0x42, 0x20, 0x20, 0, 0},
9515 {0x44, 0x77, 0x77, 0, 0},
9516 {0x45, 0x7, 0x7, 0, 0},
9517 {0x46, 0x1, 0x1, 0, 0},
9518 {0x47, 0x4, 0x4, 0, 0},
9519 {0x48, 0xf, 0xf, 0, 0},
9520 {0x49, 0x30, 0x30, 0, 0},
9521 {0x4A, 0x32, 0x32, 0, 0},
9522 {0x4B, 0xd, 0xd, 0, 0},
9523 {0x4C, 0xd, 0xd, 0, 0},
9524 {0x4D, 0x4, 0x4, 0, 0},
9525 {0x4E, 0x6, 0x6, 0, 0},
9526 {0x4F, 0x1, 0x1, 0, 0},
9527 {0x50, 0x1c, 0x1c, 0, 0},
9528 {0x51, 0x2, 0x2, 0, 0},
9529 {0x52, 0x2, 0x2, 0, 0},
9530 {0x53, 0xf7, 0xf7, 1, 1},
9531 {0x54, 0xb4, 0xb4, 0, 0},
9532 {0x55, 0xd2, 0xd2, 0, 0},
9535 {0x58, 0x4, 0x4, 0, 0},
9536 {0x59, 0x96, 0x96, 0, 0},
9537 {0x5A, 0x3e, 0x3e, 0, 0},
9538 {0x5B, 0x3e, 0x3e, 0, 0},
9539 {0x5C, 0x13, 0x13, 0, 0},
9540 {0x5D, 0x2, 0x2, 0, 0},
9542 {0x5F, 0x7, 0x7, 0, 0},
9543 {0x60, 0x7, 0x7, 1, 1},
9544 {0x61, 0x8, 0x8, 0, 0},
9545 {0x62, 0x3, 0x3, 0, 0},
9551 {0x68, 0x40, 0x40, 0, 0},
9556 {0x6D, 0x1, 0x1, 0, 0},
9559 {0x70, 0x60, 0x60, 0, 0},
9560 {0x71, 0x66, 0x66, 0, 0},
9561 {0x72, 0xc, 0xc, 0, 0},
9562 {0x73, 0x66, 0x66, 0, 0},
9563 {0x74, 0x8f, 0x8f, 1, 1},
9565 {0x76, 0xcc, 0xcc, 0, 0},
9566 {0x77, 0x1, 0x1, 0, 0},
9567 {0x78, 0x66, 0x66, 0, 0},
9568 {0x79, 0x66, 0x66, 0, 0},
9580 {0x85, 0xff, 0xff, 0, 0},
9606 {0x9F, 0x6, 0x6, 0, 0},
9607 {0xA0, 0x66, 0x66, 0, 0},
9608 {0xA1, 0x66, 0x66, 0, 0},
9609 {0xA2, 0x66, 0x66, 0, 0},
9610 {0xA3, 0x66, 0x66, 0, 0},
9611 {0xA4, 0x66, 0x66, 0, 0},
9612 {0xA5, 0x66, 0x66, 0, 0},
9613 {0xA6, 0x66, 0x66, 0, 0},
9614 {0xA7, 0x66, 0x66, 0, 0},
9615 {0xA8, 0x66, 0x66, 0, 0},
9616 {0xA9, 0x66, 0x66, 0, 0},
9617 {0xAA, 0x66, 0x66, 0, 0},
9618 {0xAB, 0x66, 0x66, 0, 0},
9619 {0xAC, 0x66, 0x66, 0, 0},
9620 {0xAD, 0x66, 0x66, 0, 0},
9621 {0xAE, 0x66, 0x66, 0, 0},
9622 {0xAF, 0x66, 0x66, 0, 0},
9623 {0xB0, 0x66, 0x66, 0, 0},
9624 {0xB1, 0x66, 0x66, 0, 0},
9625 {0xB2, 0x66, 0x66, 0, 0},
9626 {0xB3, 0xa, 0xa, 0, 0},
9630 {0xFFFF, 0, 0, 0, 0}
9633 struct radio_regs regs_TX_2056_rev6[] = {
9665 {0x21, 0x88, 0x88, 0, 0},
9666 {0x22, 0x88, 0x88, 0, 0},
9667 {0x23, 0x88, 0x88, 0, 0},
9668 {0x24, 0x88, 0x88, 0, 0},
9669 {0x25, 0xc, 0xc, 0, 0},
9671 {0x27, 0x3, 0x3, 0, 0},
9673 {0x29, 0x3, 0x3, 0, 0},
9674 {0x2A, 0x37, 0x37, 0, 0},
9675 {0x2B, 0x3, 0x3, 0, 0},
9678 {0x2E, 0x1, 0x1, 0, 0},
9679 {0x2F, 0x1, 0x1, 0, 0},
9683 {0x33, 0x11, 0x11, 0, 0},
9684 {0x34, 0xee, 0xee, 1, 1},
9687 {0x37, 0x3, 0x3, 0, 0},
9688 {0x38, 0x50, 0x50, 1, 1},
9690 {0x3A, 0x50, 0x50, 1, 1},
9692 {0x3C, 0x6e, 0x6e, 0, 0},
9693 {0x3D, 0xf0, 0xf0, 1, 1},
9697 {0x41, 0x3, 0x3, 0, 0},
9698 {0x42, 0x3, 0x3, 0, 0},
9700 {0x44, 0x1e, 0x1e, 0, 0},
9702 {0x46, 0x6e, 0x6e, 0, 0},
9703 {0x47, 0xf0, 0xf0, 1, 1},
9705 {0x49, 0x2, 0x2, 0, 0},
9706 {0x4A, 0xff, 0xff, 1, 1},
9707 {0x4B, 0xc, 0xc, 0, 0},
9709 {0x4D, 0x38, 0x38, 0, 0},
9710 {0x4E, 0x70, 0x70, 1, 1},
9711 {0x4F, 0x2, 0x2, 0, 0},
9712 {0x50, 0x88, 0x88, 0, 0},
9713 {0x51, 0xc, 0xc, 0, 0},
9715 {0x53, 0x8, 0x8, 0, 0},
9716 {0x54, 0x70, 0x70, 1, 1},
9717 {0x55, 0x2, 0x2, 0, 0},
9718 {0x56, 0xff, 0xff, 1, 1},
9720 {0x58, 0x83, 0x83, 0, 0},
9721 {0x59, 0x77, 0x77, 1, 1},
9723 {0x5B, 0x2, 0x2, 0, 0},
9724 {0x5C, 0x88, 0x88, 0, 0},
9726 {0x5E, 0x8, 0x8, 0, 0},
9727 {0x5F, 0x77, 0x77, 1, 1},
9728 {0x60, 0x1, 0x1, 0, 0},
9730 {0x62, 0x7, 0x7, 0, 0},
9732 {0x64, 0x7, 0x7, 0, 0},
9737 {0x69, 0xa, 0xa, 0, 0},
9745 {0x71, 0x2, 0x2, 0, 0},
9748 {0x74, 0xe, 0xe, 0, 0},
9749 {0x75, 0xe, 0xe, 0, 0},
9750 {0x76, 0xe, 0xe, 0, 0},
9751 {0x77, 0x13, 0x13, 0, 0},
9752 {0x78, 0x13, 0x13, 0, 0},
9753 {0x79, 0x1b, 0x1b, 0, 0},
9754 {0x7A, 0x1b, 0x1b, 0, 0},
9755 {0x7B, 0x55, 0x55, 0, 0},
9756 {0x7C, 0x5b, 0x5b, 0, 0},
9757 {0x7D, 0x30, 0x30, 1, 1},
9779 {0x93, 0x70, 0x70, 0, 0},
9780 {0x94, 0x70, 0x70, 0, 0},
9781 {0x95, 0x70, 0x70, 0, 0},
9782 {0x96, 0x70, 0x70, 0, 0},
9783 {0x97, 0x70, 0x70, 0, 0},
9784 {0x98, 0x70, 0x70, 0, 0},
9785 {0x99, 0x70, 0x70, 0, 0},
9786 {0x9A, 0x70, 0x70, 0, 0},
9787 {0xFFFF, 0, 0, 0, 0}
9790 struct radio_regs regs_RX_2056_rev6[] = {
9821 {0x20, 0x3, 0x3, 0, 0},
9824 {0x23, 0x90, 0x90, 0, 0},
9825 {0x24, 0x55, 0x55, 0, 0},
9826 {0x25, 0x15, 0x15, 0, 0},
9827 {0x26, 0x5, 0x5, 0, 0},
9828 {0x27, 0x15, 0x15, 0, 0},
9829 {0x28, 0x5, 0x5, 0, 0},
9830 {0x29, 0x20, 0x20, 0, 0},
9831 {0x2A, 0x11, 0x11, 0, 0},
9832 {0x2B, 0x90, 0x90, 0, 0},
9834 {0x2D, 0x88, 0x88, 0, 0},
9835 {0x2E, 0x32, 0x32, 0, 0},
9836 {0x2F, 0x77, 0x77, 0, 0},
9837 {0x30, 0x17, 0x17, 1, 1},
9838 {0x31, 0xff, 0xff, 1, 1},
9839 {0x32, 0x20, 0x20, 0, 0},
9841 {0x34, 0x88, 0x88, 0, 0},
9842 {0x35, 0x32, 0x32, 0, 0},
9843 {0x36, 0x77, 0x77, 0, 0},
9844 {0x37, 0x17, 0x17, 1, 1},
9845 {0x38, 0xf0, 0xf0, 1, 1},
9846 {0x39, 0x20, 0x20, 0, 0},
9847 {0x3A, 0x8, 0x8, 0, 0},
9848 {0x3B, 0x55, 0x55, 1, 1},
9850 {0x3D, 0x88, 0x88, 1, 1},
9852 {0x3F, 0x44, 0x44, 0, 0},
9853 {0x40, 0x7, 0x7, 1, 1},
9854 {0x41, 0x6, 0x6, 0, 0},
9855 {0x42, 0x4, 0x4, 0, 0},
9857 {0x44, 0x8, 0x8, 0, 0},
9858 {0x45, 0x55, 0x55, 1, 1},
9860 {0x47, 0x11, 0x11, 0, 0},
9862 {0x49, 0x44, 0x44, 0, 0},
9863 {0x4A, 0x7, 0x7, 0, 0},
9864 {0x4B, 0x6, 0x6, 0, 0},
9865 {0x4C, 0x4, 0x4, 0, 0},
9868 {0x4F, 0x26, 0x26, 1, 1},
9869 {0x50, 0x26, 0x26, 1, 1},
9870 {0x51, 0xf, 0xf, 1, 1},
9871 {0x52, 0xf, 0xf, 1, 1},
9872 {0x53, 0x44, 0x44, 0, 0},
9875 {0x56, 0x8, 0x8, 0, 0},
9876 {0x57, 0x8, 0x8, 0, 0},
9877 {0x58, 0x7, 0x7, 0, 0},
9878 {0x59, 0x22, 0x22, 0, 0},
9879 {0x5A, 0x22, 0x22, 0, 0},
9880 {0x5B, 0x2, 0x2, 0, 0},
9881 {0x5C, 0x4, 0x4, 1, 1},
9882 {0x5D, 0x7, 0x7, 0, 0},
9883 {0x5E, 0x55, 0x55, 0, 0},
9884 {0x5F, 0x23, 0x23, 0, 0},
9885 {0x60, 0x41, 0x41, 0, 0},
9886 {0x61, 0x1, 0x1, 0, 0},
9887 {0x62, 0xa, 0xa, 0, 0},
9896 {0x6B, 0xc, 0xc, 0, 0},
9903 {0x72, 0x22, 0x22, 0, 0},
9904 {0x73, 0x22, 0x22, 0, 0},
9906 {0x75, 0xa, 0xa, 0, 0},
9907 {0x76, 0x1, 0x1, 0, 0},
9908 {0x77, 0x22, 0x22, 0, 0},
9909 {0x78, 0x30, 0x30, 0, 0},
9914 {0x7D, 0x5, 0x5, 1, 1},
9938 {0xFFFF, 0, 0, 0, 0}
9941 struct radio_regs regs_SYN_2056_rev7[] = {
9949 {0x09, 0x1, 0x1, 0, 0},
9974 {0x22, 0x60, 0x60, 0, 0},
9975 {0x23, 0x6, 0x6, 0, 0},
9976 {0x24, 0xc, 0xc, 0, 0},
9980 {0x28, 0x1, 0x1, 0, 0},
9987 {0x2F, 0x1f, 0x1f, 0, 0},
9988 {0x30, 0x15, 0x15, 0, 0},
9989 {0x31, 0xf, 0xf, 0, 0},
10000 {0x3C, 0x13, 0x13, 0, 0},
10001 {0x3D, 0xf, 0xf, 0, 0},
10002 {0x3E, 0x18, 0x18, 0, 0},
10003 {0x3F, 0, 0, 0, 0},
10004 {0x40, 0, 0, 0, 0},
10005 {0x41, 0x20, 0x20, 0, 0},
10006 {0x42, 0x20, 0x20, 0, 0},
10007 {0x43, 0, 0, 0, 0},
10008 {0x44, 0x77, 0x77, 0, 0},
10009 {0x45, 0x7, 0x7, 0, 0},
10010 {0x46, 0x1, 0x1, 0, 0},
10011 {0x47, 0x4, 0x4, 0, 0},
10012 {0x48, 0xf, 0xf, 0, 0},
10013 {0x49, 0x30, 0x30, 0, 0},
10014 {0x4A, 0x32, 0x32, 0, 0},
10015 {0x4B, 0xd, 0xd, 0, 0},
10016 {0x4C, 0xd, 0xd, 0, 0},
10017 {0x4D, 0x4, 0x4, 0, 0},
10018 {0x4E, 0x6, 0x6, 0, 0},
10019 {0x4F, 0x1, 0x1, 0, 0},
10020 {0x50, 0x1c, 0x1c, 0, 0},
10021 {0x51, 0x2, 0x2, 0, 0},
10022 {0x52, 0x2, 0x2, 0, 0},
10023 {0x53, 0xf7, 0xf7, 1, 1},
10024 {0x54, 0xb4, 0xb4, 0, 0},
10025 {0x55, 0xd2, 0xd2, 0, 0},
10026 {0x56, 0, 0, 0, 0},
10027 {0x57, 0, 0, 0, 0},
10028 {0x58, 0x4, 0x4, 0, 0},
10029 {0x59, 0x96, 0x96, 0, 0},
10030 {0x5A, 0x3e, 0x3e, 0, 0},
10031 {0x5B, 0x3e, 0x3e, 0, 0},
10032 {0x5C, 0x13, 0x13, 0, 0},
10033 {0x5D, 0x2, 0x2, 0, 0},
10034 {0x5E, 0, 0, 0, 0},
10035 {0x5F, 0x7, 0x7, 0, 0},
10036 {0x60, 0x7, 0x7, 1, 1},
10037 {0x61, 0x8, 0x8, 0, 0},
10038 {0x62, 0x3, 0x3, 0, 0},
10039 {0x63, 0, 0, 0, 0},
10040 {0x64, 0, 0, 0, 0},
10041 {0x65, 0, 0, 0, 0},
10042 {0x66, 0, 0, 0, 0},
10043 {0x67, 0, 0, 0, 0},
10044 {0x68, 0x40, 0x40, 0, 0},
10045 {0x69, 0, 0, 0, 0},
10046 {0x6A, 0, 0, 0, 0},
10047 {0x6B, 0, 0, 0, 0},
10048 {0x6C, 0, 0, 0, 0},
10049 {0x6D, 0x1, 0x1, 0, 0},
10050 {0x6E, 0, 0, 0, 0},
10051 {0x6F, 0, 0, 0, 0},
10052 {0x70, 0x60, 0x60, 0, 0},
10053 {0x71, 0x66, 0x66, 0, 0},
10054 {0x72, 0xc, 0xc, 0, 0},
10055 {0x73, 0x66, 0x66, 0, 0},
10056 {0x74, 0x8f, 0x8f, 1, 1},
10057 {0x75, 0, 0, 0, 0},
10058 {0x76, 0xcc, 0xcc, 0, 0},
10059 {0x77, 0x1, 0x1, 0, 0},
10060 {0x78, 0x66, 0x66, 0, 0},
10061 {0x79, 0x66, 0x66, 0, 0},
10062 {0x7A, 0, 0, 0, 0},
10063 {0x7B, 0, 0, 0, 0},
10064 {0x7C, 0, 0, 0, 0},
10065 {0x7D, 0, 0, 0, 0},
10066 {0x7E, 0, 0, 0, 0},
10067 {0x7F, 0, 0, 0, 0},
10068 {0x80, 0, 0, 0, 0},
10069 {0x81, 0, 0, 0, 0},
10070 {0x82, 0, 0, 0, 0},
10071 {0x83, 0, 0, 0, 0},
10072 {0x84, 0, 0, 0, 0},
10073 {0x85, 0xff, 0xff, 0, 0},
10074 {0x86, 0, 0, 0, 0},
10075 {0x87, 0, 0, 0, 0},
10076 {0x88, 0, 0, 0, 0},
10077 {0x89, 0, 0, 0, 0},
10078 {0x8A, 0, 0, 0, 0},
10079 {0x8B, 0, 0, 0, 0},
10080 {0x8C, 0, 0, 0, 0},
10081 {0x8D, 0, 0, 0, 0},
10082 {0x8E, 0, 0, 0, 0},
10083 {0x8F, 0, 0, 0, 0},
10084 {0x90, 0, 0, 0, 0},
10085 {0x91, 0, 0, 0, 0},
10086 {0x92, 0, 0, 0, 0},
10087 {0x93, 0, 0, 0, 0},
10088 {0x94, 0, 0, 0, 0},
10089 {0x95, 0, 0, 0, 0},
10090 {0x96, 0, 0, 0, 0},
10091 {0x97, 0, 0, 0, 0},
10092 {0x98, 0, 0, 0, 0},
10093 {0x99, 0, 0, 0, 0},
10094 {0x9A, 0, 0, 0, 0},
10095 {0x9B, 0, 0, 0, 0},
10096 {0x9C, 0, 0, 0, 0},
10097 {0x9D, 0, 0, 0, 0},
10098 {0x9E, 0, 0, 0, 0},
10099 {0x9F, 0x6, 0x6, 0, 0},
10100 {0xA0, 0x66, 0x66, 0, 0},
10101 {0xA1, 0x66, 0x66, 0, 0},
10102 {0xA2, 0x66, 0x66, 0, 0},
10103 {0xA3, 0x66, 0x66, 0, 0},
10104 {0xA4, 0x66, 0x66, 0, 0},
10105 {0xA5, 0x66, 0x66, 0, 0},
10106 {0xA6, 0x66, 0x66, 0, 0},
10107 {0xA7, 0x66, 0x66, 0, 0},
10108 {0xA8, 0x66, 0x66, 0, 0},
10109 {0xA9, 0x66, 0x66, 0, 0},
10110 {0xAA, 0x66, 0x66, 0, 0},
10111 {0xAB, 0x66, 0x66, 0, 0},
10112 {0xAC, 0x66, 0x66, 0, 0},
10113 {0xAD, 0x66, 0x66, 0, 0},
10114 {0xAE, 0x66, 0x66, 0, 0},
10115 {0xAF, 0x66, 0x66, 0, 0},
10116 {0xB0, 0x66, 0x66, 0, 0},
10117 {0xB1, 0x66, 0x66, 0, 0},
10118 {0xB2, 0x66, 0x66, 0, 0},
10119 {0xB3, 0xa, 0xa, 0, 0},
10120 {0xB4, 0, 0, 0, 0},
10121 {0xB5, 0, 0, 0, 0},
10122 {0xB6, 0, 0, 0, 0},
10123 {0xFFFF, 0, 0, 0, 0},
10126 struct radio_regs regs_TX_2056_rev7[] = {
10127 {0x02, 0, 0, 0, 0},
10128 {0x03, 0, 0, 0, 0},
10129 {0x04, 0, 0, 0, 0},
10130 {0x05, 0, 0, 0, 0},
10131 {0x06, 0, 0, 0, 0},
10132 {0x07, 0, 0, 0, 0},
10133 {0x08, 0, 0, 0, 0},
10134 {0x09, 0, 0, 0, 0},
10135 {0x0A, 0, 0, 0, 0},
10136 {0x0B, 0, 0, 0, 0},
10137 {0x0C, 0, 0, 0, 0},
10138 {0x0D, 0, 0, 0, 0},
10139 {0x0E, 0, 0, 0, 0},
10140 {0x0F, 0, 0, 0, 0},
10141 {0x10, 0, 0, 0, 0},
10142 {0x11, 0, 0, 0, 0},
10143 {0x12, 0, 0, 0, 0},
10144 {0x13, 0, 0, 0, 0},
10145 {0x14, 0, 0, 0, 0},
10146 {0x15, 0, 0, 0, 0},
10147 {0x16, 0, 0, 0, 0},
10148 {0x17, 0, 0, 0, 0},
10149 {0x18, 0, 0, 0, 0},
10150 {0x19, 0, 0, 0, 0},
10151 {0x1A, 0, 0, 0, 0},
10152 {0x1B, 0, 0, 0, 0},
10153 {0x1C, 0, 0, 0, 0},
10154 {0x1D, 0, 0, 0, 0},
10155 {0x1E, 0, 0, 0, 0},
10156 {0x1F, 0, 0, 0, 0},
10157 {0x20, 0, 0, 0, 0},
10158 {0x21, 0x88, 0x88, 0, 0},
10159 {0x22, 0x88, 0x88, 0, 0},
10160 {0x23, 0x88, 0x88, 0, 0},
10161 {0x24, 0x88, 0x88, 0, 0},
10162 {0x25, 0xc, 0xc, 0, 0},
10163 {0x26, 0, 0, 0, 0},
10164 {0x27, 0x3, 0x3, 0, 0},
10165 {0x28, 0, 0, 0, 0},
10166 {0x29, 0x3, 0x3, 0, 0},
10167 {0x2A, 0x37, 0x37, 0, 0},
10168 {0x2B, 0x3, 0x3, 0, 0},
10169 {0x2C, 0, 0, 0, 0},
10170 {0x2D, 0, 0, 0, 0},
10171 {0x2E, 0x1, 0x1, 0, 0},
10172 {0x2F, 0x1, 0x1, 0, 0},
10173 {0x30, 0, 0, 0, 0},
10174 {0x31, 0, 0, 0, 0},
10175 {0x32, 0, 0, 0, 0},
10176 {0x33, 0x11, 0x11, 0, 0},
10177 {0x34, 0xee, 0xee, 1, 1},
10178 {0x35, 0, 0, 0, 0},
10179 {0x36, 0, 0, 0, 0},
10180 {0x37, 0x3, 0x3, 0, 0},
10181 {0x38, 0x50, 0x50, 1, 1},
10182 {0x39, 0, 0, 0, 0},
10183 {0x3A, 0x50, 0x50, 1, 1},
10184 {0x3B, 0, 0, 0, 0},
10185 {0x3C, 0x6e, 0x6e, 0, 0},
10186 {0x3D, 0xf0, 0xf0, 1, 1},
10187 {0x3E, 0, 0, 0, 0},
10188 {0x3F, 0, 0, 0, 0},
10189 {0x40, 0, 0, 0, 0},
10190 {0x41, 0x3, 0x3, 0, 0},
10191 {0x42, 0x3, 0x3, 0, 0},
10192 {0x43, 0, 0, 0, 0},
10193 {0x44, 0x1e, 0x1e, 0, 0},
10194 {0x45, 0, 0, 0, 0},
10195 {0x46, 0x6e, 0x6e, 0, 0},
10196 {0x47, 0xf0, 0xf0, 1, 1},
10197 {0x48, 0, 0, 0, 0},
10198 {0x49, 0x2, 0x2, 0, 0},
10199 {0x4A, 0xff, 0xff, 1, 1},
10200 {0x4B, 0xc, 0xc, 0, 0},
10201 {0x4C, 0, 0, 0, 0},
10202 {0x4D, 0x38, 0x38, 0, 0},
10203 {0x4E, 0x70, 0x70, 1, 1},
10204 {0x4F, 0x2, 0x2, 0, 0},
10205 {0x50, 0x88, 0x88, 0, 0},
10206 {0x51, 0xc, 0xc, 0, 0},
10207 {0x52, 0, 0, 0, 0},
10208 {0x53, 0x8, 0x8, 0, 0},
10209 {0x54, 0x70, 0x70, 1, 1},
10210 {0x55, 0x2, 0x2, 0, 0},
10211 {0x56, 0xff, 0xff, 1, 1},
10212 {0x57, 0, 0, 0, 0},
10213 {0x58, 0x83, 0x83, 0, 0},
10214 {0x59, 0x77, 0x77, 1, 1},
10215 {0x5A, 0, 0, 0, 0},
10216 {0x5B, 0x2, 0x2, 0, 0},
10217 {0x5C, 0x88, 0x88, 0, 0},
10218 {0x5D, 0, 0, 0, 0},
10219 {0x5E, 0x8, 0x8, 0, 0},
10220 {0x5F, 0x77, 0x77, 1, 1},
10221 {0x60, 0x1, 0x1, 0, 0},
10222 {0x61, 0, 0, 0, 0},
10223 {0x62, 0x7, 0x7, 0, 0},
10224 {0x63, 0, 0, 0, 0},
10225 {0x64, 0x7, 0x7, 0, 0},
10226 {0x65, 0, 0, 0, 0},
10227 {0x66, 0, 0, 0, 0},
10228 {0x67, 0, 0, 1, 1},
10229 {0x68, 0, 0, 0, 0},
10230 {0x69, 0xa, 0xa, 0, 0},
10231 {0x6A, 0, 0, 0, 0},
10232 {0x6B, 0, 0, 0, 0},
10233 {0x6C, 0, 0, 0, 0},
10234 {0x6D, 0, 0, 0, 0},
10235 {0x6E, 0, 0, 0, 0},
10236 {0x6F, 0, 0, 0, 0},
10237 {0x70, 0, 0, 0, 0},
10238 {0x71, 0x2, 0x2, 0, 0},
10239 {0x72, 0, 0, 0, 0},
10240 {0x73, 0, 0, 0, 0},
10241 {0x74, 0xe, 0xe, 0, 0},
10242 {0x75, 0xe, 0xe, 0, 0},
10243 {0x76, 0xe, 0xe, 0, 0},
10244 {0x77, 0x13, 0x13, 0, 0},
10245 {0x78, 0x13, 0x13, 0, 0},
10246 {0x79, 0x1b, 0x1b, 0, 0},
10247 {0x7A, 0x1b, 0x1b, 0, 0},
10248 {0x7B, 0x55, 0x55, 0, 0},
10249 {0x7C, 0x5b, 0x5b, 0, 0},
10250 {0x7D, 0x30, 0x30, 1, 1},
10251 {0x7E, 0, 0, 0, 0},
10252 {0x7F, 0, 0, 0, 0},
10253 {0x80, 0, 0, 0, 0},
10254 {0x81, 0, 0, 0, 0},
10255 {0x82, 0, 0, 0, 0},
10256 {0x83, 0, 0, 0, 0},
10257 {0x84, 0, 0, 0, 0},
10258 {0x85, 0, 0, 0, 0},
10259 {0x86, 0, 0, 0, 0},
10260 {0x87, 0, 0, 0, 0},
10261 {0x88, 0, 0, 0, 0},
10262 {0x89, 0, 0, 0, 0},
10263 {0x8A, 0, 0, 0, 0},
10264 {0x8B, 0, 0, 0, 0},
10265 {0x8C, 0, 0, 0, 0},
10266 {0x8D, 0, 0, 0, 0},
10267 {0x8E, 0, 0, 0, 0},
10268 {0x8F, 0, 0, 0, 0},
10269 {0x90, 0, 0, 0, 0},
10270 {0x91, 0, 0, 0, 0},
10271 {0x92, 0, 0, 0, 0},
10272 {0x93, 0x70, 0x70, 0, 0},
10273 {0x94, 0x70, 0x70, 0, 0},
10274 {0x95, 0x71, 0x71, 1, 1},
10275 {0x96, 0x71, 0x71, 1, 1},
10276 {0x97, 0x72, 0x72, 1, 1},
10277 {0x98, 0x73, 0x73, 1, 1},
10278 {0x99, 0x74, 0x74, 1, 1},
10279 {0x9A, 0x75, 0x75, 1, 1},
10280 {0xFFFF, 0, 0, 0, 0},
10283 struct radio_regs regs_RX_2056_rev7[] = {
10284 {0x02, 0, 0, 0, 0},
10285 {0x03, 0, 0, 0, 0},
10286 {0x04, 0, 0, 0, 0},
10287 {0x05, 0, 0, 0, 0},
10288 {0x06, 0, 0, 0, 0},
10289 {0x07, 0, 0, 0, 0},
10290 {0x08, 0, 0, 0, 0},
10291 {0x09, 0, 0, 0, 0},
10292 {0x0A, 0, 0, 0, 0},
10293 {0x0B, 0, 0, 0, 0},
10294 {0x0C, 0, 0, 0, 0},
10295 {0x0D, 0, 0, 0, 0},
10296 {0x0E, 0, 0, 0, 0},
10297 {0x0F, 0, 0, 0, 0},
10298 {0x10, 0, 0, 0, 0},
10299 {0x11, 0, 0, 0, 0},
10300 {0x12, 0, 0, 0, 0},
10301 {0x13, 0, 0, 0, 0},
10302 {0x14, 0, 0, 0, 0},
10303 {0x15, 0, 0, 0, 0},
10304 {0x16, 0, 0, 0, 0},
10305 {0x17, 0, 0, 0, 0},
10306 {0x18, 0, 0, 0, 0},
10307 {0x19, 0, 0, 0, 0},
10308 {0x1A, 0, 0, 0, 0},
10309 {0x1B, 0, 0, 0, 0},
10310 {0x1C, 0, 0, 0, 0},
10311 {0x1D, 0, 0, 0, 0},
10312 {0x1E, 0, 0, 0, 0},
10313 {0x1F, 0, 0, 0, 0},
10314 {0x20, 0x3, 0x3, 0, 0},
10315 {0x21, 0, 0, 0, 0},
10316 {0x22, 0, 0, 0, 0},
10317 {0x23, 0x90, 0x90, 0, 0},
10318 {0x24, 0x55, 0x55, 0, 0},
10319 {0x25, 0x15, 0x15, 0, 0},
10320 {0x26, 0x5, 0x5, 0, 0},
10321 {0x27, 0x15, 0x15, 0, 0},
10322 {0x28, 0x5, 0x5, 0, 0},
10323 {0x29, 0x20, 0x20, 0, 0},
10324 {0x2A, 0x11, 0x11, 0, 0},
10325 {0x2B, 0x90, 0x90, 0, 0},
10326 {0x2C, 0, 0, 0, 0},
10327 {0x2D, 0x88, 0x88, 0, 0},
10328 {0x2E, 0x32, 0x32, 0, 0},
10329 {0x2F, 0x77, 0x77, 0, 0},
10330 {0x30, 0x17, 0x17, 1, 1},
10331 {0x31, 0xff, 0xff, 1, 1},
10332 {0x32, 0x20, 0x20, 0, 0},
10333 {0x33, 0, 0, 0, 0},
10334 {0x34, 0x88, 0x88, 0, 0},
10335 {0x35, 0x32, 0x32, 0, 0},
10336 {0x36, 0x77, 0x77, 0, 0},
10337 {0x37, 0x17, 0x17, 1, 1},
10338 {0x38, 0xf0, 0xf0, 1, 1},
10339 {0x39, 0x20, 0x20, 0, 0},
10340 {0x3A, 0x8, 0x8, 0, 0},
10341 {0x3B, 0x55, 0x55, 1, 1},
10342 {0x3C, 0, 0, 0, 0},
10343 {0x3D, 0x88, 0x88, 1, 1},
10344 {0x3E, 0, 0, 0, 0},
10345 {0x3F, 0, 0, 1, 1},
10346 {0x40, 0x7, 0x7, 1, 1},
10347 {0x41, 0x6, 0x6, 0, 0},
10348 {0x42, 0x4, 0x4, 0, 0},
10349 {0x43, 0, 0, 0, 0},
10350 {0x44, 0x8, 0x8, 0, 0},
10351 {0x45, 0x55, 0x55, 1, 1},
10352 {0x46, 0, 0, 0, 0},
10353 {0x47, 0x11, 0x11, 0, 0},
10354 {0x48, 0, 0, 0, 0},
10355 {0x49, 0, 0, 1, 1},
10356 {0x4A, 0x7, 0x7, 0, 0},
10357 {0x4B, 0x6, 0x6, 0, 0},
10358 {0x4C, 0x4, 0x4, 0, 0},
10359 {0x4D, 0, 0, 0, 0},
10360 {0x4E, 0, 0, 0, 0},
10361 {0x4F, 0x26, 0x26, 1, 1},
10362 {0x50, 0x26, 0x26, 1, 1},
10363 {0x51, 0xf, 0xf, 1, 1},
10364 {0x52, 0xf, 0xf, 1, 1},
10365 {0x53, 0x44, 0x44, 0, 0},
10366 {0x54, 0, 0, 0, 0},
10367 {0x55, 0, 0, 0, 0},
10368 {0x56, 0x8, 0x8, 0, 0},
10369 {0x57, 0x8, 0x8, 0, 0},
10370 {0x58, 0x7, 0x7, 0, 0},
10371 {0x59, 0x22, 0x22, 0, 0},
10372 {0x5A, 0x22, 0x22, 0, 0},
10373 {0x5B, 0x2, 0x2, 0, 0},
10374 {0x5C, 0x4, 0x4, 1, 1},
10375 {0x5D, 0x7, 0x7, 0, 0},
10376 {0x5E, 0x55, 0x55, 0, 0},
10377 {0x5F, 0x23, 0x23, 0, 0},
10378 {0x60, 0x41, 0x41, 0, 0},
10379 {0x61, 0x1, 0x1, 0, 0},
10380 {0x62, 0xa, 0xa, 0, 0},
10381 {0x63, 0, 0, 0, 0},
10382 {0x64, 0, 0, 0, 0},
10383 {0x65, 0, 0, 0, 0},
10384 {0x66, 0, 0, 0, 0},
10385 {0x67, 0, 0, 0, 0},
10386 {0x68, 0, 0, 0, 0},
10387 {0x69, 0, 0, 0, 0},
10388 {0x6A, 0, 0, 0, 0},
10389 {0x6B, 0xc, 0xc, 0, 0},
10390 {0x6C, 0, 0, 0, 0},
10391 {0x6D, 0, 0, 0, 0},
10392 {0x6E, 0, 0, 0, 0},
10393 {0x6F, 0, 0, 0, 0},
10394 {0x70, 0, 0, 0, 0},
10395 {0x71, 0, 0, 0, 0},
10396 {0x72, 0x22, 0x22, 0, 0},
10397 {0x73, 0x22, 0x22, 0, 0},
10398 {0x74, 0, 0, 1, 1},
10399 {0x75, 0xa, 0xa, 0, 0},
10400 {0x76, 0x1, 0x1, 0, 0},
10401 {0x77, 0x22, 0x22, 0, 0},
10402 {0x78, 0x30, 0x30, 0, 0},
10403 {0x79, 0, 0, 0, 0},
10404 {0x7A, 0, 0, 0, 0},
10405 {0x7B, 0, 0, 0, 0},
10406 {0x7C, 0, 0, 0, 0},
10407 {0x7D, 0, 0, 0, 0},
10408 {0x7E, 0, 0, 0, 0},
10409 {0x7F, 0, 0, 0, 0},
10410 {0x80, 0, 0, 0, 0},
10411 {0x81, 0, 0, 0, 0},
10412 {0x82, 0, 0, 0, 0},
10413 {0x83, 0, 0, 0, 0},
10414 {0x84, 0, 0, 0, 0},
10415 {0x85, 0, 0, 0, 0},
10416 {0x86, 0, 0, 0, 0},
10417 {0x87, 0, 0, 0, 0},
10418 {0x88, 0, 0, 0, 0},
10419 {0x89, 0, 0, 0, 0},
10420 {0x8A, 0, 0, 0, 0},
10421 {0x8B, 0, 0, 0, 0},
10422 {0x8C, 0, 0, 0, 0},
10423 {0x8D, 0, 0, 0, 0},
10424 {0x8E, 0, 0, 0, 0},
10425 {0x8F, 0, 0, 0, 0},
10426 {0x90, 0, 0, 0, 0},
10427 {0x91, 0, 0, 0, 0},
10428 {0x92, 0, 0, 0, 0},
10429 {0x93, 0, 0, 0, 0},
10430 {0x94, 0, 0, 0, 0},
10431 {0xFFFF, 0, 0, 0, 0},
10434 struct radio_regs regs_SYN_2056_rev8[] = {
10435 {0x02, 0, 0, 0, 0},
10436 {0x03, 0, 0, 0, 0},
10437 {0x04, 0, 0, 0, 0},
10438 {0x05, 0, 0, 0, 0},
10439 {0x06, 0, 0, 0, 0},
10440 {0x07, 0, 0, 0, 0},
10441 {0x08, 0, 0, 0, 0},
10442 {0x09, 0x1, 0x1, 0, 0},
10443 {0x0A, 0, 0, 0, 0},
10444 {0x0B, 0, 0, 0, 0},
10445 {0x0C, 0, 0, 0, 0},
10446 {0x0D, 0, 0, 0, 0},
10447 {0x0E, 0, 0, 0, 0},
10448 {0x0F, 0, 0, 0, 0},
10449 {0x10, 0, 0, 0, 0},
10450 {0x11, 0, 0, 0, 0},
10451 {0x12, 0, 0, 0, 0},
10452 {0x13, 0, 0, 0, 0},
10453 {0x14, 0, 0, 0, 0},
10454 {0x15, 0, 0, 0, 0},
10455 {0x16, 0, 0, 0, 0},
10456 {0x17, 0, 0, 0, 0},
10457 {0x18, 0, 0, 0, 0},
10458 {0x19, 0, 0, 0, 0},
10459 {0x1A, 0, 0, 0, 0},
10460 {0x1B, 0, 0, 0, 0},
10461 {0x1C, 0, 0, 0, 0},
10462 {0x1D, 0, 0, 0, 0},
10463 {0x1E, 0, 0, 0, 0},
10464 {0x1F, 0, 0, 0, 0},
10465 {0x20, 0, 0, 0, 0},
10466 {0x21, 0, 0, 0, 0},
10467 {0x22, 0x60, 0x60, 0, 0},
10468 {0x23, 0x6, 0x6, 0, 0},
10469 {0x24, 0xc, 0xc, 0, 0},
10470 {0x25, 0, 0, 0, 0},
10471 {0x26, 0, 0, 0, 0},
10472 {0x27, 0, 0, 0, 0},
10473 {0x28, 0x1, 0x1, 0, 0},
10474 {0x29, 0, 0, 0, 0},
10475 {0x2A, 0, 0, 0, 0},
10476 {0x2B, 0, 0, 0, 0},
10477 {0x2C, 0, 0, 0, 0},
10478 {0x2D, 0, 0, 0, 0},
10479 {0x2E, 0, 0, 0, 0},
10480 {0x2F, 0x1f, 0x1f, 0, 0},
10481 {0x30, 0x15, 0x15, 0, 0},
10482 {0x31, 0xf, 0xf, 0, 0},
10483 {0x32, 0, 0, 0, 0},
10484 {0x33, 0, 0, 0, 0},
10485 {0x34, 0, 0, 0, 0},
10486 {0x35, 0, 0, 0, 0},
10487 {0x36, 0, 0, 0, 0},
10488 {0x37, 0, 0, 0, 0},
10489 {0x38, 0, 0, 0, 0},
10490 {0x39, 0, 0, 0, 0},
10491 {0x3A, 0, 0, 0, 0},
10492 {0x3B, 0, 0, 0, 0},
10493 {0x3C, 0x13, 0x13, 0, 0},
10494 {0x3D, 0xf, 0xf, 0, 0},
10495 {0x3E, 0x18, 0x18, 0, 0},
10496 {0x3F, 0, 0, 0, 0},
10497 {0x40, 0, 0, 0, 0},
10498 {0x41, 0x20, 0x20, 0, 0},
10499 {0x42, 0x20, 0x20, 0, 0},
10500 {0x43, 0, 0, 0, 0},
10501 {0x44, 0x77, 0x77, 0, 0},
10502 {0x45, 0x7, 0x7, 0, 0},
10503 {0x46, 0x1, 0x1, 0, 0},
10504 {0x47, 0x4, 0x4, 0, 0},
10505 {0x48, 0xf, 0xf, 0, 0},
10506 {0x49, 0x30, 0x30, 0, 0},
10507 {0x4A, 0x32, 0x32, 0, 0},
10508 {0x4B, 0xd, 0xd, 0, 0},
10509 {0x4C, 0xd, 0xd, 0, 0},
10510 {0x4D, 0x4, 0x4, 0, 0},
10511 {0x4E, 0x6, 0x6, 0, 0},
10512 {0x4F, 0x1, 0x1, 0, 0},
10513 {0x50, 0x1c, 0x1c, 0, 0},
10514 {0x51, 0x2, 0x2, 0, 0},
10515 {0x52, 0x2, 0x2, 0, 0},
10516 {0x53, 0xf7, 0xf7, 1, 1},
10517 {0x54, 0xb4, 0xb4, 0, 0},
10518 {0x55, 0xd2, 0xd2, 0, 0},
10519 {0x56, 0, 0, 0, 0},
10520 {0x57, 0, 0, 0, 0},
10521 {0x58, 0x4, 0x4, 0, 0},
10522 {0x59, 0x96, 0x96, 0, 0},
10523 {0x5A, 0x3e, 0x3e, 0, 0},
10524 {0x5B, 0x3e, 0x3e, 0, 0},
10525 {0x5C, 0x13, 0x13, 0, 0},
10526 {0x5D, 0x2, 0x2, 0, 0},
10527 {0x5E, 0, 0, 0, 0},
10528 {0x5F, 0x7, 0x7, 0, 0},
10529 {0x60, 0x7, 0x7, 1, 1},
10530 {0x61, 0x8, 0x8, 0, 0},
10531 {0x62, 0x3, 0x3, 0, 0},
10532 {0x63, 0, 0, 0, 0},
10533 {0x64, 0, 0, 0, 0},
10534 {0x65, 0, 0, 0, 0},
10535 {0x66, 0, 0, 0, 0},
10536 {0x67, 0, 0, 0, 0},
10537 {0x68, 0x40, 0x40, 0, 0},
10538 {0x69, 0, 0, 0, 0},
10539 {0x6A, 0, 0, 0, 0},
10540 {0x6B, 0, 0, 0, 0},
10541 {0x6C, 0, 0, 0, 0},
10542 {0x6D, 0x1, 0x1, 0, 0},
10543 {0x6E, 0, 0, 0, 0},
10544 {0x6F, 0, 0, 0, 0},
10545 {0x70, 0x60, 0x60, 0, 0},
10546 {0x71, 0x66, 0x66, 0, 0},
10547 {0x72, 0xc, 0xc, 0, 0},
10548 {0x73, 0x66, 0x66, 0, 0},
10549 {0x74, 0x8f, 0x8f, 1, 1},
10550 {0x75, 0, 0, 0, 0},
10551 {0x76, 0xcc, 0xcc, 0, 0},
10552 {0x77, 0x1, 0x1, 0, 0},
10553 {0x78, 0x66, 0x66, 0, 0},
10554 {0x79, 0x66, 0x66, 0, 0},
10555 {0x7A, 0, 0, 0, 0},
10556 {0x7B, 0, 0, 0, 0},
10557 {0x7C, 0, 0, 0, 0},
10558 {0x7D, 0, 0, 0, 0},
10559 {0x7E, 0, 0, 0, 0},
10560 {0x7F, 0, 0, 0, 0},
10561 {0x80, 0, 0, 0, 0},
10562 {0x81, 0, 0, 0, 0},
10563 {0x82, 0, 0, 0, 0},
10564 {0x83, 0, 0, 0, 0},
10565 {0x84, 0, 0, 0, 0},
10566 {0x85, 0xff, 0xff, 0, 0},
10567 {0x86, 0, 0, 0, 0},
10568 {0x87, 0, 0, 0, 0},
10569 {0x88, 0, 0, 0, 0},
10570 {0x89, 0, 0, 0, 0},
10571 {0x8A, 0, 0, 0, 0},
10572 {0x8B, 0, 0, 0, 0},
10573 {0x8C, 0, 0, 0, 0},
10574 {0x8D, 0, 0, 0, 0},
10575 {0x8E, 0, 0, 0, 0},
10576 {0x8F, 0, 0, 0, 0},
10577 {0x90, 0, 0, 0, 0},
10578 {0x91, 0, 0, 0, 0},
10579 {0x92, 0, 0, 0, 0},
10580 {0x93, 0, 0, 0, 0},
10581 {0x94, 0, 0, 0, 0},
10582 {0x95, 0, 0, 0, 0},
10583 {0x96, 0, 0, 0, 0},
10584 {0x97, 0, 0, 0, 0},
10585 {0x98, 0, 0, 0, 0},
10586 {0x99, 0, 0, 0, 0},
10587 {0x9A, 0, 0, 0, 0},
10588 {0x9B, 0, 0, 0, 0},
10589 {0x9C, 0, 0, 0, 0},
10590 {0x9D, 0, 0, 0, 0},
10591 {0x9E, 0, 0, 0, 0},
10592 {0x9F, 0x6, 0x6, 0, 0},
10593 {0xA0, 0x66, 0x66, 0, 0},
10594 {0xA1, 0x66, 0x66, 0, 0},
10595 {0xA2, 0x66, 0x66, 0, 0},
10596 {0xA3, 0x66, 0x66, 0, 0},
10597 {0xA4, 0x66, 0x66, 0, 0},
10598 {0xA5, 0x66, 0x66, 0, 0},
10599 {0xA6, 0x66, 0x66, 0, 0},
10600 {0xA7, 0x66, 0x66, 0, 0},
10601 {0xA8, 0x66, 0x66, 0, 0},
10602 {0xA9, 0x66, 0x66, 0, 0},
10603 {0xAA, 0x66, 0x66, 0, 0},
10604 {0xAB, 0x66, 0x66, 0, 0},
10605 {0xAC, 0x66, 0x66, 0, 0},
10606 {0xAD, 0x66, 0x66, 0, 0},
10607 {0xAE, 0x66, 0x66, 0, 0},
10608 {0xAF, 0x66, 0x66, 0, 0},
10609 {0xB0, 0x66, 0x66, 0, 0},
10610 {0xB1, 0x66, 0x66, 0, 0},
10611 {0xB2, 0x66, 0x66, 0, 0},
10612 {0xB3, 0xa, 0xa, 0, 0},
10613 {0xB4, 0, 0, 0, 0},
10614 {0xB5, 0, 0, 0, 0},
10615 {0xB6, 0, 0, 0, 0},
10616 {0xFFFF, 0, 0, 0, 0},
10619 struct radio_regs regs_TX_2056_rev8[] = {
10620 {0x02, 0, 0, 0, 0},
10621 {0x03, 0, 0, 0, 0},
10622 {0x04, 0, 0, 0, 0},
10623 {0x05, 0, 0, 0, 0},
10624 {0x06, 0, 0, 0, 0},
10625 {0x07, 0, 0, 0, 0},
10626 {0x08, 0, 0, 0, 0},
10627 {0x09, 0, 0, 0, 0},
10628 {0x0A, 0, 0, 0, 0},
10629 {0x0B, 0, 0, 0, 0},
10630 {0x0C, 0, 0, 0, 0},
10631 {0x0D, 0, 0, 0, 0},
10632 {0x0E, 0, 0, 0, 0},
10633 {0x0F, 0, 0, 0, 0},
10634 {0x10, 0, 0, 0, 0},
10635 {0x11, 0, 0, 0, 0},
10636 {0x12, 0, 0, 0, 0},
10637 {0x13, 0, 0, 0, 0},
10638 {0x14, 0, 0, 0, 0},
10639 {0x15, 0, 0, 0, 0},
10640 {0x16, 0, 0, 0, 0},
10641 {0x17, 0, 0, 0, 0},
10642 {0x18, 0, 0, 0, 0},
10643 {0x19, 0, 0, 0, 0},
10644 {0x1A, 0, 0, 0, 0},
10645 {0x1B, 0, 0, 0, 0},
10646 {0x1C, 0, 0, 0, 0},
10647 {0x1D, 0, 0, 0, 0},
10648 {0x1E, 0, 0, 0, 0},
10649 {0x1F, 0, 0, 0, 0},
10650 {0x20, 0, 0, 0, 0},
10651 {0x21, 0x88, 0x88, 0, 0},
10652 {0x22, 0x88, 0x88, 0, 0},
10653 {0x23, 0x88, 0x88, 0, 0},
10654 {0x24, 0x88, 0x88, 0, 0},
10655 {0x25, 0xc, 0xc, 0, 0},
10656 {0x26, 0, 0, 0, 0},
10657 {0x27, 0x3, 0x3, 0, 0},
10658 {0x28, 0, 0, 0, 0},
10659 {0x29, 0x3, 0x3, 0, 0},
10660 {0x2A, 0x37, 0x37, 0, 0},
10661 {0x2B, 0x3, 0x3, 0, 0},
10662 {0x2C, 0, 0, 0, 0},
10663 {0x2D, 0, 0, 0, 0},
10664 {0x2E, 0x1, 0x1, 0, 0},
10665 {0x2F, 0x1, 0x1, 0, 0},
10666 {0x30, 0, 0, 0, 0},
10667 {0x31, 0, 0, 0, 0},
10668 {0x32, 0, 0, 0, 0},
10669 {0x33, 0x11, 0x11, 0, 0},
10670 {0x34, 0xee, 0xee, 1, 1},
10671 {0x35, 0, 0, 0, 0},
10672 {0x36, 0, 0, 0, 0},
10673 {0x37, 0x3, 0x3, 0, 0},
10674 {0x38, 0x50, 0x50, 1, 1},
10675 {0x39, 0, 0, 0, 0},
10676 {0x3A, 0x50, 0x50, 1, 1},
10677 {0x3B, 0, 0, 0, 0},
10678 {0x3C, 0x6e, 0x6e, 0, 0},
10679 {0x3D, 0xf0, 0xf0, 1, 1},
10680 {0x3E, 0, 0, 0, 0},
10681 {0x3F, 0, 0, 0, 0},
10682 {0x40, 0, 0, 0, 0},
10683 {0x41, 0x3, 0x3, 0, 0},
10684 {0x42, 0x3, 0x3, 0, 0},
10685 {0x43, 0, 0, 0, 0},
10686 {0x44, 0x1e, 0x1e, 0, 0},
10687 {0x45, 0, 0, 0, 0},
10688 {0x46, 0x6e, 0x6e, 0, 0},
10689 {0x47, 0xf0, 0xf0, 1, 1},
10690 {0x48, 0, 0, 0, 0},
10691 {0x49, 0x2, 0x2, 0, 0},
10692 {0x4A, 0xff, 0xff, 1, 1},
10693 {0x4B, 0xc, 0xc, 0, 0},
10694 {0x4C, 0, 0, 0, 0},
10695 {0x4D, 0x38, 0x38, 0, 0},
10696 {0x4E, 0x70, 0x70, 1, 1},
10697 {0x4F, 0x2, 0x2, 0, 0},
10698 {0x50, 0x88, 0x88, 0, 0},
10699 {0x51, 0xc, 0xc, 0, 0},
10700 {0x52, 0, 0, 0, 0},
10701 {0x53, 0x8, 0x8, 0, 0},
10702 {0x54, 0x70, 0x70, 1, 1},
10703 {0x55, 0x2, 0x2, 0, 0},
10704 {0x56, 0xff, 0xff, 1, 1},
10705 {0x57, 0, 0, 0, 0},
10706 {0x58, 0x83, 0x83, 0, 0},
10707 {0x59, 0x77, 0x77, 1, 1},
10708 {0x5A, 0, 0, 0, 0},
10709 {0x5B, 0x2, 0x2, 0, 0},
10710 {0x5C, 0x88, 0x88, 0, 0},
10711 {0x5D, 0, 0, 0, 0},
10712 {0x5E, 0x8, 0x8, 0, 0},
10713 {0x5F, 0x77, 0x77, 1, 1},
10714 {0x60, 0x1, 0x1, 0, 0},
10715 {0x61, 0, 0, 0, 0},
10716 {0x62, 0x7, 0x7, 0, 0},
10717 {0x63, 0, 0, 0, 0},
10718 {0x64, 0x7, 0x7, 0, 0},
10719 {0x65, 0, 0, 0, 0},
10720 {0x66, 0, 0, 0, 0},
10721 {0x67, 0, 0, 1, 1},
10722 {0x68, 0, 0, 0, 0},
10723 {0x69, 0xa, 0xa, 0, 0},
10724 {0x6A, 0, 0, 0, 0},
10725 {0x6B, 0, 0, 0, 0},
10726 {0x6C, 0, 0, 0, 0},
10727 {0x6D, 0, 0, 0, 0},
10728 {0x6E, 0, 0, 0, 0},
10729 {0x6F, 0, 0, 0, 0},
10730 {0x70, 0, 0, 0, 0},
10731 {0x71, 0x2, 0x2, 0, 0},
10732 {0x72, 0, 0, 0, 0},
10733 {0x73, 0, 0, 0, 0},
10734 {0x74, 0xe, 0xe, 0, 0},
10735 {0x75, 0xe, 0xe, 0, 0},
10736 {0x76, 0xe, 0xe, 0, 0},
10737 {0x77, 0x13, 0x13, 0, 0},
10738 {0x78, 0x13, 0x13, 0, 0},
10739 {0x79, 0x1b, 0x1b, 0, 0},
10740 {0x7A, 0x1b, 0x1b, 0, 0},
10741 {0x7B, 0x55, 0x55, 0, 0},
10742 {0x7C, 0x5b, 0x5b, 0, 0},
10743 {0x7D, 0x30, 0x30, 1, 1},
10744 {0x7E, 0, 0, 0, 0},
10745 {0x7F, 0, 0, 0, 0},
10746 {0x80, 0, 0, 0, 0},
10747 {0x81, 0, 0, 0, 0},
10748 {0x82, 0, 0, 0, 0},
10749 {0x83, 0, 0, 0, 0},
10750 {0x84, 0, 0, 0, 0},
10751 {0x85, 0, 0, 0, 0},
10752 {0x86, 0, 0, 0, 0},
10753 {0x87, 0, 0, 0, 0},
10754 {0x88, 0, 0, 0, 0},
10755 {0x89, 0, 0, 0, 0},
10756 {0x8A, 0, 0, 0, 0},
10757 {0x8B, 0, 0, 0, 0},
10758 {0x8C, 0, 0, 0, 0},
10759 {0x8D, 0, 0, 0, 0},
10760 {0x8E, 0, 0, 0, 0},
10761 {0x8F, 0, 0, 0, 0},
10762 {0x90, 0, 0, 0, 0},
10763 {0x91, 0, 0, 0, 0},
10764 {0x92, 0, 0, 0, 0},
10765 {0x93, 0x70, 0x70, 0, 0},
10766 {0x94, 0x70, 0x70, 0, 0},
10767 {0x95, 0x70, 0x70, 0, 0},
10768 {0x96, 0x70, 0x70, 0, 0},
10769 {0x97, 0x70, 0x70, 0, 0},
10770 {0x98, 0x70, 0x70, 0, 0},
10771 {0x99, 0x70, 0x70, 0, 0},
10772 {0x9A, 0x70, 0x70, 0, 0},
10773 {0xFFFF, 0, 0, 0, 0},
10776 struct radio_regs regs_RX_2056_rev8[] = {
10777 {0x02, 0, 0, 0, 0},
10778 {0x03, 0, 0, 0, 0},
10779 {0x04, 0, 0, 0, 0},
10780 {0x05, 0, 0, 0, 0},
10781 {0x06, 0, 0, 0, 0},
10782 {0x07, 0, 0, 0, 0},
10783 {0x08, 0, 0, 0, 0},
10784 {0x09, 0, 0, 0, 0},
10785 {0x0A, 0, 0, 0, 0},
10786 {0x0B, 0, 0, 0, 0},
10787 {0x0C, 0, 0, 0, 0},
10788 {0x0D, 0, 0, 0, 0},
10789 {0x0E, 0, 0, 0, 0},
10790 {0x0F, 0, 0, 0, 0},
10791 {0x10, 0, 0, 0, 0},
10792 {0x11, 0, 0, 0, 0},
10793 {0x12, 0, 0, 0, 0},
10794 {0x13, 0, 0, 0, 0},
10795 {0x14, 0, 0, 0, 0},
10796 {0x15, 0, 0, 0, 0},
10797 {0x16, 0, 0, 0, 0},
10798 {0x17, 0, 0, 0, 0},
10799 {0x18, 0, 0, 0, 0},
10800 {0x19, 0, 0, 0, 0},
10801 {0x1A, 0, 0, 0, 0},
10802 {0x1B, 0, 0, 0, 0},
10803 {0x1C, 0, 0, 0, 0},
10804 {0x1D, 0, 0, 0, 0},
10805 {0x1E, 0, 0, 0, 0},
10806 {0x1F, 0, 0, 0, 0},
10807 {0x20, 0x3, 0x3, 0, 0},
10808 {0x21, 0, 0, 0, 0},
10809 {0x22, 0, 0, 0, 0},
10810 {0x23, 0x90, 0x90, 0, 0},
10811 {0x24, 0x55, 0x55, 0, 0},
10812 {0x25, 0x15, 0x15, 0, 0},
10813 {0x26, 0x5, 0x5, 0, 0},
10814 {0x27, 0x15, 0x15, 0, 0},
10815 {0x28, 0x5, 0x5, 0, 0},
10816 {0x29, 0x20, 0x20, 0, 0},
10817 {0x2A, 0x11, 0x11, 0, 0},
10818 {0x2B, 0x90, 0x90, 0, 0},
10819 {0x2C, 0, 0, 0, 0},
10820 {0x2D, 0x88, 0x88, 0, 0},
10821 {0x2E, 0x32, 0x32, 0, 0},
10822 {0x2F, 0x77, 0x77, 0, 0},
10823 {0x30, 0x17, 0x17, 1, 1},
10824 {0x31, 0xff, 0xff, 1, 1},
10825 {0x32, 0x20, 0x20, 0, 0},
10826 {0x33, 0, 0, 0, 0},
10827 {0x34, 0x88, 0x88, 0, 0},
10828 {0x35, 0x32, 0x32, 0, 0},
10829 {0x36, 0x77, 0x77, 0, 0},
10830 {0x37, 0x17, 0x17, 1, 1},
10831 {0x38, 0xf0, 0xf0, 1, 1},
10832 {0x39, 0x20, 0x20, 0, 0},
10833 {0x3A, 0x8, 0x8, 0, 0},
10834 {0x3B, 0x55, 0x55, 1, 1},
10835 {0x3C, 0, 0, 0, 0},
10836 {0x3D, 0x88, 0x88, 1, 1},
10837 {0x3E, 0, 0, 0, 0},
10838 {0x3F, 0x44, 0x44, 0, 0},
10839 {0x40, 0x7, 0x7, 1, 1},
10840 {0x41, 0x6, 0x6, 0, 0},
10841 {0x42, 0x4, 0x4, 0, 0},
10842 {0x43, 0, 0, 0, 0},
10843 {0x44, 0x8, 0x8, 0, 0},
10844 {0x45, 0x55, 0x55, 1, 1},
10845 {0x46, 0, 0, 0, 0},
10846 {0x47, 0x11, 0x11, 0, 0},
10847 {0x48, 0, 0, 0, 0},
10848 {0x49, 0x44, 0x44, 0, 0},
10849 {0x4A, 0x7, 0x7, 0, 0},
10850 {0x4B, 0x6, 0x6, 0, 0},
10851 {0x4C, 0x4, 0x4, 0, 0},
10852 {0x4D, 0, 0, 0, 0},
10853 {0x4E, 0, 0, 0, 0},
10854 {0x4F, 0x26, 0x26, 1, 1},
10855 {0x50, 0x26, 0x26, 1, 1},
10856 {0x51, 0xf, 0xf, 1, 1},
10857 {0x52, 0xf, 0xf, 1, 1},
10858 {0x53, 0x44, 0x44, 0, 0},
10859 {0x54, 0, 0, 0, 0},
10860 {0x55, 0, 0, 0, 0},
10861 {0x56, 0x8, 0x8, 0, 0},
10862 {0x57, 0x8, 0x8, 0, 0},
10863 {0x58, 0x7, 0x7, 0, 0},
10864 {0x59, 0x22, 0x22, 0, 0},
10865 {0x5A, 0x22, 0x22, 0, 0},
10866 {0x5B, 0x2, 0x2, 0, 0},
10867 {0x5C, 0x4, 0x4, 1, 1},
10868 {0x5D, 0x7, 0x7, 0, 0},
10869 {0x5E, 0x55, 0x55, 0, 0},
10870 {0x5F, 0x23, 0x23, 0, 0},
10871 {0x60, 0x41, 0x41, 0, 0},
10872 {0x61, 0x1, 0x1, 0, 0},
10873 {0x62, 0xa, 0xa, 0, 0},
10874 {0x63, 0, 0, 0, 0},
10875 {0x64, 0, 0, 0, 0},
10876 {0x65, 0, 0, 0, 0},
10877 {0x66, 0, 0, 0, 0},
10878 {0x67, 0, 0, 0, 0},
10879 {0x68, 0, 0, 0, 0},
10880 {0x69, 0, 0, 0, 0},
10881 {0x6A, 0, 0, 0, 0},
10882 {0x6B, 0xc, 0xc, 0, 0},
10883 {0x6C, 0, 0, 0, 0},
10884 {0x6D, 0, 0, 0, 0},
10885 {0x6E, 0, 0, 0, 0},
10886 {0x6F, 0, 0, 0, 0},
10887 {0x70, 0, 0, 0, 0},
10888 {0x71, 0, 0, 0, 0},
10889 {0x72, 0x22, 0x22, 0, 0},
10890 {0x73, 0x22, 0x22, 0, 0},
10891 {0x74, 0, 0, 1, 1},
10892 {0x75, 0xa, 0xa, 0, 0},
10893 {0x76, 0x1, 0x1, 0, 0},
10894 {0x77, 0x22, 0x22, 0, 0},
10895 {0x78, 0x30, 0x30, 0, 0},
10896 {0x79, 0, 0, 0, 0},
10897 {0x7A, 0, 0, 0, 0},
10898 {0x7B, 0, 0, 0, 0},
10899 {0x7C, 0, 0, 0, 0},
10900 {0x7D, 0x5, 0x5, 1, 1},
10901 {0x7E, 0, 0, 0, 0},
10902 {0x7F, 0, 0, 0, 0},
10903 {0x80, 0, 0, 0, 0},
10904 {0x81, 0, 0, 0, 0},
10905 {0x82, 0, 0, 0, 0},
10906 {0x83, 0, 0, 0, 0},
10907 {0x84, 0, 0, 0, 0},
10908 {0x85, 0, 0, 0, 0},
10909 {0x86, 0, 0, 0, 0},
10910 {0x87, 0, 0, 0, 0},
10911 {0x88, 0, 0, 0, 0},
10912 {0x89, 0, 0, 0, 0},
10913 {0x8A, 0, 0, 0, 0},
10914 {0x8B, 0, 0, 0, 0},
10915 {0x8C, 0, 0, 0, 0},
10916 {0x8D, 0, 0, 0, 0},
10917 {0x8E, 0, 0, 0, 0},
10918 {0x8F, 0, 0, 0, 0},
10919 {0x90, 0, 0, 0, 0},
10920 {0x91, 0, 0, 0, 0},
10921 {0x92, 0, 0, 0, 0},
10922 {0x93, 0, 0, 0, 0},
10923 {0x94, 0, 0, 0, 0},
10924 {0xFFFF, 0, 0, 0, 0},
10927 struct radio_regs regs_SYN_2056_rev11[] = {
10928 {0x02, 0, 0, 0, 0},
10929 {0x03, 0, 0, 0, 0},
10930 {0x04, 0, 0, 0, 0},
10931 {0x05, 0, 0, 0, 0},
10932 {0x06, 0, 0, 0, 0},
10933 {0x07, 0, 0, 0, 0},
10934 {0x08, 0, 0, 0, 0},
10935 {0x09, 0x1, 0x1, 0, 0},
10936 {0x0A, 0, 0, 0, 0},
10937 {0x0B, 0, 0, 0, 0},
10938 {0x0C, 0, 0, 0, 0},
10939 {0x0D, 0, 0, 0, 0},
10940 {0x0E, 0, 0, 0, 0},
10941 {0x0F, 0, 0, 0, 0},
10942 {0x10, 0, 0, 0, 0},
10943 {0x11, 0, 0, 0, 0},
10944 {0x12, 0, 0, 0, 0},
10945 {0x13, 0, 0, 0, 0},
10946 {0x14, 0, 0, 0, 0},
10947 {0x15, 0, 0, 0, 0},
10948 {0x16, 0, 0, 0, 0},
10949 {0x17, 0, 0, 0, 0},
10950 {0x18, 0, 0, 0, 0},
10951 {0x19, 0, 0, 0, 0},
10952 {0x1A, 0, 0, 0, 0},
10953 {0x1B, 0, 0, 0, 0},
10954 {0x1C, 0, 0, 0, 0},
10955 {0x1D, 0, 0, 0, 0},
10956 {0x1E, 0, 0, 0, 0},
10957 {0x1F, 0, 0, 0, 0},
10958 {0x20, 0, 0, 0, 0},
10959 {0x21, 0, 0, 0, 0},
10960 {0x22, 0x60, 0x60, 0, 0},
10961 {0x23, 0x6, 0x6, 0, 0},
10962 {0x24, 0xc, 0xc, 0, 0},
10963 {0x25, 0, 0, 0, 0},
10964 {0x26, 0, 0, 0, 0},
10965 {0x27, 0, 0, 0, 0},
10966 {0x28, 0x1, 0x1, 0, 0},
10967 {0x29, 0, 0, 0, 0},
10968 {0x2A, 0, 0, 0, 0},
10969 {0x2B, 0, 0, 0, 0},
10970 {0x2C, 0, 0, 0, 0},
10971 {0x2D, 0, 0, 0, 0},
10972 {0x2E, 0, 0, 0, 0},
10973 {0x2F, 0x1f, 0x1f, 0, 0},
10974 {0x30, 0x15, 0x15, 0, 0},
10975 {0x31, 0xf, 0xf, 0, 0},
10976 {0x32, 0, 0, 0, 0},
10977 {0x33, 0, 0, 0, 0},
10978 {0x34, 0, 0, 0, 0},
10979 {0x35, 0, 0, 0, 0},
10980 {0x36, 0, 0, 0, 0},
10981 {0x37, 0, 0, 0, 0},
10982 {0x38, 0, 0, 0, 0},
10983 {0x39, 0, 0, 0, 0},
10984 {0x3A, 0, 0, 0, 0},
10985 {0x3B, 0, 0, 0, 0},
10986 {0x3C, 0x13, 0x13, 0, 0},
10987 {0x3D, 0xf, 0xf, 0, 0},
10988 {0x3E, 0x18, 0x18, 0, 0},
10989 {0x3F, 0, 0, 0, 0},
10990 {0x40, 0, 0, 0, 0},
10991 {0x41, 0x20, 0x20, 0, 0},
10992 {0x42, 0x20, 0x20, 0, 0},
10993 {0x43, 0, 0, 0, 0},
10994 {0x44, 0x77, 0x77, 0, 0},
10995 {0x45, 0x7, 0x7, 0, 0},
10996 {0x46, 0x1, 0x1, 0, 0},
10997 {0x47, 0x6, 0x6, 1, 1},
10998 {0x48, 0xf, 0xf, 0, 0},
10999 {0x49, 0x3f, 0x3f, 1, 1},
11000 {0x4A, 0x32, 0x32, 0, 0},
11001 {0x4B, 0x6, 0x6, 1, 1},
11002 {0x4C, 0x6, 0x6, 1, 1},
11003 {0x4D, 0x4, 0x4, 0, 0},
11004 {0x4E, 0x2b, 0x2b, 1, 1},
11005 {0x4F, 0x1, 0x1, 0, 0},
11006 {0x50, 0x1c, 0x1c, 0, 0},
11007 {0x51, 0x2, 0x2, 0, 0},
11008 {0x52, 0x2, 0x2, 0, 0},
11009 {0x53, 0xf7, 0xf7, 1, 1},
11010 {0x54, 0xb4, 0xb4, 0, 0},
11011 {0x55, 0xd2, 0xd2, 0, 0},
11012 {0x56, 0, 0, 0, 0},
11013 {0x57, 0, 0, 0, 0},
11014 {0x58, 0x4, 0x4, 0, 0},
11015 {0x59, 0x96, 0x96, 0, 0},
11016 {0x5A, 0x3e, 0x3e, 0, 0},
11017 {0x5B, 0x3e, 0x3e, 0, 0},
11018 {0x5C, 0x13, 0x13, 0, 0},
11019 {0x5D, 0x2, 0x2, 0, 0},
11020 {0x5E, 0, 0, 0, 0},
11021 {0x5F, 0x7, 0x7, 0, 0},
11022 {0x60, 0x7, 0x7, 1, 1},
11023 {0x61, 0x8, 0x8, 0, 0},
11024 {0x62, 0x3, 0x3, 0, 0},
11025 {0x63, 0, 0, 0, 0},
11026 {0x64, 0, 0, 0, 0},
11027 {0x65, 0, 0, 0, 0},
11028 {0x66, 0, 0, 0, 0},
11029 {0x67, 0, 0, 0, 0},
11030 {0x68, 0x40, 0x40, 0, 0},
11031 {0x69, 0, 0, 0, 0},
11032 {0x6A, 0, 0, 0, 0},
11033 {0x6B, 0, 0, 0, 0},
11034 {0x6C, 0, 0, 0, 0},
11035 {0x6D, 0x1, 0x1, 0, 0},
11036 {0x6E, 0, 0, 0, 0},
11037 {0x6F, 0, 0, 0, 0},
11038 {0x70, 0x60, 0x60, 0, 0},
11039 {0x71, 0x66, 0x66, 0, 0},
11040 {0x72, 0xc, 0xc, 0, 0},
11041 {0x73, 0x66, 0x66, 0, 0},
11042 {0x74, 0x8f, 0x8f, 1, 1},
11043 {0x75, 0, 0, 0, 0},
11044 {0x76, 0xcc, 0xcc, 0, 0},
11045 {0x77, 0x1, 0x1, 0, 0},
11046 {0x78, 0x66, 0x66, 0, 0},
11047 {0x79, 0x66, 0x66, 0, 0},
11048 {0x7A, 0, 0, 0, 0},
11049 {0x7B, 0, 0, 0, 0},
11050 {0x7C, 0, 0, 0, 0},
11051 {0x7D, 0, 0, 0, 0},
11052 {0x7E, 0, 0, 0, 0},
11053 {0x7F, 0, 0, 0, 0},
11054 {0x80, 0, 0, 0, 0},
11055 {0x81, 0, 0, 0, 0},
11056 {0x82, 0, 0, 0, 0},
11057 {0x83, 0, 0, 0, 0},
11058 {0x84, 0, 0, 0, 0},
11059 {0x85, 0xff, 0xff, 0, 0},
11060 {0x86, 0, 0, 0, 0},
11061 {0x87, 0, 0, 0, 0},
11062 {0x88, 0, 0, 0, 0},
11063 {0x89, 0, 0, 0, 0},
11064 {0x8A, 0, 0, 0, 0},
11065 {0x8B, 0, 0, 0, 0},
11066 {0x8C, 0, 0, 0, 0},
11067 {0x8D, 0, 0, 0, 0},
11068 {0x8E, 0, 0, 0, 0},
11069 {0x8F, 0, 0, 0, 0},
11070 {0x90, 0, 0, 0, 0},
11071 {0x91, 0, 0, 0, 0},
11072 {0x92, 0, 0, 0, 0},
11073 {0x93, 0, 0, 0, 0},
11074 {0x94, 0, 0, 0, 0},
11075 {0x95, 0, 0, 0, 0},
11076 {0x96, 0, 0, 0, 0},
11077 {0x97, 0, 0, 0, 0},
11078 {0x98, 0, 0, 0, 0},
11079 {0x99, 0, 0, 0, 0},
11080 {0x9A, 0, 0, 0, 0},
11081 {0x9B, 0, 0, 0, 0},
11082 {0x9C, 0, 0, 0, 0},
11083 {0x9D, 0, 0, 0, 0},
11084 {0x9E, 0, 0, 0, 0},
11085 {0x9F, 0x6, 0x6, 0, 0},
11086 {0xA0, 0x66, 0x66, 0, 0},
11087 {0xA1, 0x66, 0x66, 0, 0},
11088 {0xA2, 0x66, 0x66, 0, 0},
11089 {0xA3, 0x66, 0x66, 0, 0},
11090 {0xA4, 0x66, 0x66, 0, 0},
11091 {0xA5, 0x66, 0x66, 0, 0},
11092 {0xA6, 0x66, 0x66, 0, 0},
11093 {0xA7, 0x66, 0x66, 0, 0},
11094 {0xA8, 0x66, 0x66, 0, 0},
11095 {0xA9, 0x66, 0x66, 0, 0},
11096 {0xAA, 0x66, 0x66, 0, 0},
11097 {0xAB, 0x66, 0x66, 0, 0},
11098 {0xAC, 0x66, 0x66, 0, 0},
11099 {0xAD, 0x66, 0x66, 0, 0},
11100 {0xAE, 0x66, 0x66, 0, 0},
11101 {0xAF, 0x66, 0x66, 0, 0},
11102 {0xB0, 0x66, 0x66, 0, 0},
11103 {0xB1, 0x66, 0x66, 0, 0},
11104 {0xB2, 0x66, 0x66, 0, 0},
11105 {0xB3, 0xa, 0xa, 0, 0},
11106 {0xB4, 0, 0, 0, 0},
11107 {0xB5, 0, 0, 0, 0},
11108 {0xB6, 0, 0, 0, 0},
11109 {0xFFFF, 0, 0, 0, 0},
11112 struct radio_regs regs_TX_2056_rev11[] = {
11113 {0x02, 0, 0, 0, 0},
11114 {0x03, 0, 0, 0, 0},
11115 {0x04, 0, 0, 0, 0},
11116 {0x05, 0, 0, 0, 0},
11117 {0x06, 0, 0, 0, 0},
11118 {0x07, 0, 0, 0, 0},
11119 {0x08, 0, 0, 0, 0},
11120 {0x09, 0, 0, 0, 0},
11121 {0x0A, 0, 0, 0, 0},
11122 {0x0B, 0, 0, 0, 0},
11123 {0x0C, 0, 0, 0, 0},
11124 {0x0D, 0, 0, 0, 0},
11125 {0x0E, 0, 0, 0, 0},
11126 {0x0F, 0, 0, 0, 0},
11127 {0x10, 0, 0, 0, 0},
11128 {0x11, 0, 0, 0, 0},
11129 {0x12, 0, 0, 0, 0},
11130 {0x13, 0, 0, 0, 0},
11131 {0x14, 0, 0, 0, 0},
11132 {0x15, 0, 0, 0, 0},
11133 {0x16, 0, 0, 0, 0},
11134 {0x17, 0, 0, 0, 0},
11135 {0x18, 0, 0, 0, 0},
11136 {0x19, 0, 0, 0, 0},
11137 {0x1A, 0, 0, 0, 0},
11138 {0x1B, 0, 0, 0, 0},
11139 {0x1C, 0, 0, 0, 0},
11140 {0x1D, 0, 0, 0, 0},
11141 {0x1E, 0, 0, 0, 0},
11142 {0x1F, 0, 0, 0, 0},
11143 {0x20, 0, 0, 0, 0},
11144 {0x21, 0x88, 0x88, 0, 0},
11145 {0x22, 0x88, 0x88, 0, 0},
11146 {0x23, 0x88, 0x88, 0, 0},
11147 {0x24, 0x88, 0x88, 0, 0},
11148 {0x25, 0xc, 0xc, 0, 0},
11149 {0x26, 0, 0, 0, 0},
11150 {0x27, 0x3, 0x3, 0, 0},
11151 {0x28, 0, 0, 0, 0},
11152 {0x29, 0x3, 0x3, 0, 0},
11153 {0x2A, 0x37, 0x37, 0, 0},
11154 {0x2B, 0x3, 0x3, 0, 0},
11155 {0x2C, 0, 0, 0, 0},
11156 {0x2D, 0, 0, 0, 0},
11157 {0x2E, 0x1, 0x1, 0, 0},
11158 {0x2F, 0x1, 0x1, 0, 0},
11159 {0x30, 0, 0, 0, 0},
11160 {0x31, 0, 0, 0, 0},
11161 {0x32, 0, 0, 0, 0},
11162 {0x33, 0x11, 0x11, 0, 0},
11163 {0x34, 0xee, 0xee, 1, 1},
11164 {0x35, 0, 0, 0, 0},
11165 {0x36, 0, 0, 0, 0},
11166 {0x37, 0x3, 0x3, 0, 0},
11167 {0x38, 0x50, 0x50, 1, 1},
11168 {0x39, 0, 0, 0, 0},
11169 {0x3A, 0x50, 0x50, 1, 1},
11170 {0x3B, 0, 0, 0, 0},
11171 {0x3C, 0x6e, 0x6e, 0, 0},
11172 {0x3D, 0xf0, 0xf0, 1, 1},
11173 {0x3E, 0, 0, 0, 0},
11174 {0x3F, 0, 0, 0, 0},
11175 {0x40, 0, 0, 0, 0},
11176 {0x41, 0x3, 0x3, 0, 0},
11177 {0x42, 0x3, 0x3, 0, 0},
11178 {0x43, 0, 0, 0, 0},
11179 {0x44, 0x1e, 0x1e, 0, 0},
11180 {0x45, 0, 0, 0, 0},
11181 {0x46, 0x6e, 0x6e, 0, 0},
11182 {0x47, 0xf0, 0xf0, 1, 1},
11183 {0x48, 0, 0, 0, 0},
11184 {0x49, 0x2, 0x2, 0, 0},
11185 {0x4A, 0xff, 0xff, 1, 1},
11186 {0x4B, 0xc, 0xc, 0, 0},
11187 {0x4C, 0, 0, 0, 0},
11188 {0x4D, 0x38, 0x38, 0, 0},
11189 {0x4E, 0x70, 0x70, 1, 1},
11190 {0x4F, 0x2, 0x2, 0, 0},
11191 {0x50, 0x88, 0x88, 0, 0},
11192 {0x51, 0xc, 0xc, 0, 0},
11193 {0x52, 0, 0, 0, 0},
11194 {0x53, 0x8, 0x8, 0, 0},
11195 {0x54, 0x70, 0x70, 1, 1},
11196 {0x55, 0x2, 0x2, 0, 0},
11197 {0x56, 0xff, 0xff, 1, 1},
11198 {0x57, 0, 0, 0, 0},
11199 {0x58, 0x83, 0x83, 0, 0},
11200 {0x59, 0x77, 0x77, 1, 1},
11201 {0x5A, 0, 0, 0, 0},
11202 {0x5B, 0x2, 0x2, 0, 0},
11203 {0x5C, 0x88, 0x88, 0, 0},
11204 {0x5D, 0, 0, 0, 0},
11205 {0x5E, 0x8, 0x8, 0, 0},
11206 {0x5F, 0x77, 0x77, 1, 1},
11207 {0x60, 0x1, 0x1, 0, 0},
11208 {0x61, 0, 0, 0, 0},
11209 {0x62, 0x7, 0x7, 0, 0},
11210 {0x63, 0, 0, 0, 0},
11211 {0x64, 0x7, 0x7, 0, 0},
11212 {0x65, 0, 0, 0, 0},
11213 {0x66, 0, 0, 0, 0},
11214 {0x67, 0, 0, 1, 1},
11215 {0x68, 0, 0, 0, 0},
11216 {0x69, 0xa, 0xa, 0, 0},
11217 {0x6A, 0, 0, 0, 0},
11218 {0x6B, 0, 0, 0, 0},
11219 {0x6C, 0, 0, 0, 0},
11220 {0x6D, 0, 0, 0, 0},
11221 {0x6E, 0, 0, 0, 0},
11222 {0x6F, 0, 0, 0, 0},
11223 {0x70, 0, 0, 0, 0},
11224 {0x71, 0x2, 0x2, 0, 0},
11225 {0x72, 0, 0, 0, 0},
11226 {0x73, 0, 0, 0, 0},
11227 {0x74, 0xe, 0xe, 0, 0},
11228 {0x75, 0xe, 0xe, 0, 0},
11229 {0x76, 0xe, 0xe, 0, 0},
11230 {0x77, 0x13, 0x13, 0, 0},
11231 {0x78, 0x13, 0x13, 0, 0},
11232 {0x79, 0x1b, 0x1b, 0, 0},
11233 {0x7A, 0x1b, 0x1b, 0, 0},
11234 {0x7B, 0x55, 0x55, 0, 0},
11235 {0x7C, 0x5b, 0x5b, 0, 0},
11236 {0x7D, 0x30, 0x30, 1, 1},
11237 {0x7E, 0, 0, 0, 0},
11238 {0x7F, 0, 0, 0, 0},
11239 {0x80, 0, 0, 0, 0},
11240 {0x81, 0, 0, 0, 0},
11241 {0x82, 0, 0, 0, 0},
11242 {0x83, 0, 0, 0, 0},
11243 {0x84, 0, 0, 0, 0},
11244 {0x85, 0, 0, 0, 0},
11245 {0x86, 0, 0, 0, 0},
11246 {0x87, 0, 0, 0, 0},
11247 {0x88, 0, 0, 0, 0},
11248 {0x89, 0, 0, 0, 0},
11249 {0x8A, 0, 0, 0, 0},
11250 {0x8B, 0, 0, 0, 0},
11251 {0x8C, 0, 0, 0, 0},
11252 {0x8D, 0, 0, 0, 0},
11253 {0x8E, 0, 0, 0, 0},
11254 {0x8F, 0, 0, 0, 0},
11255 {0x90, 0, 0, 0, 0},
11256 {0x91, 0, 0, 0, 0},
11257 {0x92, 0, 0, 0, 0},
11258 {0x93, 0x70, 0x70, 0, 0},
11259 {0x94, 0x70, 0x70, 0, 0},
11260 {0x95, 0x70, 0x70, 0, 0},
11261 {0x96, 0x70, 0x70, 0, 0},
11262 {0x97, 0x70, 0x70, 0, 0},
11263 {0x98, 0x70, 0x70, 0, 0},
11264 {0x99, 0x70, 0x70, 0, 0},
11265 {0x9A, 0x70, 0x70, 0, 0},
11266 {0xFFFF, 0, 0, 0, 0},
11269 struct radio_regs regs_RX_2056_rev11[] = {
11270 {0x02, 0, 0, 0, 0},
11271 {0x03, 0, 0, 0, 0},
11272 {0x04, 0, 0, 0, 0},
11273 {0x05, 0, 0, 0, 0},
11274 {0x06, 0, 0, 0, 0},
11275 {0x07, 0, 0, 0, 0},
11276 {0x08, 0, 0, 0, 0},
11277 {0x09, 0, 0, 0, 0},
11278 {0x0A, 0, 0, 0, 0},
11279 {0x0B, 0, 0, 0, 0},
11280 {0x0C, 0, 0, 0, 0},
11281 {0x0D, 0, 0, 0, 0},
11282 {0x0E, 0, 0, 0, 0},
11283 {0x0F, 0, 0, 0, 0},
11284 {0x10, 0, 0, 0, 0},
11285 {0x11, 0, 0, 0, 0},
11286 {0x12, 0, 0, 0, 0},
11287 {0x13, 0, 0, 0, 0},
11288 {0x14, 0, 0, 0, 0},
11289 {0x15, 0, 0, 0, 0},
11290 {0x16, 0, 0, 0, 0},
11291 {0x17, 0, 0, 0, 0},
11292 {0x18, 0, 0, 0, 0},
11293 {0x19, 0, 0, 0, 0},
11294 {0x1A, 0, 0, 0, 0},
11295 {0x1B, 0, 0, 0, 0},
11296 {0x1C, 0, 0, 0, 0},
11297 {0x1D, 0, 0, 0, 0},
11298 {0x1E, 0, 0, 0, 0},
11299 {0x1F, 0, 0, 0, 0},
11300 {0x20, 0x3, 0x3, 0, 0},
11301 {0x21, 0, 0, 0, 0},
11302 {0x22, 0, 0, 0, 0},
11303 {0x23, 0x90, 0x90, 0, 0},
11304 {0x24, 0x55, 0x55, 0, 0},
11305 {0x25, 0x15, 0x15, 0, 0},
11306 {0x26, 0x5, 0x5, 0, 0},
11307 {0x27, 0x15, 0x15, 0, 0},
11308 {0x28, 0x5, 0x5, 0, 0},
11309 {0x29, 0x20, 0x20, 0, 0},
11310 {0x2A, 0x11, 0x11, 0, 0},
11311 {0x2B, 0x90, 0x90, 0, 0},
11312 {0x2C, 0, 0, 0, 0},
11313 {0x2D, 0x88, 0x88, 0, 0},
11314 {0x2E, 0x32, 0x32, 0, 0},
11315 {0x2F, 0x77, 0x77, 0, 0},
11316 {0x30, 0x17, 0x17, 1, 1},
11317 {0x31, 0xff, 0xff, 1, 1},
11318 {0x32, 0x20, 0x20, 0, 0},
11319 {0x33, 0, 0, 0, 0},
11320 {0x34, 0x88, 0x88, 0, 0},
11321 {0x35, 0x32, 0x32, 0, 0},
11322 {0x36, 0x77, 0x77, 0, 0},
11323 {0x37, 0x17, 0x17, 1, 1},
11324 {0x38, 0xf0, 0xf0, 1, 1},
11325 {0x39, 0x20, 0x20, 0, 0},
11326 {0x3A, 0x8, 0x8, 0, 0},
11327 {0x3B, 0x55, 0x55, 1, 1},
11328 {0x3C, 0, 0, 0, 0},
11329 {0x3D, 0x88, 0x88, 1, 1},
11330 {0x3E, 0, 0, 0, 0},
11331 {0x3F, 0x44, 0x44, 0, 0},
11332 {0x40, 0x7, 0x7, 1, 1},
11333 {0x41, 0x6, 0x6, 0, 0},
11334 {0x42, 0x4, 0x4, 0, 0},
11335 {0x43, 0, 0, 0, 0},
11336 {0x44, 0x8, 0x8, 0, 0},
11337 {0x45, 0x55, 0x55, 1, 1},
11338 {0x46, 0, 0, 0, 0},
11339 {0x47, 0x11, 0x11, 0, 0},
11340 {0x48, 0, 0, 0, 0},
11341 {0x49, 0x44, 0x44, 0, 0},
11342 {0x4A, 0x7, 0x7, 0, 0},
11343 {0x4B, 0x6, 0x6, 0, 0},
11344 {0x4C, 0x4, 0x4, 0, 0},
11345 {0x4D, 0, 0, 0, 0},
11346 {0x4E, 0, 0, 0, 0},
11347 {0x4F, 0x26, 0x26, 1, 1},
11348 {0x50, 0x26, 0x26, 1, 1},
11349 {0x51, 0xf, 0xf, 1, 1},
11350 {0x52, 0xf, 0xf, 1, 1},
11351 {0x53, 0x44, 0x44, 0, 0},
11352 {0x54, 0, 0, 0, 0},
11353 {0x55, 0, 0, 0, 0},
11354 {0x56, 0x8, 0x8, 0, 0},
11355 {0x57, 0x8, 0x8, 0, 0},
11356 {0x58, 0x7, 0x7, 0, 0},
11357 {0x59, 0x22, 0x22, 0, 0},
11358 {0x5A, 0x22, 0x22, 0, 0},
11359 {0x5B, 0x2, 0x2, 0, 0},
11360 {0x5C, 0x4, 0x4, 1, 1},
11361 {0x5D, 0x7, 0x7, 0, 0},
11362 {0x5E, 0x55, 0x55, 0, 0},
11363 {0x5F, 0x23, 0x23, 0, 0},
11364 {0x60, 0x41, 0x41, 0, 0},
11365 {0x61, 0x1, 0x1, 0, 0},
11366 {0x62, 0xa, 0xa, 0, 0},
11367 {0x63, 0, 0, 0, 0},
11368 {0x64, 0, 0, 0, 0},
11369 {0x65, 0, 0, 0, 0},
11370 {0x66, 0, 0, 0, 0},
11371 {0x67, 0, 0, 0, 0},
11372 {0x68, 0, 0, 0, 0},
11373 {0x69, 0, 0, 0, 0},
11374 {0x6A, 0, 0, 0, 0},
11375 {0x6B, 0xc, 0xc, 0, 0},
11376 {0x6C, 0, 0, 0, 0},
11377 {0x6D, 0, 0, 0, 0},
11378 {0x6E, 0, 0, 0, 0},
11379 {0x6F, 0, 0, 0, 0},
11380 {0x70, 0, 0, 0, 0},
11381 {0x71, 0, 0, 0, 0},
11382 {0x72, 0x22, 0x22, 0, 0},
11383 {0x73, 0x22, 0x22, 0, 0},
11384 {0x74, 0, 0, 1, 1},
11385 {0x75, 0xa, 0xa, 0, 0},
11386 {0x76, 0x1, 0x1, 0, 0},
11387 {0x77, 0x22, 0x22, 0, 0},
11388 {0x78, 0x30, 0x30, 0, 0},
11389 {0x79, 0, 0, 0, 0},
11390 {0x7A, 0, 0, 0, 0},
11391 {0x7B, 0, 0, 0, 0},
11392 {0x7C, 0, 0, 0, 0},
11393 {0x7D, 0x5, 0x5, 1, 1},
11394 {0x7E, 0, 0, 0, 0},
11395 {0x7F, 0, 0, 0, 0},
11396 {0x80, 0, 0, 0, 0},
11397 {0x81, 0, 0, 0, 0},
11398 {0x82, 0, 0, 0, 0},
11399 {0x83, 0, 0, 0, 0},
11400 {0x84, 0, 0, 0, 0},
11401 {0x85, 0, 0, 0, 0},
11402 {0x86, 0, 0, 0, 0},
11403 {0x87, 0, 0, 0, 0},
11404 {0x88, 0, 0, 0, 0},
11405 {0x89, 0, 0, 0, 0},
11406 {0x8A, 0, 0, 0, 0},
11407 {0x8B, 0, 0, 0, 0},
11408 {0x8C, 0, 0, 0, 0},
11409 {0x8D, 0, 0, 0, 0},
11410 {0x8E, 0, 0, 0, 0},
11411 {0x8F, 0, 0, 0, 0},
11412 {0x90, 0, 0, 0, 0},
11413 {0x91, 0, 0, 0, 0},
11414 {0x92, 0, 0, 0, 0},
11415 {0x93, 0, 0, 0, 0},
11416 {0x94, 0, 0, 0, 0},
11417 {0xFFFF, 0, 0, 0, 0},
11420 struct radio_20xx_regs regs_2057_rev4[] = {
11810 struct radio_20xx_regs regs_2057_rev5[] = {
12142 struct radio_20xx_regs regs_2057_rev5v1[] = {
12474 struct radio_20xx_regs regs_2057_rev7[] = {
12890 struct radio_20xx_regs regs_2057_rev8[] = {
13306 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13308 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13309 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13311 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13313 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13314 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13315 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13316 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13317 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13318 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13319 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13320 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13321 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13324 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13325 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13326 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13327 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13328 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13329 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13330 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13331 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13332 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13336 static const u32 nphy_tpc_txgain[] = {
13337 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13338 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13339 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13340 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13341 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13342 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13343 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13344 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13345 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13346 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13347 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13348 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13349 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13350 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13351 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13352 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13353 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13354 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13355 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13356 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13357 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13358 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13359 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13360 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13361 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13362 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13363 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13364 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13365 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13366 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13367 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13368 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13371 static const u16 nphy_tpc_loscale[] = {
13372 256, 256, 271, 271, 287, 256, 256, 271,
13373 271, 287, 287, 304, 304, 256, 256, 271,
13374 271, 287, 287, 304, 304, 322, 322, 341,
13375 341, 362, 362, 383, 383, 256, 256, 271,
13376 271, 287, 287, 304, 304, 322, 322, 256,
13377 256, 271, 271, 287, 287, 304, 304, 322,
13378 322, 341, 341, 362, 362, 256, 256, 271,
13379 271, 287, 287, 304, 304, 322, 322, 256,
13380 256, 271, 271, 287, 287, 304, 304, 322,
13381 322, 341, 341, 362, 362, 256, 256, 271,
13382 271, 287, 287, 304, 304, 322, 322, 341,
13383 341, 362, 362, 383, 383, 406, 406, 430,
13384 430, 455, 455, 482, 482, 511, 511, 541,
13385 541, 573, 573, 607, 607, 643, 643, 681,
13386 681, 722, 722, 764, 764, 810, 810, 858,
13387 858, 908, 908, 962, 962, 1019, 1019, 256
13390 static u32 nphy_tpc_txgain_ipa[] = {
13391 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13392 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13393 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13394 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13395 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13396 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13397 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13398 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13399 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13400 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13401 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13402 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13403 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13404 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13405 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13406 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13407 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13408 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13409 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13410 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13411 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13412 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13413 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13414 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13415 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13416 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13417 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13418 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13419 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13420 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13421 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13422 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13425 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13426 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13427 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13428 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13429 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13430 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13431 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13432 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13433 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13434 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13435 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13436 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13437 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13438 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13439 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13440 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13441 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13442 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13443 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13444 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13445 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13446 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13447 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13448 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13449 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13450 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13451 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13452 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13453 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13454 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13455 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13456 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13457 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13460 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13461 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13462 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13463 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13464 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13465 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13466 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13467 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13468 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13469 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13470 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13471 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13472 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13473 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13474 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13475 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13476 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13477 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13478 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13479 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13480 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13481 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13482 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13483 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13484 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13485 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13486 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13487 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13488 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13489 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13490 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13491 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13492 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13495 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13496 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13497 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13498 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13499 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13500 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13501 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13502 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13503 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13504 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13505 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13506 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13507 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13508 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13509 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13510 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13511 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13512 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13513 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13514 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13515 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13516 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13517 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13518 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13519 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13520 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13521 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13522 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13523 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13524 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13525 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13526 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13527 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13530 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13531 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13532 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13533 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13534 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13535 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13536 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13537 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13538 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13539 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13540 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13541 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13542 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13543 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13544 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13545 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13546 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13547 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13548 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13549 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13550 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13551 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13552 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13553 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13554 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13555 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13556 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13557 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13558 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13559 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13560 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13561 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13562 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13565 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13566 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13567 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13568 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13569 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13570 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13571 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13572 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13573 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13574 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13575 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13576 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13577 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13578 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13579 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13580 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13581 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13582 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13583 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13584 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13585 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13586 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13587 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13588 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13589 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13590 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13591 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13592 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13593 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13594 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13595 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13596 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13597 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13600 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13601 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13602 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13603 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13604 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13605 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13606 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13607 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13608 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13609 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13610 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13611 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13612 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13613 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13614 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13615 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13616 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13617 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13618 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13619 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13620 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13621 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13622 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13623 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13624 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13625 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13626 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13627 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13628 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13629 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13630 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13631 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13632 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13635 static u32 nphy_tpc_txgain_ipa_5g[] = {
13636 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13637 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13638 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13639 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13640 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13641 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13642 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13643 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13644 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13645 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13646 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13647 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13648 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13649 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13650 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13651 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13652 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13653 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13654 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13655 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13656 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13657 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13658 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13659 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13660 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13661 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13662 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13663 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13664 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13665 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13666 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13667 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13670 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13671 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13672 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13673 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13674 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13675 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13676 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13677 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13678 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13679 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13680 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13681 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13682 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13683 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13684 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13685 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13686 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13687 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13688 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13689 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13690 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13691 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13692 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13693 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13694 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13695 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13696 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13697 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13698 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13699 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13700 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13701 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13702 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13705 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13706 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13707 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13708 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13709 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13710 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13711 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13712 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13713 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13714 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13715 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13716 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13717 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13718 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13719 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13720 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13721 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13722 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13723 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13724 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13725 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13726 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13727 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13728 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13729 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13730 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13731 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13732 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13733 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13734 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13735 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13736 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13737 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13740 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13741 -114, -108, -98, -91, -84, -78, -70, -62,
13742 -54, -46, -39, -31, -23, -15, -8, 0
13745 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13746 -100, -95, -89, -83, -77, -70, -63, -56,
13747 -48, -41, -33, -25, -19, -12, -6, 0
13750 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13751 -159, -113, -86, -72, -62, -54, -48, -43,
13752 -39, -35, -31, -28, -25, -23, -20, -18,
13753 -17, -15, -13, -11, -10, -8, -7, -6,
13754 -5, -4, -3, -3, -2, -1, -1, 0
13757 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13758 -109, -109, -82, -68, -58, -50, -44, -39,
13759 -35, -31, -28, -26, -23, -21, -19, -17,
13760 -16, -14, -13, -11, -10, -9, -8, -7,
13761 -5, -5, -4, -3, -2, -1, -1, 0
13764 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13765 -122, -122, -95, -80, -69, -61, -54, -49,
13766 -43, -39, -35, -32, -28, -26, -23, -21,
13767 -18, -16, -15, -13, -11, -10, -8, -7,
13768 -6, -5, -4, -3, -2, -1, -1, 0
13771 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13772 -107, -101, -92, -85, -78, -71, -62, -55,
13773 -47, -39, -32, -24, -19, -12, -6, 0
13776 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13777 -110, -104, -95, -88, -81, -74, -66, -58,
13778 -50, -44, -36, -28, -23, -15, -8, 0
13781 static u8 pad_gain_codes_used_2057rev5[] = {
13782 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13783 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13786 static u8 pad_gain_codes_used_2057rev7[] = {
13787 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13791 static u8 pad_all_gain_codes_2057[] = {
13792 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13793 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13794 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13798 static u8 pga_all_gain_codes_2057[] = {
13799 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13802 static u32 nphy_papd_scaltbl[] = {
13803 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13804 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13805 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13806 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13807 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13808 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13809 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13810 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13811 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13812 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13813 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13814 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13815 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13816 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13817 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13818 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13821 static u32 nphy_tpc_txgain_rev3[] = {
13822 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13823 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13824 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13825 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13826 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13827 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13828 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13829 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13830 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13831 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13832 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13833 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13834 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13835 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13836 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13837 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13838 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13839 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13840 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13841 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13842 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13843 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13844 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13845 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13846 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13847 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13848 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13849 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13850 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13851 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13852 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13853 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13856 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13857 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13858 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13859 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13860 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13861 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13862 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13863 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13864 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13865 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13866 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13867 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13868 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13869 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13870 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13871 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13872 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13873 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13874 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13875 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13876 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13877 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13878 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13879 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13880 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13881 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13882 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13883 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13884 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13885 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13886 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13887 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13888 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13891 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13892 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13893 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13894 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13895 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13896 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13897 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13898 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13899 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13900 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13901 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13902 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13903 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13904 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13905 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13906 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13907 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13908 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13909 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13910 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13911 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13912 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13913 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13914 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13915 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13916 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13917 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13918 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13919 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13920 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13921 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13922 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13923 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13926 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13927 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13928 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13929 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13930 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13931 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13932 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13933 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13934 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13935 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13936 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13937 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13938 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13939 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13940 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13941 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13942 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13943 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13944 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13945 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13946 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13947 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13948 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13949 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13950 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13951 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13952 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13953 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13954 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13955 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13956 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13957 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13958 0x10090001, 0x10090001, 0x10090001, 0x10090001
13961 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13962 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13963 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13964 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13965 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13966 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13967 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13968 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13969 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13970 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13971 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13972 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13973 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13974 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13975 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13976 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13977 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13978 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13979 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13980 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13981 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13982 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13983 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13984 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13985 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13986 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13987 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13988 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13989 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13990 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13991 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13992 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13993 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13996 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
13997 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13998 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13999 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14000 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14001 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14002 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14003 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14004 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14005 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14006 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14007 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14008 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14009 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14010 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14011 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14012 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14013 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14014 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14015 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14016 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14017 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14018 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14019 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14020 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14021 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14022 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14023 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14024 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14025 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14026 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14027 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14028 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14031 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14032 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14033 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14034 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14035 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14036 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14037 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14038 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14039 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14040 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14041 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14042 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14043 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14044 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14045 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14046 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14047 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14048 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14049 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14050 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14051 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14052 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14053 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14054 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14055 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14056 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14057 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14058 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14059 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14060 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14061 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14062 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14063 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14066 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14067 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14068 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14069 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14070 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14071 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14072 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14073 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14074 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14075 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14076 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14077 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14078 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14079 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14080 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14081 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14082 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14083 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14084 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14085 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14086 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14087 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14088 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14089 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14090 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14091 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14092 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14093 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14094 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14095 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14096 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14097 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14098 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14101 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14102 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14103 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14104 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14106 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14107 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14110 static bool wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
14111 struct chan_info_nphy_radio2057 **t0,
14112 struct chan_info_nphy_radio205x **t1,
14113 struct chan_info_nphy_radio2057_rev5 **t2,
14114 struct chan_info_nphy_2055 **t3);
14115 static void wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chans,
14116 const struct nphy_sfo_cfg *c);
14118 static void wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi,
14119 u16 reduction_factr);
14120 static void wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi,
14121 int ntones, int *, u32 *buf);
14122 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr);
14123 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi);
14124 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi);
14126 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi);
14127 static void wlc_phy_radio_init_2055(struct brcms_phy *pi);
14128 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi);
14129 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi);
14130 static void wlc_phy_radio_init_2056(struct brcms_phy *pi);
14131 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi);
14132 static void wlc_phy_radio_init_2057(struct brcms_phy *pi);
14133 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi);
14134 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi);
14135 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi);
14136 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi);
14137 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi);
14138 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi);
14140 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi);
14141 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi);
14142 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi);
14143 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
14144 struct nphy_txgains tg, u8 type, bool d);
14145 static void wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rxcore,
14147 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble);
14148 static void wlc_phy_savecal_nphy(struct brcms_phy *pi);
14149 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi);
14150 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi);
14152 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi);
14153 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi);
14154 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi);
14155 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core);
14157 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi);
14158 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi);
14159 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi);
14160 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi);
14161 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1);
14162 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi);
14164 static void wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32,
14166 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core);
14167 static void wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *,
14168 enum phy_cal_mode, u8);
14171 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
14172 struct nphy_papd_restore_state *state);
14174 static void wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
14175 struct nphy_papd_restore_state *state,
14178 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals);
14180 static void wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *evts,
14183 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset);
14186 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14187 u8 core_mask, u8 off,
14190 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type);
14191 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi);
14193 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi);
14194 static void wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max,
14196 u8 tmp_max_pwr, u8 rate_start,
14199 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi);
14200 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi);
14201 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi);
14202 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi);
14204 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi);
14205 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core);
14206 static void wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0,
14208 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal);
14210 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi);
14212 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi);
14214 static u16 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz,
14217 static void wlc_phy_loadsampletable_nphy(struct brcms_phy *pi,
14218 struct cordic_iq *tone_buf,
14220 static void wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 n, u16 lps,
14221 u16 wait, u8 iq, u8 dac_test_mode,
14222 bool modify_bbmult);
14224 bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
14226 struct brcms_phy *pi = (struct brcms_phy *) pih;
14227 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14229 if (NREV_GE(pi->pubpi.phy_rev, 16))
14232 phybist0 = read_phy_reg(pi, 0x0e);
14233 phybist1 = read_phy_reg(pi, 0x0f);
14234 phybist2 = read_phy_reg(pi, 0xea);
14235 phybist3 = read_phy_reg(pi, 0xeb);
14236 phybist4 = read_phy_reg(pi, 0x156);
14238 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14239 (phybist3 == 0) && (phybist4 == 0))
14245 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14250 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14251 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14252 write_phy_reg(pi, addr, val);
14253 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14259 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14263 wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14264 u32 width, const void *data)
14266 struct phytbl_info tbl;
14270 tbl.tbl_offset = offset;
14271 tbl.tbl_width = width;
14272 tbl.tbl_ptr = data;
14273 wlc_phy_write_table_nphy(pi, &tbl);
14277 wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14278 u32 width, void *data)
14280 struct phytbl_info tbl;
14284 tbl.tbl_offset = offset;
14285 tbl.tbl_width = width;
14286 tbl.tbl_ptr = data;
14287 wlc_phy_read_table_nphy(pi, &tbl);
14291 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14295 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14296 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14297 wlc_phy_write_table_nphy(pi,
14298 &mimophytbl_info_rev16[idx]);
14299 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14300 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14301 wlc_phy_write_table_nphy(pi,
14302 &mimophytbl_info_rev7[idx]);
14303 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14304 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14305 wlc_phy_write_table_nphy(pi,
14306 &mimophytbl_info_rev3[idx]);
14308 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14309 wlc_phy_write_table_nphy(pi,
14310 &mimophytbl_info_rev0[idx]);
14314 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14319 if (pi->phy_init_por)
14320 wlc_phy_static_table_download_nphy(pi);
14322 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14324 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14325 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14328 switch (antswctrllut) {
14336 wlc_phy_table_write_nphy(
14338 NPHY_TBL_ID_ANTSWCTRLLUT,
14340 &ant_sw_ctrl_tbl_rev8_2o3[0]);
14342 wlc_phy_table_write_nphy(
14344 NPHY_TBL_ID_ANTSWCTRLLUT,
14346 &ant_sw_ctrl_tbl_rev8
14349 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14351 &ant_sw_ctrl_tbl_rev8[2]);
14352 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14354 &ant_sw_ctrl_tbl_rev8[4]);
14359 wlc_phy_table_write_nphy(
14360 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14362 &ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14363 wlc_phy_table_write_nphy(
14364 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14366 &ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14367 wlc_phy_table_write_nphy(
14368 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14370 &ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14372 wlc_phy_table_write_nphy(
14373 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14375 &ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14376 wlc_phy_table_write_nphy(
14377 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14379 &ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14380 wlc_phy_table_write_nphy(
14381 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14383 &ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14390 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14391 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14393 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14395 CHSPEC_IS2G(pi->radio_chanspec) ?
14396 pi->srom_fem2g.antswctrllut :
14397 pi->srom_fem5g.antswctrllut;
14398 switch (antswctrllut) {
14400 wlc_phy_write_table_nphy(
14402 &mimophytbl_info_rev3_volatile
14406 wlc_phy_write_table_nphy(
14408 &mimophytbl_info_rev3_volatile1
14412 wlc_phy_write_table_nphy(
14414 &mimophytbl_info_rev3_volatile2
14418 wlc_phy_write_table_nphy(
14420 &mimophytbl_info_rev3_volatile3
14427 wlc_phy_write_table_nphy(
14429 &mimophytbl_info_rev3_volatile[idx]);
14433 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14434 wlc_phy_write_table_nphy(pi,
14435 &mimophytbl_info_rev0_volatile
14441 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14443 write_phy_reg(pi, 0x77, holdoff);
14444 write_phy_reg(pi, 0xb4, delay);
14447 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
14449 u16 holdoff, delay;
14461 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14463 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs))
14464 pi->sh->_rifs_phy = rifs;
14467 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14471 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14472 pi->phyhang_avoid = true;
14474 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14475 pi->nphy_gband_spurwar_en = true;
14476 if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14477 pi->nphy_aband_spurwar_en = true;
14479 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14480 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14481 pi->nphy_gband_spurwar2_en = true;
14484 pi->n_preamble_override = AUTO;
14485 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14486 pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14488 pi->nphy_txrx_chain = AUTO;
14489 pi->phy_scraminit = AUTO;
14491 pi->nphy_rxcalparams = 0x010100B5;
14493 pi->nphy_perical = PHY_PERICAL_MPHASE;
14494 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14495 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14497 pi->nphy_gain_boost = true;
14498 pi->nphy_elna_gain_config = false;
14499 pi->radio_is_on = false;
14501 for (i = 0; i < pi->pubpi.phy_corenum; i++)
14502 pi->nphy_txpwrindex[i].index = AUTO;
14504 wlc_phy_txpwrctrl_config_nphy(pi);
14505 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14506 pi->hwpwrctrl_capable = true;
14508 pi->pi_fptr.init = wlc_phy_init_nphy;
14509 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14510 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14511 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14513 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14519 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14522 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14523 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14524 pi->phy_5g_pwrgain = true;
14528 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14529 pi->phy_5g_pwrgain = false;
14531 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14532 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14533 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14534 else if ((pi->sh->sromrev >= 4)
14535 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14536 pi->phy_5g_pwrgain = true;
14539 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14541 s32 rfpwr_offset = 0;
14543 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14544 if ((pi->pubpi.radiorev == 3) ||
14545 (pi->pubpi.radiorev == 4) ||
14546 (pi->pubpi.radiorev == 6))
14547 rfpwr_offset = (s16)
14548 nphy_papd_padgain_dlt_2g_2057rev3n4
14550 else if (pi->pubpi.radiorev == 5)
14551 rfpwr_offset = (s16)
14552 nphy_papd_padgain_dlt_2g_2057rev5
14554 else if ((pi->pubpi.radiorev == 7)
14555 || (pi->pubpi.radiorev ==
14557 rfpwr_offset = (s16)
14558 nphy_papd_padgain_dlt_2g_2057rev7
14561 if ((pi->pubpi.radiorev == 3) ||
14562 (pi->pubpi.radiorev == 4) ||
14563 (pi->pubpi.radiorev == 6))
14564 rfpwr_offset = (s16)
14565 nphy_papd_pgagain_dlt_5g_2057
14567 else if ((pi->pubpi.radiorev == 7)
14568 || (pi->pubpi.radiorev ==
14570 rfpwr_offset = (s16)
14571 nphy_papd_pgagain_dlt_5g_2057rev7
14574 return rfpwr_offset;
14577 void wlc_phy_init_nphy(struct brcms_phy *pi)
14581 struct nphy_txgains target_gain;
14582 u8 tx_pwr_ctrl_state;
14583 bool do_nphy_cal = false;
14585 uint origidx, intr_val;
14586 struct d11regs *regs;
14587 u32 d11_clk_ctl_st;
14588 bool do_rssi_cal = false;
14592 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
14593 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
14595 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
14596 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
14597 (pi->sh->chippkg == BCM4718_PKG_ID))) {
14598 if ((pi->sh->boardflags & BFL_EXTLNA) &&
14599 (CHSPEC_IS2G(pi->radio_chanspec)))
14600 ai_corereg(pi->sh->sih, SI_CC_IDX,
14601 offsetof(struct chipcregs, chipcontrol),
14605 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
14606 CHSPEC_IS40(pi->radio_chanspec)) {
14608 regs = (struct d11regs *) ai_switch_core(pi->sh->sih,
14609 D11_CORE_ID, &origidx,
14611 d11_clk_ctl_st = R_REG(®s->clk_ctl_st);
14612 AND_REG(®s->clk_ctl_st,
14613 ~(CCS_FORCEHT | CCS_HTAREQ));
14615 W_REG(®s->clk_ctl_st, d11_clk_ctl_st);
14617 ai_restore_core(pi->sh->sih, origidx, intr_val);
14620 pi->use_int_tx_iqlo_cal_nphy =
14622 (NREV_GE(pi->pubpi.phy_rev, 7) ||
14623 (NREV_GE(pi->pubpi.phy_rev, 5)
14624 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
14626 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
14628 pi->nphy_deaf_count = 0;
14630 wlc_phy_tbl_init_nphy(pi);
14632 pi->nphy_crsminpwr_adjusted = false;
14633 pi->nphy_noisevars_adjusted = false;
14635 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14636 write_phy_reg(pi, 0xe7, 0);
14637 write_phy_reg(pi, 0xec, 0);
14638 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14639 write_phy_reg(pi, 0x342, 0);
14640 write_phy_reg(pi, 0x343, 0);
14641 write_phy_reg(pi, 0x346, 0);
14642 write_phy_reg(pi, 0x347, 0);
14644 write_phy_reg(pi, 0xe5, 0);
14645 write_phy_reg(pi, 0xe6, 0);
14647 write_phy_reg(pi, 0xec, 0);
14650 write_phy_reg(pi, 0x91, 0);
14651 write_phy_reg(pi, 0x92, 0);
14652 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
14653 write_phy_reg(pi, 0x93, 0);
14654 write_phy_reg(pi, 0x94, 0);
14657 and_phy_reg(pi, 0xa1, ~3);
14659 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14660 write_phy_reg(pi, 0x8f, 0);
14661 write_phy_reg(pi, 0xa5, 0);
14663 write_phy_reg(pi, 0xa5, 0);
14666 if (NREV_IS(pi->pubpi.phy_rev, 2))
14667 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
14668 else if (NREV_LT(pi->pubpi.phy_rev, 2))
14669 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
14671 write_phy_reg(pi, 0x203, 32);
14672 write_phy_reg(pi, 0x201, 32);
14674 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
14675 write_phy_reg(pi, 0x20d, 160);
14677 write_phy_reg(pi, 0x20d, 184);
14679 write_phy_reg(pi, 0x13a, 200);
14681 write_phy_reg(pi, 0x70, 80);
14683 write_phy_reg(pi, 0x1ff, 48);
14685 if (NREV_LT(pi->pubpi.phy_rev, 8))
14686 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
14688 wlc_phy_stf_chain_upd_nphy(pi);
14690 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
14691 write_phy_reg(pi, 0x180, 0xaa8);
14692 write_phy_reg(pi, 0x181, 0x9a4);
14696 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
14698 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
14699 0x29b, (0x1 << 0), (1) << 0);
14701 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
14702 0x29c, (0x1ff << 7),
14703 (pi->nphy_papd_epsilon_offset[core]) << 7);
14707 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
14708 } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
14709 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
14712 wlc_phy_workarounds_nphy(pi);
14714 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14716 val = read_phy_reg(pi, 0x01);
14717 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14718 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14719 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14721 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
14723 wlc_phy_pa_override_nphy(pi, OFF);
14724 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
14725 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14726 wlc_phy_pa_override_nphy(pi, ON);
14728 wlc_phy_classifier_nphy(pi, 0, 0);
14729 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
14731 if (CHSPEC_IS2G(pi->radio_chanspec))
14732 wlc_phy_bphy_init_nphy(pi);
14734 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
14735 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
14737 wlc_phy_txpwr_fixpower_nphy(pi);
14739 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
14741 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
14743 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14744 u32 *tx_pwrctrl_tbl = NULL;
14751 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14753 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14754 if (NREV_IS(pi->pubpi.phy_rev, 3))
14756 nphy_tpc_5GHz_txgain_rev3;
14757 else if (NREV_IS(pi->pubpi.phy_rev, 4))
14759 (pi->srom_fem5g.extpagain ==
14761 nphy_tpc_5GHz_txgain_HiPwrEPA :
14762 nphy_tpc_5GHz_txgain_rev4;
14765 nphy_tpc_5GHz_txgain_rev5;
14767 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14768 if (pi->pubpi.radiorev == 5)
14770 nphy_tpc_txgain_epa_2057rev5;
14771 else if (pi->pubpi.radiorev == 3)
14773 nphy_tpc_txgain_epa_2057rev3;
14775 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14776 (pi->srom_fem2g.extpagain == 3))
14778 nphy_tpc_txgain_HiPwrEPA;
14781 nphy_tpc_txgain_rev3;
14786 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14787 192, 32, tx_pwrctrl_tbl);
14788 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14789 192, 32, tx_pwrctrl_tbl);
14791 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
14793 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14795 for (idx = 0; idx < 128; idx++) {
14796 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14797 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
14798 rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
14800 wlc_phy_table_write_nphy(
14802 NPHY_TBL_ID_CORE1TXPWRCTL,
14805 wlc_phy_table_write_nphy(
14807 NPHY_TBL_ID_CORE2TXPWRCTL,
14813 for (idx = 0; idx < 128; idx++) {
14814 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14815 if (CHSPEC_IS2G(pi->radio_chanspec))
14816 rfpwr_offset = (s16)
14817 nphy_papd_pga_gain_delta_ipa_2g
14820 rfpwr_offset = (s16)
14821 nphy_papd_pga_gain_delta_ipa_5g
14824 wlc_phy_table_write_nphy(
14826 NPHY_TBL_ID_CORE1TXPWRCTL,
14829 wlc_phy_table_write_nphy(
14831 NPHY_TBL_ID_CORE2TXPWRCTL,
14839 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14840 192, 32, nphy_tpc_txgain);
14841 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14842 192, 32, nphy_tpc_txgain);
14845 if (pi->sh->phyrxchain != 0x3)
14846 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
14847 pi->sh->phyrxchain);
14849 if (PHY_PERICAL_MPHASE_PENDING(pi))
14850 wlc_phy_cal_perical_mphase_restart(pi);
14852 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14853 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14854 (pi->nphy_rssical_chanspec_2G == 0) :
14855 (pi->nphy_rssical_chanspec_5G == 0);
14858 wlc_phy_rssi_cal_nphy(pi);
14860 wlc_phy_restore_rssical_nphy(pi);
14862 wlc_phy_rssi_cal_nphy(pi);
14865 if (!SCAN_RM_IN_PROGRESS(pi))
14866 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14867 (pi->nphy_iqcal_chanspec_2G == 0) :
14868 (pi->nphy_iqcal_chanspec_5G == 0);
14870 if (!pi->do_initcal)
14871 do_nphy_cal = false;
14875 target_gain = wlc_phy_get_tx_gain_nphy(pi);
14877 if (pi->antsel_type == ANTSEL_2x3)
14878 wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
14881 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
14882 wlc_phy_rssi_cal_nphy(pi);
14884 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14885 pi->nphy_cal_orig_pwr_idx[0] =
14886 pi->nphy_txpwrindex[PHY_CORE_0]
14889 pi->nphy_cal_orig_pwr_idx[1] =
14890 pi->nphy_txpwrindex[PHY_CORE_1]
14894 wlc_phy_precal_txgain_nphy(pi);
14896 wlc_phy_get_tx_gain_nphy(pi);
14899 if (wlc_phy_cal_txiqlo_nphy
14900 (pi, target_gain, true,
14902 if (wlc_phy_cal_rxiq_nphy
14903 (pi, target_gain, 2,
14905 wlc_phy_savecal_nphy(pi);
14908 } else if (pi->mphase_cal_phase_id ==
14909 MPHASE_CAL_STATE_IDLE) {
14910 wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
14911 PHY_PERICAL_PHYINIT);
14914 wlc_phy_restorecal_nphy(pi);
14917 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
14919 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
14921 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
14923 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
14925 write_phy_reg(pi, 0x70, 50);
14927 wlc_phy_txlpfbw_nphy(pi);
14929 wlc_phy_spurwar_nphy(pi);
14933 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14935 bool gf_preamble = false;
14938 if (preamble == BRCMS_N_PREAMBLE_GF)
14939 gf_preamble = true;
14941 val = read_phy_reg(pi, 0xed);
14943 val |= RX_GF_MM_AUTO;
14944 val &= ~RX_GF_OR_MM;
14946 val |= RX_GF_OR_MM;
14948 write_phy_reg(pi, 0xed, val);
14951 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
14955 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14957 val = read_phy_reg(pi, 0x01);
14958 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14960 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14962 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14964 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14967 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
14969 u16 rfctrlintc_override_val;
14973 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
14974 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
14976 if (NREV_GE(pi->pubpi.phy_rev, 7))
14977 rfctrlintc_override_val = 0x1480;
14978 else if (NREV_GE(pi->pubpi.phy_rev, 3))
14979 rfctrlintc_override_val =
14980 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
14982 rfctrlintc_override_val =
14983 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
14985 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
14986 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
14988 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
14989 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
14994 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
14998 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
14999 bool CoreActv_override = false;
15001 if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
15002 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
15003 CoreActv_override = true;
15005 if (NREV_LE(pi->pubpi.phy_rev, 2))
15006 and_phy_reg(pi, 0xa0, ~0x20);
15007 } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
15008 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
15009 CoreActv_override = true;
15011 if (NREV_LE(pi->pubpi.phy_rev, 2))
15012 or_phy_reg(pi, 0xa0, 0x20);
15015 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
15017 if (CoreActv_override) {
15018 pi->nphy_perical = PHY_PERICAL_DISABLE;
15019 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
15021 pi->nphy_perical = PHY_PERICAL_MPHASE;
15022 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
15026 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
15031 struct brcms_phy *pi = (struct brcms_phy *) pih;
15035 pi->sh->phyrxchain = rxcore_bitmask;
15040 suspend = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
15042 wlapi_suspend_mac_and_wait(pi->sh->physhim);
15044 if (pi->phyhang_avoid)
15045 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15047 regval = read_phy_reg(pi, 0xa2);
15048 regval &= ~(0xf << 4);
15049 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
15050 write_phy_reg(pi, 0xa2, regval);
15052 if ((rxcore_bitmask & 0x3) != 0x3) {
15054 write_phy_reg(pi, 0x20e, 1);
15056 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15057 if (pi->rx2tx_biasentry == -1) {
15058 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
15059 ARRAY_SIZE(tbl_buf), 80,
15062 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
15064 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15065 pi->rx2tx_biasentry = (u8) i;
15067 NPHY_REV3_RFSEQ_CMD_NOP;
15068 wlc_phy_table_write_nphy(
15075 } else if (tbl_buf[i] ==
15076 NPHY_REV3_RFSEQ_CMD_END)
15083 write_phy_reg(pi, 0x20e, 30);
15085 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15086 if (pi->rx2tx_biasentry != -1) {
15087 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
15088 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15089 1, pi->rx2tx_biasentry,
15091 pi->rx2tx_biasentry = -1;
15096 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
15098 if (pi->phyhang_avoid)
15099 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15102 wlapi_enable_mac(pi->sh->physhim);
15105 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
15107 u16 regval, rxen_bits;
15108 struct brcms_phy *pi = (struct brcms_phy *) pih;
15110 regval = read_phy_reg(pi, 0xa2);
15111 rxen_bits = (regval >> 4) & 0xf;
15113 return (u8) rxen_bits;
15116 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
15118 return PHY_IPA(pi);
15121 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
15123 u8 idx, idx2, i, delta_ind;
15125 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
15126 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
15128 for (i = 0; i < 4; i++) {
15136 if (CHSPEC_IS40(pi->radio_chanspec)
15137 && NPHY_IS_SROM_REINTERPRET) {
15138 idx = TXP_FIRST_MCS_40_SISO;
15140 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15141 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15148 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15149 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15154 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15155 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15160 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15161 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15165 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15166 pi->tx_power_offset[idx];
15167 idx = idx + delta_ind;
15168 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15169 pi->tx_power_offset[idx];
15170 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15171 pi->tx_power_offset[idx];
15172 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15173 pi->tx_power_offset[idx++];
15175 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15176 pi->tx_power_offset[idx++];
15177 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15178 pi->tx_power_offset[idx];
15179 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15180 pi->tx_power_offset[idx];
15181 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15182 pi->tx_power_offset[idx++];
15184 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15185 pi->tx_power_offset[idx++];
15186 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15187 pi->tx_power_offset[idx];
15188 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15189 pi->tx_power_offset[idx];
15190 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15191 pi->tx_power_offset[idx++];
15193 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15194 pi->tx_power_offset[idx];
15195 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15196 pi->tx_power_offset[idx++];
15197 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15198 pi->tx_power_offset[idx];
15199 idx = idx + 1 - delta_ind;
15200 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15201 pi->tx_power_offset[idx];
15203 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15204 pi->tx_power_offset[idx];
15205 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15206 pi->tx_power_offset[idx];
15207 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15208 pi->tx_power_offset[idx];
15209 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15210 pi->tx_power_offset[idx];
15214 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
15219 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15221 if (core == PHY_CORE_0) {
15222 write_phy_reg(pi, 0x38, 0x4);
15223 if (CHSPEC_IS2G(pi->radio_chanspec))
15224 write_phy_reg(pi, 0x37, 0x0060);
15226 write_phy_reg(pi, 0x37, 0x1080);
15227 } else if (core == PHY_CORE_1) {
15228 write_phy_reg(pi, 0x2ae, 0x4);
15229 if (CHSPEC_IS2G(pi->radio_chanspec))
15230 write_phy_reg(pi, 0x2ad, 0x0060);
15232 write_phy_reg(pi, 0x2ad, 0x1080);
15236 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15238 u8 txchain0, txchain1;
15240 txchain0 = txchain & 0x1;
15241 txchain1 = (txchain & 0x2) >> 1;
15243 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15246 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15249 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
15251 u8 rfseq_rx2tx_events[] = {
15252 NPHY_RFSEQ_CMD_NOP,
15253 NPHY_RFSEQ_CMD_RXG_FBW,
15254 NPHY_RFSEQ_CMD_TR_SWITCH,
15255 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15256 NPHY_RFSEQ_CMD_RXPD_TXPD,
15257 NPHY_RFSEQ_CMD_TX_GAIN,
15258 NPHY_RFSEQ_CMD_EXT_PA
15260 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
15261 u8 rfseq_tx2rx_events[] = {
15262 NPHY_RFSEQ_CMD_NOP,
15263 NPHY_RFSEQ_CMD_EXT_PA,
15264 NPHY_RFSEQ_CMD_TX_GAIN,
15265 NPHY_RFSEQ_CMD_RXPD_TXPD,
15266 NPHY_RFSEQ_CMD_TR_SWITCH,
15267 NPHY_RFSEQ_CMD_RXG_FBW,
15268 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15270 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
15271 u8 rfseq_tx2rx_events_rev3[] = {
15272 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15273 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15274 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15275 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15276 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15277 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15278 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15279 NPHY_REV3_RFSEQ_CMD_END
15281 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15282 u8 rfseq_rx2tx_events_rev3[] = {
15283 NPHY_REV3_RFSEQ_CMD_NOP,
15284 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15285 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15286 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15287 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15288 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15289 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15290 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15291 NPHY_REV3_RFSEQ_CMD_END
15293 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
15295 u8 rfseq_rx2tx_events_rev3_ipa[] = {
15296 NPHY_REV3_RFSEQ_CMD_NOP,
15297 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15298 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15299 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15300 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15301 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15302 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
15303 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15304 NPHY_REV3_RFSEQ_CMD_END
15306 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
15307 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
15309 s16 alpha0, alpha1, alpha2;
15310 s16 beta0, beta1, beta2;
15311 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
15313 u8 chan_freq_range = 0;
15314 u16 dac_control = 0x0002;
15315 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
15316 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15317 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15318 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15320 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
15321 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
15322 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
15324 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15325 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
15326 s32 min_nvar_val = 0x18d;
15327 s32 min_nvar_offset_6mbps = 20;
15331 u16 afectrl_adc_ctrl1_rev7 = 0x20;
15332 u16 afectrl_adc_ctrl2_rev7 = 0x0;
15333 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
15334 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
15335 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
15336 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
15337 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15338 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15339 u16 ipalvlshift_3p3_war_en = 0;
15340 u16 rccal_bcap_val, rccal_scap_val;
15341 u16 rccal_tx20_11b_bcap = 0;
15342 u16 rccal_tx20_11b_scap = 0;
15343 u16 rccal_tx20_11n_bcap = 0;
15344 u16 rccal_tx20_11n_scap = 0;
15345 u16 rccal_tx40_11n_bcap = 0;
15346 u16 rccal_tx40_11n_scap = 0;
15347 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
15348 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
15349 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
15350 u16 tx_lpf_bw_ofdm_20mhz = 0;
15351 u16 tx_lpf_bw_ofdm_40mhz = 0;
15352 u16 tx_lpf_bw_11b = 0;
15353 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
15354 u16 txgm_idac_bleed = 0;
15355 bool rccal_ovrd = false;
15359 if (CHSPEC_IS5G(pi->radio_chanspec))
15360 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15362 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
15364 if (pi->phyhang_avoid)
15365 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15367 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
15369 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15371 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
15372 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
15374 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
15375 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
15376 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
15377 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
15378 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
15379 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
15380 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
15381 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
15382 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
15383 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
15384 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
15385 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
15386 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
15387 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
15388 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
15389 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
15392 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
15393 write_phy_reg(pi, 0x23f, 0x1b0);
15394 write_phy_reg(pi, 0x240, 0x1b0);
15397 if (NREV_GE(pi->pubpi.phy_rev, 8))
15398 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
15400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15402 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15405 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15406 1, 0, 32, &leg_data_weights);
15407 leg_data_weights = leg_data_weights & 0xffffff;
15408 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15409 1, 0, 32, &leg_data_weights);
15411 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15413 rfseq_rx2tx_dacbufpu_rev7);
15414 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15415 rfseq_rx2tx_dacbufpu_rev7);
15418 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15419 rfseq_rx2tx_events_rev3_ipa,
15420 rfseq_rx2tx_dlys_rev3_ipa,
15422 (rfseq_rx2tx_events_rev3_ipa) /
15424 (rfseq_rx2tx_events_rev3_ipa
15427 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
15428 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
15430 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
15431 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
15432 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
15436 if (((pi->pubpi.radiorev == 5)
15437 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15438 || (pi->pubpi.radiorev == 7)
15439 || (pi->pubpi.radiorev == 8)) {
15444 RADIO_2057_RCCAL_BCAP_VAL);
15448 RADIO_2057_RCCAL_SCAP_VAL);
15450 rccal_tx20_11b_bcap = rccal_bcap_val;
15451 rccal_tx20_11b_scap = rccal_scap_val;
15453 if ((pi->pubpi.radiorev == 5) &&
15454 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
15456 rccal_tx20_11n_bcap = rccal_bcap_val;
15457 rccal_tx20_11n_scap = rccal_scap_val;
15458 rccal_tx40_11n_bcap = 0xc;
15459 rccal_tx40_11n_scap = 0xc;
15463 } else if ((pi->pubpi.radiorev == 7)
15464 || (pi->pubpi.radiorev == 8)) {
15466 tx_lpf_bw_ofdm_20mhz = 4;
15469 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15470 rccal_tx20_11n_bcap = 0xc;
15471 rccal_tx20_11n_scap = 0xc;
15472 rccal_tx40_11n_bcap = 0xa;
15473 rccal_tx40_11n_scap = 0xa;
15475 rccal_tx20_11n_bcap = 0x14;
15476 rccal_tx20_11n_scap = 0x14;
15477 rccal_tx40_11n_bcap = 0xf;
15478 rccal_tx40_11n_scap = 0xf;
15487 if (pi->pubpi.radiorev == 5) {
15489 tx_lpf_bw_ofdm_20mhz = 1;
15490 tx_lpf_bw_ofdm_40mhz = 3;
15495 RADIO_2057_RCCAL_BCAP_VAL);
15499 RADIO_2057_RCCAL_SCAP_VAL);
15501 rccal_tx20_11b_bcap = rccal_bcap_val;
15502 rccal_tx20_11b_scap = rccal_scap_val;
15504 rccal_tx20_11n_bcap = 0x13;
15505 rccal_tx20_11n_scap = 0x11;
15506 rccal_tx40_11n_bcap = 0x13;
15507 rccal_tx40_11n_scap = 0x11;
15515 rx2tx_lpf_rc_lut_tx20_11b =
15516 (rccal_tx20_11b_bcap << 8) |
15517 (rccal_tx20_11b_scap << 3) |
15519 rx2tx_lpf_rc_lut_tx20_11n =
15520 (rccal_tx20_11n_bcap << 8) |
15521 (rccal_tx20_11n_scap << 3) |
15522 tx_lpf_bw_ofdm_20mhz;
15523 rx2tx_lpf_rc_lut_tx40_11n =
15524 (rccal_tx40_11n_bcap << 8) |
15525 (rccal_tx40_11n_scap << 3) |
15526 tx_lpf_bw_ofdm_40mhz;
15528 for (coreNum = 0; coreNum <= 1; coreNum++) {
15529 wlc_phy_table_write_nphy(
15530 pi, NPHY_TBL_ID_RFSEQ,
15532 0x152 + coreNum * 0x10,
15534 &rx2tx_lpf_rc_lut_tx20_11b);
15535 wlc_phy_table_write_nphy(
15536 pi, NPHY_TBL_ID_RFSEQ,
15538 0x153 + coreNum * 0x10,
15540 &rx2tx_lpf_rc_lut_tx20_11n);
15541 wlc_phy_table_write_nphy(
15542 pi, NPHY_TBL_ID_RFSEQ,
15544 0x154 + coreNum * 0x10,
15546 &rx2tx_lpf_rc_lut_tx20_11n);
15547 wlc_phy_table_write_nphy(
15548 pi, NPHY_TBL_ID_RFSEQ,
15550 0x155 + coreNum * 0x10,
15552 &rx2tx_lpf_rc_lut_tx40_11n);
15553 wlc_phy_table_write_nphy(
15554 pi, NPHY_TBL_ID_RFSEQ,
15556 0x156 + coreNum * 0x10,
15558 &rx2tx_lpf_rc_lut_tx40_11n);
15559 wlc_phy_table_write_nphy(
15560 pi, NPHY_TBL_ID_RFSEQ,
15562 0x157 + coreNum * 0x10,
15564 &rx2tx_lpf_rc_lut_tx40_11n);
15565 wlc_phy_table_write_nphy(
15566 pi, NPHY_TBL_ID_RFSEQ,
15568 0x158 + coreNum * 0x10,
15570 &rx2tx_lpf_rc_lut_tx40_11n);
15571 wlc_phy_table_write_nphy(
15572 pi, NPHY_TBL_ID_RFSEQ,
15574 0x159 + coreNum * 0x10,
15576 &rx2tx_lpf_rc_lut_tx40_11n);
15579 wlc_phy_rfctrl_override_nphy_rev7(
15582 NPHY_REV7_RFCTRLOVERRIDE_ID2);
15585 write_phy_reg(pi, 0x32f, 0x3);
15587 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
15588 wlc_phy_rfctrl_override_nphy_rev7(
15591 NPHY_REV7_RFCTRLOVERRIDE_ID0);
15593 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
15594 (pi->pubpi.radiorev == 6)) {
15595 if ((pi->sh->sromrev >= 8)
15596 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
15597 ipalvlshift_3p3_war_en = 1;
15599 if (ipalvlshift_3p3_war_en) {
15600 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
15602 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15604 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15606 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15609 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15612 ipa2g_mainbias = 0x1f;
15614 ipa2g_casconv = 0x6f;
15616 ipa2g_biasfilt = 0xaa;
15619 ipa2g_mainbias = 0x2b;
15621 ipa2g_casconv = 0x7f;
15623 ipa2g_biasfilt = 0xee;
15626 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15627 for (coreNum = 0; coreNum <= 1; coreNum++) {
15628 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15629 coreNum, IPA2G_IMAIN,
15631 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15632 coreNum, IPA2G_CASCONV,
15634 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15643 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15644 if ((pi->pubpi.radiorev == 3)
15645 || (pi->pubpi.radiorev == 4)
15646 || (pi->pubpi.radiorev == 6))
15647 txgm_idac_bleed = 0x7f;
15649 for (coreNum = 0; coreNum <= 1; coreNum++) {
15650 if (txgm_idac_bleed != 0)
15658 if (pi->pubpi.radiorev == 5) {
15660 for (coreNum = 0; coreNum <= 1;
15662 WRITE_RADIO_REG4(pi, RADIO_2057,
15666 WRITE_RADIO_REG4(pi, RADIO_2057,
15675 WRITE_RADIO_REG4(pi, RADIO_2057,
15682 PAD_BIAS_FILTER_BWS,
15686 } else if ((pi->pubpi.radiorev == 7)
15687 || (pi->pubpi.radiorev == 8)) {
15689 if (CHSPEC_IS40(pi->radio_chanspec) ==
15691 WRITE_RADIO_REG4(pi, RADIO_2057,
15695 WRITE_RADIO_REG4(pi, RADIO_2057,
15700 WRITE_RADIO_REG4(pi, RADIO_2057,
15704 WRITE_RADIO_REG4(pi, RADIO_2057,
15712 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
15713 pi->radio_chanspec));
15714 if (((freq >= 5180) && (freq <= 5230))
15715 || ((freq >= 5745) && (freq <= 5805))) {
15716 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15717 0, IPA5G_BIAS_FILTER,
15719 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15720 1, IPA5G_BIAS_FILTER,
15726 if (pi->pubpi.radiorev != 5) {
15727 for (coreNum = 0; coreNum <= 1; coreNum++) {
15728 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15730 TXMIX2G_TUNE_BOOST_PU,
15732 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15734 TXGM_IDAC_BLEED, 0x70);
15739 if (pi->pubpi.radiorev == 4) {
15740 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15742 &afectrl_adc_ctrl1_rev7);
15743 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15745 &afectrl_adc_ctrl1_rev7);
15747 for (coreNum = 0; coreNum <= 1; coreNum++) {
15748 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15749 AFE_VCM_CAL_MASTER, 0x0);
15750 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15751 AFE_SET_VCM_I, 0x3f);
15752 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15753 AFE_SET_VCM_Q, 0x3f);
15756 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
15757 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
15758 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
15759 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
15761 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
15762 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
15763 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
15764 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
15766 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15768 &afectrl_adc_ctrl2_rev7);
15769 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15771 &afectrl_adc_ctrl2_rev7);
15773 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
15774 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
15775 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
15776 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
15779 write_phy_reg(pi, 0x6a, 0x2);
15781 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
15782 &min_nvar_offset_6mbps);
15784 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
15785 &rfseq_pktgn_lpf_hpc_rev7);
15787 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
15788 &rfseq_pktgn_lpf_h_hpc_rev7);
15790 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
15791 &rfseq_htpktgn_lpf_hpc_rev7);
15793 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
15794 &rfseq_cckpktgn_lpf_hpc_rev7);
15796 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
15797 &rfseq_tx2rx_lpf_h_hpc_rev7);
15799 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
15800 &rfseq_rx2tx_lpf_h_hpc_rev7);
15802 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15803 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15804 32, &min_nvar_val);
15805 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15806 127, 32, &min_nvar_val);
15808 min_nvar_val = noise_var_tbl_rev7[3];
15809 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15810 32, &min_nvar_val);
15812 min_nvar_val = noise_var_tbl_rev7[127];
15813 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15814 127, 32, &min_nvar_val);
15817 wlc_phy_workarounds_nphy_gainctrl(pi);
15820 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15821 pdetrange : pi->srom_fem2g.pdetrange;
15823 if (pdetrange == 0) {
15825 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15826 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15827 aux_adc_vmid_rev7_core0[3] = 0x70;
15828 aux_adc_vmid_rev7_core1[3] = 0x70;
15829 aux_adc_gain_rev7[3] = 2;
15831 aux_adc_vmid_rev7_core0[3] = 0x80;
15832 aux_adc_vmid_rev7_core1[3] = 0x80;
15833 aux_adc_gain_rev7[3] = 3;
15835 } else if (pdetrange == 1) {
15836 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15837 aux_adc_vmid_rev7_core0[3] = 0x7c;
15838 aux_adc_vmid_rev7_core1[3] = 0x7c;
15839 aux_adc_gain_rev7[3] = 2;
15841 aux_adc_vmid_rev7_core0[3] = 0x8c;
15842 aux_adc_vmid_rev7_core1[3] = 0x8c;
15843 aux_adc_gain_rev7[3] = 1;
15845 } else if (pdetrange == 2) {
15846 if (pi->pubpi.radioid == BCM2057_ID) {
15847 if ((pi->pubpi.radiorev == 5)
15848 || (pi->pubpi.radiorev == 7)
15849 || (pi->pubpi.radiorev == 8)) {
15850 if (chan_freq_range ==
15851 WL_CHAN_FREQ_RANGE_2G) {
15852 aux_adc_vmid_rev7_core0[3] =
15854 aux_adc_vmid_rev7_core1[3] =
15856 aux_adc_gain_rev7[3] = 0;
15858 aux_adc_vmid_rev7_core0[3] =
15860 aux_adc_vmid_rev7_core1[3] =
15862 aux_adc_gain_rev7[3] = 0;
15867 } else if (pdetrange == 3) {
15868 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
15869 aux_adc_vmid_rev7_core0[3] = 0x89;
15870 aux_adc_vmid_rev7_core1[3] = 0x89;
15871 aux_adc_gain_rev7[3] = 0;
15874 } else if (pdetrange == 5) {
15876 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15877 aux_adc_vmid_rev7_core0[3] = 0x80;
15878 aux_adc_vmid_rev7_core1[3] = 0x80;
15879 aux_adc_gain_rev7[3] = 3;
15881 aux_adc_vmid_rev7_core0[3] = 0x70;
15882 aux_adc_vmid_rev7_core1[3] = 0x70;
15883 aux_adc_gain_rev7[3] = 2;
15887 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
15888 &aux_adc_vmid_rev7_core0);
15889 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
15890 &aux_adc_vmid_rev7_core1);
15891 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
15892 &aux_adc_gain_rev7);
15893 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
15894 &aux_adc_gain_rev7);
15896 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15898 write_phy_reg(pi, 0x23f, 0x1f8);
15899 write_phy_reg(pi, 0x240, 0x1f8);
15901 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15902 1, 0, 32, &leg_data_weights);
15903 leg_data_weights = leg_data_weights & 0xffffff;
15904 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15905 1, 0, 32, &leg_data_weights);
15913 write_phy_reg(pi, 0x145, alpha0);
15914 write_phy_reg(pi, 0x146, alpha1);
15915 write_phy_reg(pi, 0x147, alpha2);
15916 write_phy_reg(pi, 0x148, beta0);
15917 write_phy_reg(pi, 0x149, beta1);
15918 write_phy_reg(pi, 0x14a, beta2);
15920 write_phy_reg(pi, 0x38, 0xC);
15921 write_phy_reg(pi, 0x2ae, 0xC);
15923 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
15924 rfseq_tx2rx_events_rev3,
15925 rfseq_tx2rx_dlys_rev3,
15926 sizeof(rfseq_tx2rx_events_rev3) /
15927 sizeof(rfseq_tx2rx_events_rev3[0]));
15930 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15931 rfseq_rx2tx_events_rev3_ipa,
15932 rfseq_rx2tx_dlys_rev3_ipa,
15934 (rfseq_rx2tx_events_rev3_ipa) /
15936 (rfseq_rx2tx_events_rev3_ipa
15939 if ((pi->sh->hw_phyrxchain != 0x3) &&
15940 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15943 rfseq_rx2tx_dlys_rev3[5] = 59;
15944 rfseq_rx2tx_dlys_rev3[6] = 1;
15945 rfseq_rx2tx_events_rev3[7] =
15946 NPHY_REV3_RFSEQ_CMD_END;
15949 wlc_phy_set_rfseq_nphy(
15950 pi, NPHY_RFSEQ_RX2TX,
15951 rfseq_rx2tx_events_rev3,
15952 rfseq_rx2tx_dlys_rev3,
15953 sizeof(rfseq_rx2tx_events_rev3) /
15954 sizeof(rfseq_rx2tx_events_rev3[0]));
15957 if (CHSPEC_IS2G(pi->radio_chanspec))
15958 write_phy_reg(pi, 0x6a, 0x2);
15960 write_phy_reg(pi, 0x6a, 0x9c40);
15962 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
15964 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15965 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15966 32, &min_nvar_val);
15967 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15968 127, 32, &min_nvar_val);
15970 min_nvar_val = noise_var_tbl_rev3[3];
15971 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15972 32, &min_nvar_val);
15974 min_nvar_val = noise_var_tbl_rev3[127];
15975 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15976 127, 32, &min_nvar_val);
15979 wlc_phy_workarounds_nphy_gainctrl(pi);
15981 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15987 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15988 pdetrange : pi->srom_fem2g.pdetrange;
15990 if (pdetrange == 0) {
15991 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
15992 aux_adc_vmid = aux_adc_vmid_rev4;
15993 aux_adc_gain = aux_adc_gain_rev4;
15995 aux_adc_vmid = aux_adc_vmid_rev3;
15996 aux_adc_gain = aux_adc_gain_rev3;
15999 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16000 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16001 switch (chan_freq_range) {
16002 case WL_CHAN_FREQ_RANGE_5GL:
16003 aux_adc_vmid[3] = 0x89;
16004 aux_adc_gain[3] = 0;
16006 case WL_CHAN_FREQ_RANGE_5GM:
16007 aux_adc_vmid[3] = 0x89;
16008 aux_adc_gain[3] = 0;
16010 case WL_CHAN_FREQ_RANGE_5GH:
16011 aux_adc_vmid[3] = 0x89;
16012 aux_adc_gain[3] = 0;
16018 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16019 0x08, 16, aux_adc_vmid);
16020 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16021 0x18, 16, aux_adc_vmid);
16022 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16023 0x0c, 16, aux_adc_gain);
16024 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16025 0x1c, 16, aux_adc_gain);
16026 } else if (pdetrange == 1) {
16027 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16028 0x08, 16, sk_adc_vmid);
16029 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16030 0x18, 16, sk_adc_vmid);
16031 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16032 0x0c, 16, sk_adc_gain);
16033 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16034 0x1c, 16, sk_adc_gain);
16035 } else if (pdetrange == 2) {
16037 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16038 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16040 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16042 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16043 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16044 bcm_adc_vmid[3] = 0x8e;
16045 bcm_adc_gain[3] = 0x03;
16047 bcm_adc_vmid[3] = 0x94;
16048 bcm_adc_gain[3] = 0x03;
16050 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16051 bcm_adc_vmid[3] = 0x84;
16052 bcm_adc_gain[3] = 0x02;
16055 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16056 0x08, 16, bcm_adc_vmid);
16057 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16058 0x18, 16, bcm_adc_vmid);
16059 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16060 0x0c, 16, bcm_adc_gain);
16061 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16062 0x1c, 16, bcm_adc_gain);
16063 } else if (pdetrange == 3) {
16065 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16066 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16067 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16069 u16 auxadc_vmid[] = {
16070 0xa2, 0xb4, 0xb4, 0x270
16072 u16 auxadc_gain[] = {
16073 0x02, 0x02, 0x02, 0x00
16076 wlc_phy_table_write_nphy(pi,
16077 NPHY_TBL_ID_AFECTRL, 4,
16078 0x08, 16, auxadc_vmid);
16079 wlc_phy_table_write_nphy(pi,
16080 NPHY_TBL_ID_AFECTRL, 4,
16081 0x18, 16, auxadc_vmid);
16082 wlc_phy_table_write_nphy(pi,
16083 NPHY_TBL_ID_AFECTRL, 4,
16084 0x0c, 16, auxadc_gain);
16085 wlc_phy_table_write_nphy(pi,
16086 NPHY_TBL_ID_AFECTRL, 4,
16087 0x1c, 16, auxadc_gain);
16089 } else if ((pdetrange == 4) || (pdetrange == 5)) {
16090 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16091 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16092 u16 Vmid[2], Av[2];
16095 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16096 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16097 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16098 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16099 Av[0] = (pdetrange == 4) ? 2 : 0;
16100 Av[1] = (pdetrange == 4) ? 2 : 0;
16102 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16103 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16104 Av[0] = (pdetrange == 4) ? 2 : 0;
16105 Av[1] = (pdetrange == 4) ? 2 : 0;
16108 bcm_adc_vmid[3] = Vmid[0];
16109 bcm_adc_gain[3] = Av[0];
16110 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16111 0x08, 16, bcm_adc_vmid);
16112 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16113 0x0c, 16, bcm_adc_gain);
16115 bcm_adc_vmid[3] = Vmid[1];
16116 bcm_adc_gain[3] = Av[1];
16117 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16118 0x18, 16, bcm_adc_vmid);
16119 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16120 0x1c, 16, bcm_adc_gain);
16123 write_radio_reg(pi,
16124 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16126 write_radio_reg(pi,
16127 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16130 write_radio_reg(pi,
16131 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16133 write_radio_reg(pi,
16134 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16137 write_radio_reg(pi,
16138 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16140 write_radio_reg(pi,
16141 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16144 write_radio_reg(pi,
16145 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16147 write_radio_reg(pi,
16148 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16151 write_radio_reg(pi,
16152 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16154 write_radio_reg(pi,
16155 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16158 write_radio_reg(pi,
16159 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16161 write_radio_reg(pi,
16162 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16166 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16167 triso : pi->srom_fem2g.triso;
16169 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16170 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16173 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16175 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16176 (CHSPEC_IS5G(pi->radio_chanspec))) ||
16177 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16178 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16179 (CHSPEC_IS2G(pi->radio_chanspec)))) {
16180 nss1_data_weights = 0x00088888;
16181 ht_data_weights = 0x00088888;
16182 stbc_data_weights = 0x00088888;
16184 nss1_data_weights = 0x88888888;
16185 ht_data_weights = 0x88888888;
16186 stbc_data_weights = 0x88888888;
16188 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16189 1, 1, 32, &nss1_data_weights);
16190 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16191 1, 2, 32, &ht_data_weights);
16192 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16193 1, 3, 32, &stbc_data_weights);
16195 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16196 if (CHSPEC_IS5G(pi->radio_chanspec)) {
16197 write_radio_reg(pi,
16198 RADIO_2056_TX_GMBB_IDAC |
16199 RADIO_2056_TX0, 0x70);
16200 write_radio_reg(pi,
16201 RADIO_2056_TX_GMBB_IDAC |
16202 RADIO_2056_TX1, 0x70);
16206 if (!pi->edcrs_threshold_lock) {
16207 write_phy_reg(pi, 0x224, 0x3eb);
16208 write_phy_reg(pi, 0x225, 0x3eb);
16209 write_phy_reg(pi, 0x226, 0x341);
16210 write_phy_reg(pi, 0x227, 0x341);
16211 write_phy_reg(pi, 0x228, 0x42b);
16212 write_phy_reg(pi, 0x229, 0x42b);
16213 write_phy_reg(pi, 0x22a, 0x381);
16214 write_phy_reg(pi, 0x22b, 0x381);
16215 write_phy_reg(pi, 0x22c, 0x42b);
16216 write_phy_reg(pi, 0x22d, 0x42b);
16217 write_phy_reg(pi, 0x22e, 0x381);
16218 write_phy_reg(pi, 0x22f, 0x381);
16221 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16223 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
16224 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16226 MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
16230 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16231 (pi->sh->boardtype == 0x8b)) {
16233 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
16234 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
16235 rfseq_rx2tx_dlys[i] = war_dlys[i];
16238 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16239 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16240 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16242 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16243 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16247 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, ®val);
16248 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, ®val);
16250 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16252 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, ®val);
16253 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, ®val);
16256 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16258 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, ®val);
16259 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, ®val);
16262 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, ®val);
16263 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, ®val);
16266 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, ®val);
16267 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, ®val);
16270 write_phy_reg(pi, 0xf8, 0x02d8);
16271 write_phy_reg(pi, 0xf9, 0x0301);
16272 write_phy_reg(pi, 0xfa, 0x02d8);
16273 write_phy_reg(pi, 0xfb, 0x0301);
16275 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16277 sizeof(rfseq_rx2tx_events) /
16278 sizeof(rfseq_rx2tx_events[0]));
16280 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16282 sizeof(rfseq_tx2rx_events) /
16283 sizeof(rfseq_tx2rx_events[0]));
16285 wlc_phy_workarounds_nphy_gainctrl(pi);
16287 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16289 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16290 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16291 MHF3_NPHY_MLADV_WAR,
16292 MHF3_NPHY_MLADV_WAR,
16295 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16296 write_phy_reg(pi, 0x1e3, 0x0);
16297 write_phy_reg(pi, 0x1e4, 0x0);
16300 if (NREV_LT(pi->pubpi.phy_rev, 2))
16301 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
16309 write_phy_reg(pi, 0x145, alpha0);
16310 write_phy_reg(pi, 0x146, alpha1);
16311 write_phy_reg(pi, 0x147, alpha2);
16312 write_phy_reg(pi, 0x148, beta0);
16313 write_phy_reg(pi, 0x149, beta1);
16314 write_phy_reg(pi, 0x14a, beta2);
16316 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16317 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
16319 write_phy_reg(pi, 0x192, 0xb5);
16320 write_phy_reg(pi, 0x193, 0xa4);
16321 write_phy_reg(pi, 0x194, 0x0);
16324 if (NREV_IS(pi->pubpi.phy_rev, 2))
16325 mod_phy_reg(pi, 0x221,
16326 NPHY_FORCESIG_DECODEGATEDCLKS,
16327 NPHY_FORCESIG_DECODEGATEDCLKS);
16330 if (pi->phyhang_avoid)
16331 wlc_phy_stay_in_carriersearch_nphy(pi, false);
16334 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
16336 u16 w1th, hpf_code, currband;
16338 u8 rfseq_updategainu_events[] = {
16339 NPHY_RFSEQ_CMD_RX_GAIN,
16340 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16341 NPHY_RFSEQ_CMD_SET_HPF_BW
16343 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
16344 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
16345 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
16346 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
16347 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
16348 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
16349 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
16350 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
16351 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
16352 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
16353 s8 *lna1_gain_db = NULL;
16354 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
16355 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
16356 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
16357 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
16358 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
16359 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
16360 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
16361 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
16362 s8 *lna2_gain_db = NULL;
16363 s8 tiaG_gain_db[] = {
16364 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
16365 s8 tiaA_gain_db[] = {
16366 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
16367 s8 tiaA_gain_db_rev4[] = {
16368 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16369 s8 tiaA_gain_db_rev5[] = {
16370 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16371 s8 tiaA_gain_db_rev6[] = {
16372 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16374 s8 tiaG_gainbits[] = {
16375 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16376 s8 tiaA_gainbits[] = {
16377 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
16378 s8 tiaA_gainbits_rev4[] = {
16379 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16380 s8 tiaA_gainbits_rev5[] = {
16381 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16382 s8 tiaA_gainbits_rev6[] = {
16383 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16385 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16386 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
16387 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16388 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16389 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
16390 u16 rfseqG_init_gain_rev5_elna[] = {
16391 0x013f, 0x013f, 0x013f, 0x013f };
16392 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
16393 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
16394 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
16395 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16396 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
16397 u16 rfseqA_init_gain_rev4_elna[] = {
16398 0x314f, 0x314f, 0x314f, 0x314f };
16399 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16400 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
16401 u16 *rfseq_init_gain;
16402 u16 initG_gaincode = 0x627e;
16403 u16 initG_gaincode_rev4 = 0x527e;
16404 u16 initG_gaincode_rev5 = 0x427e;
16405 u16 initG_gaincode_rev5_elna = 0x027e;
16406 u16 initG_gaincode_rev6 = 0x527e;
16407 u16 initG_gaincode_rev6_224B0 = 0x427e;
16408 u16 initG_gaincode_rev6_elna = 0x127e;
16409 u16 initA_gaincode = 0x52de;
16410 u16 initA_gaincode_rev4 = 0x629e;
16411 u16 initA_gaincode_rev4_elna = 0x329e;
16412 u16 initA_gaincode_rev5 = 0x729e;
16413 u16 initA_gaincode_rev6 = 0x729e;
16415 u16 clip1hiG_gaincode = 0x107e;
16416 u16 clip1hiG_gaincode_rev4 = 0x007e;
16417 u16 clip1hiG_gaincode_rev5 = 0x1076;
16418 u16 clip1hiG_gaincode_rev6 = 0x007e;
16419 u16 clip1hiA_gaincode = 0x00de;
16420 u16 clip1hiA_gaincode_rev4 = 0x029e;
16421 u16 clip1hiA_gaincode_rev5 = 0x029e;
16422 u16 clip1hiA_gaincode_rev6 = 0x029e;
16423 u16 clip1hi_gaincode;
16424 u16 clip1mdG_gaincode = 0x0066;
16425 u16 clip1mdA_gaincode = 0x00ca;
16426 u16 clip1mdA_gaincode_rev4 = 0x1084;
16427 u16 clip1mdA_gaincode_rev5 = 0x2084;
16428 u16 clip1mdA_gaincode_rev6 = 0x2084;
16429 u16 clip1md_gaincode = 0;
16430 u16 clip1loG_gaincode = 0x0074;
16431 u16 clip1loG_gaincode_rev5[] = {
16432 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16434 u16 clip1loG_gaincode_rev6[] = {
16435 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16437 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
16438 u16 clip1loA_gaincode = 0x00cc;
16439 u16 clip1loA_gaincode_rev4 = 0x0086;
16440 u16 clip1loA_gaincode_rev5 = 0x2086;
16441 u16 clip1loA_gaincode_rev6 = 0x2086;
16442 u16 clip1lo_gaincode;
16443 u8 crsminG_th = 0x18;
16444 u8 crsminG_th_rev5 = 0x18;
16445 u8 crsminG_th_rev6 = 0x18;
16446 u8 crsminA_th = 0x1e;
16447 u8 crsminA_th_rev4 = 0x24;
16448 u8 crsminA_th_rev5 = 0x24;
16449 u8 crsminA_th_rev6 = 0x24;
16451 u8 crsminlG_th = 0x18;
16452 u8 crsminlG_th_rev5 = 0x18;
16453 u8 crsminlG_th_rev6 = 0x18;
16454 u8 crsminlA_th = 0x1e;
16455 u8 crsminlA_th_rev4 = 0x24;
16456 u8 crsminlA_th_rev5 = 0x24;
16457 u8 crsminlA_th_rev6 = 0x24;
16459 u8 crsminuG_th = 0x18;
16460 u8 crsminuG_th_rev5 = 0x18;
16461 u8 crsminuG_th_rev6 = 0x18;
16462 u8 crsminuA_th = 0x1e;
16463 u8 crsminuA_th_rev4 = 0x24;
16464 u8 crsminuA_th_rev5 = 0x24;
16465 u8 crsminuA_th_rev6 = 0x24;
16466 u8 crsminuA_th_rev6_224B0 = 0x2d;
16468 u16 nbclipG_th = 0x20d;
16469 u16 nbclipG_th_rev4 = 0x1a1;
16470 u16 nbclipG_th_rev5 = 0x1d0;
16471 u16 nbclipG_th_rev6 = 0x1d0;
16472 u16 nbclipA_th = 0x1a1;
16473 u16 nbclipA_th_rev4 = 0x107;
16474 u16 nbclipA_th_rev5 = 0x0a9;
16475 u16 nbclipA_th_rev6 = 0x0f0;
16478 u8 w1clipG_th_rev5 = 9;
16479 u8 w1clipG_th_rev6 = 5;
16480 u8 w1clipA_th = 25, w1clip_th;
16481 u8 rssi_gain_default = 0x50;
16482 u8 rssiG_gain_rev6_224B0 = 0x50;
16483 u8 rssiA_gain_rev5 = 0x90;
16484 u8 rssiA_gain_rev6 = 0x90;
16489 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
16490 pi->srom_fem2g.triso;
16492 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16493 if (pi->pubpi.radiorev == 5) {
16494 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
16495 } else if (pi->pubpi.radiorev == 7) {
16496 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16498 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
16499 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
16501 } else if ((pi->pubpi.radiorev == 3)
16502 || (pi->pubpi.radiorev == 8)) {
16503 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16505 if (pi->pubpi.radiorev == 8) {
16506 mod_phy_reg(pi, 0x283,
16507 (0xff << 0), (0x44 << 0));
16508 mod_phy_reg(pi, 0x280,
16509 (0xff << 0), (0x44 << 0));
16512 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16514 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16516 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
16518 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16519 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16522 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
16523 if (currband == 0) {
16524 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16525 if (pi->pubpi.radiorev == 11) {
16526 lna1_gain_db = lna1G_gain_db_rev6_224B0;
16527 lna2_gain_db = lna2G_gain_db_rev6_224B0;
16529 rfseqG_init_gain_rev6_224B0;
16531 initG_gaincode_rev6_224B0;
16533 clip1hiG_gaincode_rev6;
16535 clip1loG_gaincode_rev6_224B0;
16536 nbclip_th = nbclipG_th_rev6;
16537 w1clip_th = w1clipG_th_rev6;
16538 crsmin_th = crsminG_th_rev6;
16539 crsminl_th = crsminlG_th_rev6;
16540 crsminu_th = crsminuG_th_rev6;
16541 rssi_gain = rssiG_gain_rev6_224B0;
16543 lna1_gain_db = lna1G_gain_db_rev6;
16544 lna2_gain_db = lna2G_gain_db_rev6;
16545 if (pi->sh->boardflags & BFL_EXTLNA) {
16548 rfseqG_init_gain_rev6_elna;
16550 initG_gaincode_rev6_elna;
16553 rfseqG_init_gain_rev6;
16555 initG_gaincode_rev6;
16558 clip1hiG_gaincode_rev6;
16562 clip1loG_gaincode_rev6
16567 clip1loG_gaincode_rev6
16572 clip1loG_gaincode_rev6
16579 clip1loG_gaincode_rev6
16584 clip1loG_gaincode_rev6
16589 clip1loG_gaincode_rev6
16594 clip1loG_gaincode_rev6
16599 clip1loG_gaincode_rev6
16603 nbclip_th = nbclipG_th_rev6;
16604 w1clip_th = w1clipG_th_rev6;
16605 crsmin_th = crsminG_th_rev6;
16606 crsminl_th = crsminlG_th_rev6;
16607 crsminu_th = crsminuG_th_rev6;
16608 rssi_gain = rssi_gain_default;
16610 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16611 lna1_gain_db = lna1G_gain_db_rev5;
16612 lna2_gain_db = lna2G_gain_db_rev5;
16613 if (pi->sh->boardflags & BFL_EXTLNA) {
16616 rfseqG_init_gain_rev5_elna;
16618 initG_gaincode_rev5_elna;
16620 rfseq_init_gain = rfseqG_init_gain_rev5;
16621 init_gaincode = initG_gaincode_rev5;
16623 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16627 clip1loG_gaincode_rev5[0];
16631 clip1loG_gaincode_rev5[1];
16635 clip1loG_gaincode_rev5[2];
16640 clip1loG_gaincode_rev5[3];
16644 clip1loG_gaincode_rev5[4];
16648 clip1loG_gaincode_rev5[5];
16652 clip1loG_gaincode_rev5[6];
16656 clip1loG_gaincode_rev5[7];
16660 clip1loG_gaincode_rev5[3];
16663 nbclip_th = nbclipG_th_rev5;
16664 w1clip_th = w1clipG_th_rev5;
16665 crsmin_th = crsminG_th_rev5;
16666 crsminl_th = crsminlG_th_rev5;
16667 crsminu_th = crsminuG_th_rev5;
16668 rssi_gain = rssi_gain_default;
16669 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16670 lna1_gain_db = lna1G_gain_db_rev4;
16671 lna2_gain_db = lna2G_gain_db;
16672 rfseq_init_gain = rfseqG_init_gain_rev4;
16673 init_gaincode = initG_gaincode_rev4;
16674 clip1hi_gaincode = clip1hiG_gaincode_rev4;
16675 clip1lo_gaincode = clip1loG_gaincode;
16676 nbclip_th = nbclipG_th_rev4;
16677 w1clip_th = w1clipG_th;
16678 crsmin_th = crsminG_th;
16679 crsminl_th = crsminlG_th;
16680 crsminu_th = crsminuG_th;
16681 rssi_gain = rssi_gain_default;
16683 lna1_gain_db = lna1G_gain_db;
16684 lna2_gain_db = lna2G_gain_db;
16685 rfseq_init_gain = rfseqG_init_gain;
16686 init_gaincode = initG_gaincode;
16687 clip1hi_gaincode = clip1hiG_gaincode;
16688 clip1lo_gaincode = clip1loG_gaincode;
16689 nbclip_th = nbclipG_th;
16690 w1clip_th = w1clipG_th;
16691 crsmin_th = crsminG_th;
16692 crsminl_th = crsminlG_th;
16693 crsminu_th = crsminuG_th;
16694 rssi_gain = rssi_gain_default;
16696 tia_gain_db = tiaG_gain_db;
16697 tia_gainbits = tiaG_gainbits;
16698 clip1md_gaincode = clip1mdG_gaincode;
16700 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16701 lna1_gain_db = lna1A_gain_db_rev6;
16702 lna2_gain_db = lna2A_gain_db_rev6;
16703 tia_gain_db = tiaA_gain_db_rev6;
16704 tia_gainbits = tiaA_gainbits_rev6;
16705 rfseq_init_gain = rfseqA_init_gain_rev6;
16706 init_gaincode = initA_gaincode_rev6;
16707 clip1hi_gaincode = clip1hiA_gaincode_rev6;
16708 clip1md_gaincode = clip1mdA_gaincode_rev6;
16709 clip1lo_gaincode = clip1loA_gaincode_rev6;
16710 crsmin_th = crsminA_th_rev6;
16711 crsminl_th = crsminlA_th_rev6;
16712 if ((pi->pubpi.radiorev == 11) &&
16713 (CHSPEC_IS40(pi->radio_chanspec) == 0))
16714 crsminu_th = crsminuA_th_rev6_224B0;
16716 crsminu_th = crsminuA_th_rev6;
16718 nbclip_th = nbclipA_th_rev6;
16719 rssi_gain = rssiA_gain_rev6;
16720 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16721 lna1_gain_db = lna1A_gain_db_rev5;
16722 lna2_gain_db = lna2A_gain_db_rev5;
16723 tia_gain_db = tiaA_gain_db_rev5;
16724 tia_gainbits = tiaA_gainbits_rev5;
16725 rfseq_init_gain = rfseqA_init_gain_rev5;
16726 init_gaincode = initA_gaincode_rev5;
16727 clip1hi_gaincode = clip1hiA_gaincode_rev5;
16728 clip1md_gaincode = clip1mdA_gaincode_rev5;
16729 clip1lo_gaincode = clip1loA_gaincode_rev5;
16730 crsmin_th = crsminA_th_rev5;
16731 crsminl_th = crsminlA_th_rev5;
16732 crsminu_th = crsminuA_th_rev5;
16733 nbclip_th = nbclipA_th_rev5;
16734 rssi_gain = rssiA_gain_rev5;
16735 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16736 lna1_gain_db = lna1A_gain_db_rev4;
16737 lna2_gain_db = lna2A_gain_db_rev4;
16738 tia_gain_db = tiaA_gain_db_rev4;
16739 tia_gainbits = tiaA_gainbits_rev4;
16740 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
16743 rfseqA_init_gain_rev4_elna;
16745 initA_gaincode_rev4_elna;
16747 rfseq_init_gain = rfseqA_init_gain_rev4;
16748 init_gaincode = initA_gaincode_rev4;
16750 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16751 clip1md_gaincode = clip1mdA_gaincode_rev4;
16752 clip1lo_gaincode = clip1loA_gaincode_rev4;
16753 crsmin_th = crsminA_th_rev4;
16754 crsminl_th = crsminlA_th_rev4;
16755 crsminu_th = crsminuA_th_rev4;
16756 nbclip_th = nbclipA_th_rev4;
16757 rssi_gain = rssi_gain_default;
16759 lna1_gain_db = lna1A_gain_db;
16760 lna2_gain_db = lna2A_gain_db;
16761 tia_gain_db = tiaA_gain_db;
16762 tia_gainbits = tiaA_gainbits;
16763 rfseq_init_gain = rfseqA_init_gain;
16764 init_gaincode = initA_gaincode;
16765 clip1hi_gaincode = clip1hiA_gaincode;
16766 clip1md_gaincode = clip1mdA_gaincode;
16767 clip1lo_gaincode = clip1loA_gaincode;
16768 crsmin_th = crsminA_th;
16769 crsminl_th = crsminlA_th;
16770 crsminu_th = crsminuA_th;
16771 nbclip_th = nbclipA_th;
16772 rssi_gain = rssi_gain_default;
16774 w1clip_th = w1clipA_th;
16777 write_radio_reg(pi,
16778 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16779 RADIO_2056_RX0), 0x17);
16780 write_radio_reg(pi,
16781 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16782 RADIO_2056_RX1), 0x17);
16784 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16786 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16789 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16791 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16794 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16796 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16799 write_radio_reg(pi,
16800 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16801 RADIO_2056_RX0), 0x17);
16802 write_radio_reg(pi,
16803 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16804 RADIO_2056_RX1), 0x17);
16806 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16808 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16811 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16813 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16816 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16818 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16821 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16826 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16828 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16831 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16833 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16835 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16837 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16840 write_phy_reg(pi, 0x20, init_gaincode);
16841 write_phy_reg(pi, 0x2a7, init_gaincode);
16843 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16844 pi->pubpi.phy_corenum, 0x106, 16,
16847 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16848 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16850 write_phy_reg(pi, 0x24, clip1md_gaincode);
16851 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16853 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16854 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16856 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16857 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16858 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16860 write_phy_reg(pi, 0x2b, nbclip_th);
16861 write_phy_reg(pi, 0x41, nbclip_th);
16863 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16864 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16866 write_phy_reg(pi, 0x150, 0x809c);
16870 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16871 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16873 write_phy_reg(pi, 0x2b, 0x84);
16874 write_phy_reg(pi, 0x41, 0x84);
16876 if (CHSPEC_IS20(pi->radio_chanspec)) {
16877 write_phy_reg(pi, 0x6b, 0x2b);
16878 write_phy_reg(pi, 0x6c, 0x2b);
16879 write_phy_reg(pi, 0x6d, 0x9);
16880 write_phy_reg(pi, 0x6e, 0x9);
16883 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16884 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16885 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16887 if (CHSPEC_IS20(pi->radio_chanspec)) {
16888 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16889 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16891 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16892 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16895 write_phy_reg(pi, 0x150, 0x809c);
16897 if (pi->nphy_gain_boost)
16898 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16899 (CHSPEC_IS40(pi->radio_chanspec)))
16903 else if (CHSPEC_IS40(pi->radio_chanspec))
16908 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16909 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16911 for (ctr = 0; ctr < 4; ctr++)
16912 regval[ctr] = (hpf_code << 8) | 0x7c;
16913 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16915 wlc_phy_adjust_lnagaintbl_nphy(pi);
16917 if (pi->nphy_elna_gain_config) {
16922 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16923 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16925 for (ctr = 0; ctr < 4; ctr++)
16926 regval[ctr] = (hpf_code << 8) | 0x74;
16927 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16930 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16931 for (ctr = 0; ctr < 21; ctr++)
16932 regval[ctr] = 3 * ctr;
16933 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16934 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16936 for (ctr = 0; ctr < 21; ctr++)
16937 regval[ctr] = (u16) ctr;
16938 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16939 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16942 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16943 rfseq_updategainu_events,
16944 rfseq_updategainu_dlys,
16945 sizeof(rfseq_updategainu_events) /
16946 sizeof(rfseq_updategainu_events[0]));
16948 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16950 if (CHSPEC_IS2G(pi->radio_chanspec))
16952 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16957 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
16959 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
16960 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
16961 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
16962 s8 tia_gainbits[] = {
16963 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16965 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16966 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16968 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
16970 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
16971 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
16973 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
16975 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16978 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16980 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16985 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
16988 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
16990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
16993 write_phy_reg(pi, 0x37, 0x74);
16994 write_phy_reg(pi, 0x2ad, 0x74);
16995 write_phy_reg(pi, 0x38, 0x18);
16996 write_phy_reg(pi, 0x2ae, 0x18);
16998 write_phy_reg(pi, 0x2b, 0xe8);
16999 write_phy_reg(pi, 0x41, 0xe8);
17001 if (CHSPEC_IS20(pi->radio_chanspec)) {
17003 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
17004 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
17007 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
17008 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
17012 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
17015 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
17016 s8 *lna1_gain_db = NULL;
17017 s8 *lna1_gain_db_2 = NULL;
17018 s8 *lna2_gain_db = NULL;
17019 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17021 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17023 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17024 u16 *rfseq_init_gain;
17026 u16 clip1hi_gaincode;
17027 u16 clip1md_gaincode = 0;
17028 u16 clip1md_gaincode_B;
17029 u16 clip1lo_gaincode;
17030 u16 clip1lo_gaincode_B;
17036 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
17037 u8 chg_nbclip_th = 0;
17039 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
17040 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
17042 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
17043 if (currband == 0) {
17045 lna1_gain_db = lna1G_gain_db_rev7;
17047 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17049 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17052 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
17054 if (CHSPEC_IS40(pi->radio_chanspec)) {
17055 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
17056 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
17059 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
17061 if (CHSPEC_IS20(pi->radio_chanspec)) {
17062 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
17063 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
17067 init_gaincode = 0x9e;
17068 clip1hi_gaincode = 0x9e;
17069 clip1md_gaincode_B = 0x24;
17070 clip1lo_gaincode = 0x8a;
17071 clip1lo_gaincode_B = 8;
17072 rfseq_init_gain = rfseqA_init_gain_rev7;
17074 tia_gain_db = tiaA_gain_db_rev7;
17075 tia_gainbits = tiaA_gainbits_rev7;
17077 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
17078 if (CHSPEC_IS20(pi->radio_chanspec)) {
17081 clip1md_gaincode = 0x82;
17083 if ((freq <= 5080) || (freq == 5825)) {
17085 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
17086 s8 lna1A_gain_db_2_rev7[] = {
17088 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17091 lna1_gain_db = lna1A_gain_db_rev7;
17092 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17093 lna2_gain_db = lna2A_gain_db_rev7;
17094 } else if ((freq >= 5500) && (freq <= 5700)) {
17096 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
17097 s8 lna1A_gain_db_2_rev7[] = {
17099 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
17102 clip1md_gaincode_B = 0x14;
17105 lna1_gain_db = lna1A_gain_db_rev7;
17106 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17107 lna2_gain_db = lna2A_gain_db_rev7;
17110 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
17111 s8 lna1A_gain_db_2_rev7[] = {
17113 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17116 lna1_gain_db = lna1A_gain_db_rev7;
17117 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17118 lna2_gain_db = lna2A_gain_db_rev7;
17121 if (freq <= 4920) {
17122 nvar_baseline_offset0 = 5;
17123 nvar_baseline_offset1 = 5;
17124 } else if ((freq > 4920) && (freq <= 5320)) {
17125 nvar_baseline_offset0 = 3;
17126 nvar_baseline_offset1 = 5;
17127 } else if ((freq > 5320) && (freq <= 5700)) {
17128 nvar_baseline_offset0 = 3;
17129 nvar_baseline_offset1 = 2;
17131 nvar_baseline_offset0 = 4;
17132 nvar_baseline_offset1 = 0;
17140 if ((freq >= 4920) && (freq <= 5320)) {
17141 nvar_baseline_offset0 = 4;
17142 nvar_baseline_offset1 = 5;
17143 } else if ((freq > 5320) && (freq <= 5550)) {
17144 nvar_baseline_offset0 = 4;
17145 nvar_baseline_offset1 = 2;
17147 nvar_baseline_offset0 = 5;
17148 nvar_baseline_offset1 = 3;
17152 write_phy_reg(pi, 0x20, init_gaincode);
17153 write_phy_reg(pi, 0x2a7, init_gaincode);
17155 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
17156 pi->pubpi.phy_corenum, 0x106, 16,
17159 write_phy_reg(pi, 0x22, clip1hi_gaincode);
17160 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
17162 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
17163 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
17165 write_phy_reg(pi, 0x37, clip1lo_gaincode);
17166 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
17167 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
17168 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
17170 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
17172 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17175 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17177 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17180 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
17182 if (chg_nbclip_th == 1) {
17183 write_phy_reg(pi, 0x2b, nbclip_th);
17184 write_phy_reg(pi, 0x41, nbclip_th);
17187 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
17188 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
17190 mod_phy_reg(pi, 0x2e4,
17191 (0x3f << 0), (nvar_baseline_offset0 << 0));
17193 mod_phy_reg(pi, 0x2e4,
17194 (0x3f << 6), (nvar_baseline_offset1 << 6));
17196 if (CHSPEC_IS20(pi->radio_chanspec)) {
17198 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17200 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17203 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17205 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17208 write_phy_reg(pi, 0x24, clip1md_gaincode);
17209 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17211 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17216 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
17222 u16 minmax_gain[2];
17225 if (pi->phyhang_avoid)
17226 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17228 if (pi->nphy_gain_boost) {
17229 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
17235 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17238 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17240 nphy_lnagain_est0[1]), 13);
17243 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17245 nphy_lnagain_est1[1]), 13);
17253 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17254 if (pi->nphy_elna_gain_config) {
17256 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
17257 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
17258 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
17259 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
17261 for (ctr = 0; ctr < 4; ctr++)
17263 nphy_def_lnagains[ctr] +
17266 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
17268 minmax_gain[core] =
17269 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
17272 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
17273 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
17275 if (pi->phyhang_avoid)
17276 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17279 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
17282 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17283 if (!pi->radio_is_on) {
17284 wlc_phy_radio_preinit_205x(pi);
17285 wlc_phy_radio_init_2057(pi);
17286 wlc_phy_radio_postinit_2057(pi);
17289 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
17290 pi->radio_chanspec);
17291 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17292 wlc_phy_radio_preinit_205x(pi);
17293 wlc_phy_radio_init_2056(pi);
17294 wlc_phy_radio_postinit_2056(pi);
17296 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
17297 pi->radio_chanspec);
17299 wlc_phy_radio_preinit_2055(pi);
17300 wlc_phy_radio_init_2055(pi);
17301 wlc_phy_radio_postinit_2055(pi);
17304 pi->radio_is_on = true;
17308 if (NREV_GE(pi->pubpi.phy_rev, 3)
17309 && NREV_LT(pi->pubpi.phy_rev, 7)) {
17310 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17311 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
17313 write_radio_reg(pi,
17314 RADIO_2056_TX_PADA_BOOST_TUNE |
17315 RADIO_2056_TX0, 0);
17316 write_radio_reg(pi,
17317 RADIO_2056_TX_PADG_BOOST_TUNE |
17318 RADIO_2056_TX0, 0);
17319 write_radio_reg(pi,
17320 RADIO_2056_TX_PGAA_BOOST_TUNE |
17321 RADIO_2056_TX0, 0);
17322 write_radio_reg(pi,
17323 RADIO_2056_TX_PGAG_BOOST_TUNE |
17324 RADIO_2056_TX0, 0);
17326 RADIO_2056_TX_MIXA_BOOST_TUNE |
17327 RADIO_2056_TX0, 0xf0, 0);
17328 write_radio_reg(pi,
17329 RADIO_2056_TX_MIXG_BOOST_TUNE |
17330 RADIO_2056_TX0, 0);
17332 write_radio_reg(pi,
17333 RADIO_2056_TX_PADA_BOOST_TUNE |
17334 RADIO_2056_TX1, 0);
17335 write_radio_reg(pi,
17336 RADIO_2056_TX_PADG_BOOST_TUNE |
17337 RADIO_2056_TX1, 0);
17338 write_radio_reg(pi,
17339 RADIO_2056_TX_PGAA_BOOST_TUNE |
17340 RADIO_2056_TX1, 0);
17341 write_radio_reg(pi,
17342 RADIO_2056_TX_PGAG_BOOST_TUNE |
17343 RADIO_2056_TX1, 0);
17345 RADIO_2056_TX_MIXA_BOOST_TUNE |
17346 RADIO_2056_TX1, 0xf0, 0);
17347 write_radio_reg(pi,
17348 RADIO_2056_TX_MIXG_BOOST_TUNE |
17349 RADIO_2056_TX1, 0);
17351 pi->radio_is_on = false;
17354 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
17355 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17356 pi->radio_is_on = false;
17362 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
17365 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
17366 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
17368 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
17371 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
17373 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
17376 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
17379 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
17380 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
17382 if (((pi->sh->sromrev >= 4)
17383 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
17384 || ((pi->sh->sromrev < 4))) {
17385 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
17386 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
17389 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
17390 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
17392 and_radio_reg(pi, RADIO_2055_CAL_MISC,
17393 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
17395 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
17397 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
17401 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
17403 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17404 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
17406 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17407 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
17408 "HW error: radio calibration1\n"))
17411 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
17412 ~(RADIO_2055_CAL_LPO_ENABLE));
17414 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
17416 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
17417 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
17419 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
17420 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
17422 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
17423 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17424 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
17425 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17426 if (pi->nphy_gain_boost) {
17427 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17428 ~(RADIO_2055_GAINBST_DISABLE));
17429 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17430 ~(RADIO_2055_GAINBST_DISABLE));
17432 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17433 RADIO_2055_GAINBST_DISABLE);
17434 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17435 RADIO_2055_GAINBST_DISABLE);
17441 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
17444 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17445 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
17447 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
17448 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
17452 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
17454 struct radio_regs *regs_SYN_2056_ptr = NULL;
17455 struct radio_regs *regs_TX_2056_ptr = NULL;
17456 struct radio_regs *regs_RX_2056_ptr = NULL;
17458 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17459 regs_SYN_2056_ptr = regs_SYN_2056;
17460 regs_TX_2056_ptr = regs_TX_2056;
17461 regs_RX_2056_ptr = regs_RX_2056;
17462 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17463 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17464 regs_TX_2056_ptr = regs_TX_2056_A1;
17465 regs_RX_2056_ptr = regs_RX_2056_A1;
17467 switch (pi->pubpi.radiorev) {
17469 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17470 regs_TX_2056_ptr = regs_TX_2056_rev5;
17471 regs_RX_2056_ptr = regs_RX_2056_rev5;
17475 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17476 regs_TX_2056_ptr = regs_TX_2056_rev6;
17477 regs_RX_2056_ptr = regs_RX_2056_rev6;
17482 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17483 regs_TX_2056_ptr = regs_TX_2056_rev7;
17484 regs_RX_2056_ptr = regs_RX_2056_rev7;
17488 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17489 regs_TX_2056_ptr = regs_TX_2056_rev8;
17490 regs_RX_2056_ptr = regs_RX_2056_rev8;
17494 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17495 regs_TX_2056_ptr = regs_TX_2056_rev11;
17496 regs_RX_2056_ptr = regs_RX_2056_rev11;
17504 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
17506 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
17508 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
17510 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
17512 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
17515 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
17517 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
17519 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
17520 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
17522 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
17524 if ((pi->sh->boardflags2 & BFL2_LEGACY)
17525 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
17526 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
17528 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
17530 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
17532 if (pi->phy_init_por)
17533 wlc_phy_radio205x_rcal(pi);
17536 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
17538 struct radio_20xx_regs *regs_2057_ptr = NULL;
17540 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17541 regs_2057_ptr = regs_2057_rev4;
17542 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17543 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17544 switch (pi->pubpi.radiorev) {
17547 if (pi->pubpi.radiover == 0x0)
17548 regs_2057_ptr = regs_2057_rev5;
17549 else if (pi->pubpi.radiover == 0x1)
17550 regs_2057_ptr = regs_2057_rev5v1;
17556 regs_2057_ptr = regs_2057_rev7;
17561 regs_2057_ptr = regs_2057_rev8;
17569 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
17572 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
17575 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
17577 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
17578 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
17580 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
17581 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
17583 if (pi->phy_init_por) {
17584 wlc_phy_radio205x_rcal(pi);
17585 wlc_phy_radio2057_rccal(pi);
17588 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
17592 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
17593 struct chan_info_nphy_radio2057 **t0,
17594 struct chan_info_nphy_radio205x **t1,
17595 struct chan_info_nphy_radio2057_rev5 **t2,
17596 struct chan_info_nphy_2055 **t3)
17599 struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
17600 struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
17601 struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
17606 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17608 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17610 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
17611 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
17613 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17614 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17615 switch (pi->pubpi.radiorev) {
17619 if (pi->pubpi.radiover == 0x0) {
17621 chan_info_tbl_p_2 =
17622 chan_info_nphyrev8_2057_rev5;
17623 tbl_len = ARRAY_SIZE(
17624 chan_info_nphyrev8_2057_rev5);
17626 } else if (pi->pubpi.radiover == 0x1) {
17628 chan_info_tbl_p_2 =
17629 chan_info_nphyrev9_2057_rev5v1;
17630 tbl_len = ARRAY_SIZE(
17631 chan_info_nphyrev9_2057_rev5v1);
17637 chan_info_tbl_p_0 =
17638 chan_info_nphyrev8_2057_rev7;
17639 tbl_len = ARRAY_SIZE(
17640 chan_info_nphyrev8_2057_rev7);
17644 chan_info_tbl_p_0 =
17645 chan_info_nphyrev8_2057_rev8;
17646 tbl_len = ARRAY_SIZE(
17647 chan_info_nphyrev8_2057_rev8);
17653 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
17655 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
17656 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
17661 for (i = 0; i < tbl_len; i++) {
17662 if (pi->pubpi.radiorev == 5) {
17664 if (chan_info_tbl_p_2[i].chan == channel)
17668 if (chan_info_tbl_p_0[i].chan == channel)
17676 if (pi->pubpi.radiorev == 5) {
17677 *t2 = &chan_info_tbl_p_2[i];
17678 freq = chan_info_tbl_p_2[i].freq;
17680 *t0 = &chan_info_tbl_p_0[i];
17681 freq = chan_info_tbl_p_0[i].freq;
17684 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17685 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17686 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
17687 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
17688 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17689 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
17690 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
17691 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
17692 || NREV_IS(pi->pubpi.phy_rev, 6)) {
17693 switch (pi->pubpi.radiorev) {
17695 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
17696 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
17699 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
17700 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
17704 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17706 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
17709 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
17710 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
17713 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
17714 tbl_len = ARRAY_SIZE(
17715 chan_info_nphyrev6_2056v11);
17722 for (i = 0; i < tbl_len; i++) {
17723 if (chan_info_tbl_p_1[i].chan == channel)
17730 *t1 = &chan_info_tbl_p_1[i];
17731 freq = chan_info_tbl_p_1[i].freq;
17734 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
17735 if (chan_info_nphy_2055[i].chan == channel)
17738 if (i >= ARRAY_SIZE(chan_info_nphy_2055))
17741 *t3 = &chan_info_nphy_2055[i];
17742 freq = chan_info_nphy_2055[i].freq;
17749 *f = WL_CHAN_FREQ_RANGE_2G;
17753 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
17756 struct chan_info_nphy_radio2057 *t0 = NULL;
17757 struct chan_info_nphy_radio205x *t1 = NULL;
17758 struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
17759 struct chan_info_nphy_2055 *t3 = NULL;
17762 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17764 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
17766 if (CHSPEC_IS2G(pi->radio_chanspec))
17767 return WL_CHAN_FREQ_RANGE_2G;
17769 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
17770 return WL_CHAN_FREQ_RANGE_5GL;
17771 else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
17772 return WL_CHAN_FREQ_RANGE_5GM;
17774 return WL_CHAN_FREQ_RANGE_5GH;
17778 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
17779 struct chan_info_nphy_2055 *ci)
17782 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
17783 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
17784 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
17785 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
17787 BRCMS_PHY_WAR_PR51571(pi);
17789 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
17790 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
17791 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
17792 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
17794 BRCMS_PHY_WAR_PR51571(pi);
17796 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
17797 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
17798 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
17799 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
17801 BRCMS_PHY_WAR_PR51571(pi);
17803 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
17804 ci->RF_core1_lgbuf_a_tune);
17805 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
17806 ci->RF_core1_lgbuf_g_tune);
17807 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
17808 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
17809 ci->RF_core1_tx_pga_pad_tn);
17811 BRCMS_PHY_WAR_PR51571(pi);
17813 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
17814 ci->RF_core1_tx_mx_bgtrim);
17815 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
17816 ci->RF_core2_lgbuf_a_tune);
17817 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
17818 ci->RF_core2_lgbuf_g_tune);
17819 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
17821 BRCMS_PHY_WAR_PR51571(pi);
17823 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
17824 ci->RF_core2_tx_pga_pad_tn);
17825 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
17826 ci->RF_core2_tx_mx_bgtrim);
17830 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
17831 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
17833 BRCMS_PHY_WAR_PR51571(pi);
17835 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
17841 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
17842 const struct chan_info_nphy_radio205x *ci)
17844 struct radio_regs *regs_SYN_2056_ptr = NULL;
17846 write_radio_reg(pi,
17847 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
17848 ci->RF_SYN_pll_vcocal1);
17849 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
17850 ci->RF_SYN_pll_vcocal2);
17851 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
17852 ci->RF_SYN_pll_refdiv);
17853 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
17854 ci->RF_SYN_pll_mmd2);
17855 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
17856 ci->RF_SYN_pll_mmd1);
17857 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17858 ci->RF_SYN_pll_loopfilter1);
17859 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17860 ci->RF_SYN_pll_loopfilter2);
17861 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
17862 ci->RF_SYN_pll_loopfilter3);
17863 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17864 ci->RF_SYN_pll_loopfilter4);
17865 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
17866 ci->RF_SYN_pll_loopfilter5);
17867 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
17868 ci->RF_SYN_reserved_addr27);
17869 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
17870 ci->RF_SYN_reserved_addr28);
17871 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
17872 ci->RF_SYN_reserved_addr29);
17873 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
17874 ci->RF_SYN_logen_VCOBUF1);
17875 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
17876 ci->RF_SYN_logen_MIXER2);
17877 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
17878 ci->RF_SYN_logen_BUF3);
17879 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
17880 ci->RF_SYN_logen_BUF4);
17882 write_radio_reg(pi,
17883 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
17884 ci->RF_RX0_lnaa_tune);
17885 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
17886 ci->RF_RX0_lnag_tune);
17887 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
17888 ci->RF_TX0_intpaa_boost_tune);
17889 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
17890 ci->RF_TX0_intpag_boost_tune);
17891 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
17892 ci->RF_TX0_pada_boost_tune);
17893 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
17894 ci->RF_TX0_padg_boost_tune);
17895 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
17896 ci->RF_TX0_pgaa_boost_tune);
17897 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
17898 ci->RF_TX0_pgag_boost_tune);
17899 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
17900 ci->RF_TX0_mixa_boost_tune);
17901 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
17902 ci->RF_TX0_mixg_boost_tune);
17904 write_radio_reg(pi,
17905 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
17906 ci->RF_RX1_lnaa_tune);
17907 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
17908 ci->RF_RX1_lnag_tune);
17909 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
17910 ci->RF_TX1_intpaa_boost_tune);
17911 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
17912 ci->RF_TX1_intpag_boost_tune);
17913 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
17914 ci->RF_TX1_pada_boost_tune);
17915 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
17916 ci->RF_TX1_padg_boost_tune);
17917 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
17918 ci->RF_TX1_pgaa_boost_tune);
17919 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
17920 ci->RF_TX1_pgag_boost_tune);
17921 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
17922 ci->RF_TX1_mixa_boost_tune);
17923 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
17924 ci->RF_TX1_mixg_boost_tune);
17926 if (NREV_IS(pi->pubpi.phy_rev, 3))
17927 regs_SYN_2056_ptr = regs_SYN_2056;
17928 else if (NREV_IS(pi->pubpi.phy_rev, 4))
17929 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17931 switch (pi->pubpi.radiorev) {
17933 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17936 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17940 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17943 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17946 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17950 if (CHSPEC_IS2G(pi->radio_chanspec))
17951 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17953 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
17955 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17957 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
17959 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
17960 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17961 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
17962 RADIO_2056_SYN, 0x1f);
17963 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
17964 RADIO_2056_SYN, 0x1f);
17966 write_radio_reg(pi,
17967 RADIO_2056_SYN_PLL_LOOPFILTER4 |
17968 RADIO_2056_SYN, 0xb);
17969 write_radio_reg(pi,
17970 RADIO_2056_SYN_PLL_CP2 |
17971 RADIO_2056_SYN, 0x14);
17975 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
17976 (CHSPEC_IS2G(pi->radio_chanspec))) {
17977 write_radio_reg(pi,
17978 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17980 write_radio_reg(pi,
17981 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17983 write_radio_reg(pi,
17984 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17986 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
17990 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
17991 if (CHSPEC_IS5G(pi->radio_chanspec)) {
17992 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
17993 RADIO_2056_SYN, 0x1f);
17994 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
17995 RADIO_2056_SYN, 0x1f);
17996 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
17997 RADIO_2056_SYN, 0x5);
17998 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17999 RADIO_2056_SYN, 0xc);
18003 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
18004 u16 pag_boost_tune;
18005 u16 padg_boost_tune;
18006 u16 pgag_boost_tune;
18007 u16 mixg_boost_tune;
18008 u16 bias, cascbias;
18011 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18013 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
18015 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18021 if ((pi->sh->chip ==
18023 || (pi->sh->chip ==
18024 BCM43225_CHIP_ID)) {
18025 if (pi->sh->chippkg ==
18026 BCM43224_FAB_SMIC) {
18032 pag_boost_tune = 0x4;
18033 pgag_boost_tune = 0x03;
18034 padg_boost_tune = 0x77;
18035 mixg_boost_tune = 0x65;
18037 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18038 INTPAG_IMAIN_STAT, bias);
18039 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18040 INTPAG_IAUX_STAT, bias);
18041 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18042 INTPAG_CASCBIAS, cascbias);
18044 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18047 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18050 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18053 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18058 bias = IS40MHZ(pi) ? 0x40 : 0x20;
18060 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18061 INTPAG_IMAIN_STAT, bias);
18062 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18063 INTPAG_IAUX_STAT, bias);
18064 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18065 INTPAG_CASCBIAS, 0x30);
18067 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
18072 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
18073 && CHSPEC_IS5G(pi->radio_chanspec)) {
18074 u16 paa_boost_tune;
18075 u16 pada_boost_tune;
18076 u16 pgaa_boost_tune;
18077 u16 mixa_boost_tune;
18078 u16 freq, pabias, cascbias;
18081 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18085 paa_boost_tune = 0xa;
18086 pada_boost_tune = 0x77;
18087 pgaa_boost_tune = 0xf;
18088 mixa_boost_tune = 0xf;
18089 } else if (freq < 5340) {
18091 paa_boost_tune = 0x8;
18092 pada_boost_tune = 0x77;
18093 pgaa_boost_tune = 0xfb;
18094 mixa_boost_tune = 0xf;
18095 } else if (freq < 5650) {
18097 paa_boost_tune = 0x0;
18098 pada_boost_tune = 0x77;
18099 pgaa_boost_tune = 0xb;
18100 mixa_boost_tune = 0xf;
18103 paa_boost_tune = 0x0;
18104 pada_boost_tune = 0x77;
18106 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18108 pgaa_boost_tune = 6;
18110 mixa_boost_tune = 0xf;
18113 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18114 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18115 INTPAA_BOOST_TUNE, paa_boost_tune);
18116 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18117 PADA_BOOST_TUNE, pada_boost_tune);
18118 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18119 PGAA_BOOST_TUNE, pgaa_boost_tune);
18120 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18121 MIXA_BOOST_TUNE, mixa_boost_tune);
18123 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18125 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18128 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18129 PADA_CASCBIAS, 0x3);
18133 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
18134 (pi->sh->chip == BCM43225_CHIP_ID)) {
18135 if (pi->sh->chippkg == BCM43224_FAB_SMIC)
18139 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
18141 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18142 INTPAA_IAUX_STAT, pabias);
18143 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18144 INTPAA_IMAIN_STAT, pabias);
18145 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18146 INTPAA_CASCBIAS, cascbias);
18152 wlc_phy_radio205x_vcocal_nphy(pi);
18155 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
18157 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18158 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
18159 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
18160 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
18162 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
18163 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18164 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
18165 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18166 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
18167 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18168 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
18174 #define MAX_205x_RCAL_WAITLOOPS 10000
18176 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
18181 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18183 if (pi->pubpi.radiorev == 5) {
18185 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18189 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18190 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18193 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18197 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
18199 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18200 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
18201 if (rcal_reg & 0x1)
18207 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18208 "HW error: radio calib2"))
18211 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
18213 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
18215 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
18216 if (pi->pubpi.radiorev == 5) {
18218 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
18219 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18223 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18225 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18227 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18231 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
18237 RADIO_2056_SYN_PLL_MAST2 |
18239 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18243 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18247 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18250 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18251 rcal_reg = read_radio_reg(
18253 RADIO_2056_SYN_RCAL_CODE_OUT |
18255 if (rcal_reg & 0x80)
18261 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18262 "HW error: radio calib3"))
18265 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18270 RADIO_2056_SYN_RCAL_CODE_OUT |
18273 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18276 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18279 return rcal_reg & 0x1f;
18281 return rcal_reg & 0x3e;
18285 wlc_phy_chanspec_radio2057_setup(
18286 struct brcms_phy *pi,
18287 const struct chan_info_nphy_radio2057 *ci,
18288 const struct chan_info_nphy_radio2057_rev5 *
18292 u16 txmix2g_tune_boost_pu = 0;
18293 u16 pad2g_tune_pus = 0;
18295 if (pi->pubpi.radiorev == 5) {
18297 write_radio_reg(pi,
18298 RADIO_2057_VCOCAL_COUNTVAL0,
18299 ci2->RF_vcocal_countval0);
18300 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18301 ci2->RF_vcocal_countval1);
18302 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18303 ci2->RF_rfpll_refmaster_sparextalsize);
18304 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18305 ci2->RF_rfpll_loopfilter_r1);
18306 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18307 ci2->RF_rfpll_loopfilter_c2);
18308 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18309 ci2->RF_rfpll_loopfilter_c1);
18310 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
18311 ci2->RF_cp_kpd_idac);
18312 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
18313 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
18314 write_radio_reg(pi,
18315 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
18316 write_radio_reg(pi,
18317 RADIO_2057_LOGEN_MX2G_TUNE,
18318 ci2->RF_logen_mx2g_tune);
18319 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18320 ci2->RF_logen_indbuf2g_tune);
18322 write_radio_reg(pi,
18323 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18324 ci2->RF_txmix2g_tune_boost_pu_core0);
18325 write_radio_reg(pi,
18326 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18327 ci2->RF_pad2g_tune_pus_core0);
18328 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18329 ci2->RF_lna2g_tune_core0);
18331 write_radio_reg(pi,
18332 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18333 ci2->RF_txmix2g_tune_boost_pu_core1);
18334 write_radio_reg(pi,
18335 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18336 ci2->RF_pad2g_tune_pus_core1);
18337 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18338 ci2->RF_lna2g_tune_core1);
18342 write_radio_reg(pi,
18343 RADIO_2057_VCOCAL_COUNTVAL0,
18344 ci->RF_vcocal_countval0);
18345 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18346 ci->RF_vcocal_countval1);
18347 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18348 ci->RF_rfpll_refmaster_sparextalsize);
18349 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18350 ci->RF_rfpll_loopfilter_r1);
18351 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18352 ci->RF_rfpll_loopfilter_c2);
18353 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18354 ci->RF_rfpll_loopfilter_c1);
18355 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
18356 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
18357 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
18358 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
18359 write_radio_reg(pi,
18360 RADIO_2057_LOGEN_MX2G_TUNE,
18361 ci->RF_logen_mx2g_tune);
18362 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
18363 ci->RF_logen_mx5g_tune);
18364 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18365 ci->RF_logen_indbuf2g_tune);
18366 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
18367 ci->RF_logen_indbuf5g_tune);
18369 write_radio_reg(pi,
18370 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18371 ci->RF_txmix2g_tune_boost_pu_core0);
18372 write_radio_reg(pi,
18373 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18374 ci->RF_pad2g_tune_pus_core0);
18375 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
18376 ci->RF_pga_boost_tune_core0);
18377 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
18378 ci->RF_txmix5g_boost_tune_core0);
18379 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
18380 ci->RF_pad5g_tune_misc_pus_core0);
18381 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18382 ci->RF_lna2g_tune_core0);
18383 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
18384 ci->RF_lna5g_tune_core0);
18386 write_radio_reg(pi,
18387 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18388 ci->RF_txmix2g_tune_boost_pu_core1);
18389 write_radio_reg(pi,
18390 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18391 ci->RF_pad2g_tune_pus_core1);
18392 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
18393 ci->RF_pga_boost_tune_core1);
18394 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
18395 ci->RF_txmix5g_boost_tune_core1);
18396 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
18397 ci->RF_pad5g_tune_misc_pus_core1);
18398 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18399 ci->RF_lna2g_tune_core1);
18400 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
18401 ci->RF_lna5g_tune_core1);
18404 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18406 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18407 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18409 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18410 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18412 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18415 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18417 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18418 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18420 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18423 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
18424 (pi->pubpi.radiorev == 8)) {
18426 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18427 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18429 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18430 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18432 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18435 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18437 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18438 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18440 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18446 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18448 if (pi->pubpi.radiorev == 3)
18449 txmix2g_tune_boost_pu = 0x6b;
18451 if (pi->pubpi.radiorev == 5)
18452 pad2g_tune_pus = 0x73;
18455 if (pi->pubpi.radiorev != 5) {
18456 pad2g_tune_pus = 0x3;
18458 txmix2g_tune_boost_pu = 0x61;
18462 for (coreNum = 0; coreNum <= 1; coreNum++) {
18464 if (txmix2g_tune_boost_pu != 0)
18465 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18466 TXMIX2G_TUNE_BOOST_PU,
18467 txmix2g_tune_boost_pu);
18469 if (pad2g_tune_pus != 0)
18470 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18478 wlc_phy_radio205x_vcocal_nphy(pi);
18481 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
18485 bool chip43226_6362A0;
18487 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18488 || (pi->pubpi.radiorev == 4)
18489 || (pi->pubpi.radiorev == 6));
18492 if (chip43226_6362A0) {
18493 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18494 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18496 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
18498 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
18500 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18501 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18503 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18504 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18505 if (rccal_valid & 0x2)
18511 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18514 if (chip43226_6362A0) {
18515 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18516 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18518 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
18520 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
18522 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18523 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18525 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18526 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18527 if (rccal_valid & 0x2)
18533 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18536 if (chip43226_6362A0) {
18537 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
18539 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
18540 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18542 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
18543 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18544 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
18546 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18548 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18549 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18550 if (rccal_valid & 0x2)
18556 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
18559 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18561 return rccal_valid;
18565 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
18567 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18568 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18569 CHSPEC_IS40(pi->radio_chanspec)) {
18570 if (!pi->nphy_anarxlpf_adjusted) {
18571 write_radio_reg(pi,
18572 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18574 ((pi->nphy_rccal_value +
18575 reduction_factr) | 0x80));
18577 pi->nphy_anarxlpf_adjusted = true;
18580 if (pi->nphy_anarxlpf_adjusted) {
18581 write_radio_reg(pi,
18582 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18584 (pi->nphy_rccal_value | 0x80));
18586 pi->nphy_anarxlpf_adjusted = false;
18593 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
18594 int *tone_id_buf, u32 *noise_var_buf)
18600 CHSPEC_IS40(pi->radio_chanspec) ?
18601 NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
18603 if (pi->nphy_noisevars_adjusted) {
18604 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18605 tone_id = pi->nphy_saved_noisevars.tone_id[i];
18606 offset = (tone_id >= 0) ?
18608 2) + 1) : (tbllen + (tone_id * 2) + 1);
18609 wlc_phy_table_write_nphy(
18610 pi, NPHY_TBL_ID_NOISEVAR, 1,
18612 &pi->nphy_saved_noisevars.min_noise_vars[i]);
18615 pi->nphy_saved_noisevars.bufcount = 0;
18616 pi->nphy_noisevars_adjusted = false;
18619 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18620 pi->nphy_saved_noisevars.bufcount = 0;
18622 for (i = 0; i < ntones; i++) {
18623 tone_id = tone_id_buf[i];
18624 offset = (tone_id >= 0) ?
18625 ((tone_id * 2) + 1) :
18626 (tbllen + (tone_id * 2) + 1);
18627 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18628 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18630 &pi->nphy_saved_noisevars.
18631 min_noise_vars[i]);
18632 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18633 offset, 32, &noise_var_buf[i]);
18634 pi->nphy_saved_noisevars.bufcount++;
18637 pi->nphy_noisevars_adjusted = true;
18641 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
18645 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18646 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18647 CHSPEC_IS40(pi->radio_chanspec)) {
18648 if (!pi->nphy_crsminpwr_adjusted) {
18649 regval = read_phy_reg(pi, 0x27d);
18650 pi->nphy_crsminpwr[0] = regval & 0xff;
18652 regval |= (u16) minpwr;
18653 write_phy_reg(pi, 0x27d, regval);
18655 regval = read_phy_reg(pi, 0x280);
18656 pi->nphy_crsminpwr[1] = regval & 0xff;
18658 regval |= (u16) minpwr;
18659 write_phy_reg(pi, 0x280, regval);
18661 regval = read_phy_reg(pi, 0x283);
18662 pi->nphy_crsminpwr[2] = regval & 0xff;
18664 regval |= (u16) minpwr;
18665 write_phy_reg(pi, 0x283, regval);
18667 pi->nphy_crsminpwr_adjusted = true;
18670 if (pi->nphy_crsminpwr_adjusted) {
18671 regval = read_phy_reg(pi, 0x27d);
18673 regval |= pi->nphy_crsminpwr[0];
18674 write_phy_reg(pi, 0x27d, regval);
18676 regval = read_phy_reg(pi, 0x280);
18678 regval |= pi->nphy_crsminpwr[1];
18679 write_phy_reg(pi, 0x280, regval);
18681 regval = read_phy_reg(pi, 0x283);
18683 regval |= pi->nphy_crsminpwr[2];
18684 write_phy_reg(pi, 0x283, regval);
18686 pi->nphy_crsminpwr_adjusted = false;
18692 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
18696 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18697 if (CHSPEC_IS40(pi->radio_chanspec))
18703 if (CHSPEC_IS40(pi->radio_chanspec))
18709 write_phy_reg(pi, 0xe8,
18712 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18716 if (CHSPEC_IS40(pi->radio_chanspec))
18721 write_phy_reg(pi, 0xe9,
18724 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18729 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
18731 u16 cur_channel = 0;
18732 int nphy_adj_tone_id_buf[] = { 57, 58 };
18733 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
18734 bool isAdjustNoiseVar = false;
18735 uint numTonesAdjust = 0;
18738 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18739 if (pi->phyhang_avoid)
18740 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18742 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
18744 if (pi->nphy_gband_spurwar_en) {
18746 wlc_phy_adjust_rx_analpfbw_nphy(
18748 NPHY_ANARXLPFBW_REDUCTIONFACT);
18750 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18751 if ((cur_channel == 11)
18752 && CHSPEC_IS40(pi->radio_chanspec))
18753 wlc_phy_adjust_min_noisevar_nphy(
18755 nphy_adj_tone_id_buf,
18756 nphy_adj_noise_var_buf);
18758 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18763 wlc_phy_adjust_crsminpwr_nphy(pi,
18764 NPHY_ADJUSTED_MINCRSPOWER);
18767 if ((pi->nphy_gband_spurwar2_en)
18768 && CHSPEC_IS2G(pi->radio_chanspec)) {
18770 if (CHSPEC_IS40(pi->radio_chanspec)) {
18771 switch (cur_channel) {
18773 nphy_adj_tone_id_buf[0] = 57;
18774 nphy_adj_tone_id_buf[1] = 58;
18775 nphy_adj_noise_var_buf[0] = 0x22f;
18776 nphy_adj_noise_var_buf[1] = 0x25f;
18777 isAdjustNoiseVar = true;
18780 nphy_adj_tone_id_buf[0] = 41;
18781 nphy_adj_tone_id_buf[1] = 42;
18782 nphy_adj_noise_var_buf[0] = 0x22f;
18783 nphy_adj_noise_var_buf[1] = 0x25f;
18784 isAdjustNoiseVar = true;
18787 nphy_adj_tone_id_buf[0] = 25;
18788 nphy_adj_tone_id_buf[1] = 26;
18789 nphy_adj_noise_var_buf[0] = 0x24f;
18790 nphy_adj_noise_var_buf[1] = 0x25f;
18791 isAdjustNoiseVar = true;
18794 nphy_adj_tone_id_buf[0] = 9;
18795 nphy_adj_tone_id_buf[1] = 10;
18796 nphy_adj_noise_var_buf[0] = 0x22f;
18797 nphy_adj_noise_var_buf[1] = 0x24f;
18798 isAdjustNoiseVar = true;
18801 nphy_adj_tone_id_buf[0] = 121;
18802 nphy_adj_tone_id_buf[1] = 122;
18803 nphy_adj_noise_var_buf[0] = 0x18f;
18804 nphy_adj_noise_var_buf[1] = 0x24f;
18805 isAdjustNoiseVar = true;
18808 nphy_adj_tone_id_buf[0] = 105;
18809 nphy_adj_tone_id_buf[1] = 106;
18810 nphy_adj_noise_var_buf[0] = 0x22f;
18811 nphy_adj_noise_var_buf[1] = 0x25f;
18812 isAdjustNoiseVar = true;
18815 nphy_adj_tone_id_buf[0] = 89;
18816 nphy_adj_tone_id_buf[1] = 90;
18817 nphy_adj_noise_var_buf[0] = 0x22f;
18818 nphy_adj_noise_var_buf[1] = 0x24f;
18819 isAdjustNoiseVar = true;
18822 nphy_adj_tone_id_buf[0] = 73;
18823 nphy_adj_tone_id_buf[1] = 74;
18824 nphy_adj_noise_var_buf[0] = 0x22f;
18825 nphy_adj_noise_var_buf[1] = 0x24f;
18826 isAdjustNoiseVar = true;
18829 isAdjustNoiseVar = false;
18834 if (isAdjustNoiseVar) {
18835 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
18836 sizeof(nphy_adj_tone_id_buf[0]);
18838 wlc_phy_adjust_min_noisevar_nphy(
18841 nphy_adj_tone_id_buf,
18842 nphy_adj_noise_var_buf);
18847 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18852 if ((pi->nphy_aband_spurwar_en) &&
18853 (CHSPEC_IS5G(pi->radio_chanspec))) {
18854 switch (cur_channel) {
18856 nphy_adj_tone_id_buf[0] = 32;
18857 nphy_adj_noise_var_buf[0] = 0x25f;
18862 nphy_adj_tone_id_buf[0] = 0;
18863 nphy_adj_noise_var_buf[0] = 0x0;
18866 nphy_adj_tone_id_buf[0] = 32;
18867 nphy_adj_noise_var_buf[0] = 0x21f;
18870 nphy_adj_tone_id_buf[0] = 16;
18871 nphy_adj_noise_var_buf[0] = 0x23f;
18875 nphy_adj_tone_id_buf[0] = 48;
18876 nphy_adj_noise_var_buf[0] = 0x23f;
18879 nphy_adj_tone_id_buf[0] = 0;
18880 nphy_adj_noise_var_buf[0] = 0x0;
18884 if (nphy_adj_tone_id_buf[0]
18885 && nphy_adj_noise_var_buf[0])
18886 wlc_phy_adjust_min_noisevar_nphy(
18888 nphy_adj_tone_id_buf,
18889 nphy_adj_noise_var_buf);
18891 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18895 if (pi->phyhang_avoid)
18896 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18901 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
18902 const struct nphy_sfo_cfg *ci)
18906 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
18907 if (CHSPEC_IS5G(chanspec) && !val) {
18909 val = R_REG(&pi->regs->psm_phy_hdr_param);
18910 W_REG(&pi->regs->psm_phy_hdr_param,
18911 (val | MAC_PHY_FORCE_CLK));
18913 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18914 (BBCFG_RESETCCA | BBCFG_RESETRX));
18916 W_REG(&pi->regs->psm_phy_hdr_param, val);
18918 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
18919 } else if (!CHSPEC_IS5G(chanspec) && val) {
18921 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
18923 val = R_REG(&pi->regs->psm_phy_hdr_param);
18924 W_REG(&pi->regs->psm_phy_hdr_param,
18925 (val | MAC_PHY_FORCE_CLK));
18927 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18928 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
18930 W_REG(&pi->regs->psm_phy_hdr_param, val);
18933 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
18934 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
18935 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
18937 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
18938 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
18939 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
18941 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
18942 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
18944 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
18946 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
18947 NPHY_ClassifierCtrl_ofdm_en);
18949 if (CHSPEC_IS2G(chanspec))
18950 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
18953 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
18954 wlc_phy_txpwr_fixpower_nphy(pi);
18956 if (NREV_LT(pi->pubpi.phy_rev, 3))
18957 wlc_phy_adjust_lnagaintbl_nphy(pi);
18959 wlc_phy_txlpfbw_nphy(pi);
18961 if (NREV_GE(pi->pubpi.phy_rev, 3)
18962 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
18965 val = CHSPEC_CHANNEL(chanspec);
18966 if (!CHSPEC_IS40(pi->radio_chanspec)) {
18967 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18968 if ((val == 13) || (val == 14) || (val == 153))
18970 } else if (((val >= 5) && (val <= 8)) || (val == 13)
18974 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18978 if (pi->nphy_aband_spurwar_en &&
18979 ((val == 38) || (val == 102)
18984 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
18987 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
18988 si_pmu_spuravoid(pi->sh->sih, spuravoid);
18989 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
18991 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
18992 (pi->sh->chip == BCM43225_CHIP_ID)) {
18994 if (spuravoid == 1) {
18996 W_REG(&pi->regs->tsf_clk_frac_l,
18998 W_REG(&pi->regs->tsf_clk_frac_h,
19002 W_REG(&pi->regs->tsf_clk_frac_l,
19004 W_REG(&pi->regs->tsf_clk_frac_h,
19009 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
19011 mod_phy_reg(pi, 0x01, (0x1 << 15),
19012 ((spuravoid > 0) ? (0x1 << 15) : 0));
19014 wlc_phy_resetcca_nphy(pi);
19016 pi->phy_isspuravoid = (spuravoid > 0);
19019 if (NREV_LT(pi->pubpi.phy_rev, 7))
19020 write_phy_reg(pi, 0x17e, 0x3830);
19022 wlc_phy_spurwar_nphy(pi);
19025 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
19028 struct chan_info_nphy_radio2057 *t0 = NULL;
19029 struct chan_info_nphy_radio205x *t1 = NULL;
19030 struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
19031 struct chan_info_nphy_2055 *t3 = NULL;
19033 if (!wlc_phy_chan2freq_nphy
19034 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19037 wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
19039 if (CHSPEC_BW(chanspec) != pi->bw)
19040 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
19042 if (CHSPEC_IS40(chanspec)) {
19043 if (CHSPEC_SB_UPPER(chanspec)) {
19044 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
19045 if (NREV_GE(pi->pubpi.phy_rev, 7))
19046 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
19048 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
19049 if (NREV_GE(pi->pubpi.phy_rev, 7))
19050 and_phy_reg(pi, 0x310,
19051 (~PRIM_SEL_UP20 & 0xffff));
19055 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19056 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19058 if ((pi->pubpi.radiorev <= 4)
19059 || (pi->pubpi.radiorev == 6)) {
19060 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
19062 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19064 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19066 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19070 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
19071 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19072 (pi->pubpi.radiorev == 5) ?
19073 (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
19074 (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
19079 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19081 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
19082 wlc_phy_chanspec_radio2056_setup(pi, t1);
19084 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19085 (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
19090 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19091 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19094 wlc_phy_chanspec_radio2055_setup(pi, t3);
19095 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19096 (const struct nphy_sfo_cfg *)
19102 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
19106 u16 *txcal_radio_regs = NULL;
19108 if (pi->phyhang_avoid)
19109 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19111 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19113 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19114 &pi->calibration_cache.
19117 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19119 pi->calibration_cache.txcal_radio_regs_2G;
19120 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19122 pi->calibration_cache.txcal_radio_regs_2G[0] =
19124 RADIO_2056_TX_LOFT_FINE_I |
19126 pi->calibration_cache.txcal_radio_regs_2G[1] =
19128 RADIO_2056_TX_LOFT_FINE_Q |
19130 pi->calibration_cache.txcal_radio_regs_2G[2] =
19132 RADIO_2056_TX_LOFT_FINE_I |
19134 pi->calibration_cache.txcal_radio_regs_2G[3] =
19136 RADIO_2056_TX_LOFT_FINE_Q |
19139 pi->calibration_cache.txcal_radio_regs_2G[4] =
19141 RADIO_2056_TX_LOFT_COARSE_I |
19143 pi->calibration_cache.txcal_radio_regs_2G[5] =
19145 RADIO_2056_TX_LOFT_COARSE_Q |
19147 pi->calibration_cache.txcal_radio_regs_2G[6] =
19149 RADIO_2056_TX_LOFT_COARSE_I |
19151 pi->calibration_cache.txcal_radio_regs_2G[7] =
19153 RADIO_2056_TX_LOFT_COARSE_Q |
19156 pi->calibration_cache.txcal_radio_regs_2G[0] =
19157 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19158 pi->calibration_cache.txcal_radio_regs_2G[1] =
19159 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19160 pi->calibration_cache.txcal_radio_regs_2G[2] =
19161 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19162 pi->calibration_cache.txcal_radio_regs_2G[3] =
19163 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19166 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
19167 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19170 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19171 &pi->calibration_cache.
19174 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19176 pi->calibration_cache.txcal_radio_regs_5G;
19177 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19179 pi->calibration_cache.txcal_radio_regs_5G[0] =
19181 RADIO_2056_TX_LOFT_FINE_I |
19183 pi->calibration_cache.txcal_radio_regs_5G[1] =
19185 RADIO_2056_TX_LOFT_FINE_Q |
19187 pi->calibration_cache.txcal_radio_regs_5G[2] =
19189 RADIO_2056_TX_LOFT_FINE_I |
19191 pi->calibration_cache.txcal_radio_regs_5G[3] =
19193 RADIO_2056_TX_LOFT_FINE_Q |
19196 pi->calibration_cache.txcal_radio_regs_5G[4] =
19198 RADIO_2056_TX_LOFT_COARSE_I |
19200 pi->calibration_cache.txcal_radio_regs_5G[5] =
19202 RADIO_2056_TX_LOFT_COARSE_Q |
19204 pi->calibration_cache.txcal_radio_regs_5G[6] =
19206 RADIO_2056_TX_LOFT_COARSE_I |
19208 pi->calibration_cache.txcal_radio_regs_5G[7] =
19210 RADIO_2056_TX_LOFT_COARSE_Q |
19213 pi->calibration_cache.txcal_radio_regs_5G[0] =
19214 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19215 pi->calibration_cache.txcal_radio_regs_5G[1] =
19216 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19217 pi->calibration_cache.txcal_radio_regs_5G[2] =
19218 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19219 pi->calibration_cache.txcal_radio_regs_5G[3] =
19220 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19223 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
19224 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19226 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19227 for (coreNum = 0; coreNum <= 1; coreNum++) {
19229 txcal_radio_regs[2 * coreNum] =
19230 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19232 txcal_radio_regs[2 * coreNum + 1] =
19233 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19236 txcal_radio_regs[2 * coreNum + 4] =
19237 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19239 txcal_radio_regs[2 * coreNum + 5] =
19240 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19245 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
19247 if (pi->phyhang_avoid)
19248 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19251 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
19254 u16 txcal_coeffs_bphy[4];
19257 u16 *txcal_radio_regs = NULL;
19259 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19260 if (pi->nphy_iqcal_chanspec_2G == 0)
19263 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19264 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19266 if (pi->nphy_iqcal_chanspec_5G == 0)
19269 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19270 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
19273 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
19275 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19276 txcal_coeffs_bphy[0] = tbl_ptr[0];
19277 txcal_coeffs_bphy[1] = tbl_ptr[1];
19278 txcal_coeffs_bphy[2] = tbl_ptr[2];
19279 txcal_coeffs_bphy[3] = tbl_ptr[3];
19281 txcal_coeffs_bphy[0] = 0;
19282 txcal_coeffs_bphy[1] = 0;
19283 txcal_coeffs_bphy[2] = 0;
19284 txcal_coeffs_bphy[3] = 0;
19287 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
19288 txcal_coeffs_bphy);
19290 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
19292 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
19294 if (NREV_LT(pi->pubpi.phy_rev, 2))
19295 wlc_phy_tx_iq_war_nphy(pi);
19297 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19298 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19300 pi->calibration_cache.txcal_radio_regs_2G;
19301 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19303 write_radio_reg(pi,
19304 RADIO_2056_TX_LOFT_FINE_I |
19306 pi->calibration_cache.
19307 txcal_radio_regs_2G[0]);
19308 write_radio_reg(pi,
19309 RADIO_2056_TX_LOFT_FINE_Q |
19311 pi->calibration_cache.
19312 txcal_radio_regs_2G[1]);
19313 write_radio_reg(pi,
19314 RADIO_2056_TX_LOFT_FINE_I |
19316 pi->calibration_cache.
19317 txcal_radio_regs_2G[2]);
19318 write_radio_reg(pi,
19319 RADIO_2056_TX_LOFT_FINE_Q |
19321 pi->calibration_cache.
19322 txcal_radio_regs_2G[3]);
19324 write_radio_reg(pi,
19325 RADIO_2056_TX_LOFT_COARSE_I |
19327 pi->calibration_cache.
19328 txcal_radio_regs_2G[4]);
19329 write_radio_reg(pi,
19330 RADIO_2056_TX_LOFT_COARSE_Q |
19332 pi->calibration_cache.
19333 txcal_radio_regs_2G[5]);
19334 write_radio_reg(pi,
19335 RADIO_2056_TX_LOFT_COARSE_I |
19337 pi->calibration_cache.
19338 txcal_radio_regs_2G[6]);
19339 write_radio_reg(pi,
19340 RADIO_2056_TX_LOFT_COARSE_Q |
19342 pi->calibration_cache.
19343 txcal_radio_regs_2G[7]);
19345 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19346 pi->calibration_cache.
19347 txcal_radio_regs_2G[0]);
19348 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19349 pi->calibration_cache.
19350 txcal_radio_regs_2G[1]);
19351 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19352 pi->calibration_cache.
19353 txcal_radio_regs_2G[2]);
19354 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19355 pi->calibration_cache.
19356 txcal_radio_regs_2G[3]);
19359 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19360 &pi->calibration_cache.
19363 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19365 pi->calibration_cache.txcal_radio_regs_5G;
19366 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19368 write_radio_reg(pi,
19369 RADIO_2056_TX_LOFT_FINE_I |
19371 pi->calibration_cache.
19372 txcal_radio_regs_5G[0]);
19373 write_radio_reg(pi,
19374 RADIO_2056_TX_LOFT_FINE_Q |
19376 pi->calibration_cache.
19377 txcal_radio_regs_5G[1]);
19378 write_radio_reg(pi,
19379 RADIO_2056_TX_LOFT_FINE_I |
19381 pi->calibration_cache.
19382 txcal_radio_regs_5G[2]);
19383 write_radio_reg(pi,
19384 RADIO_2056_TX_LOFT_FINE_Q |
19386 pi->calibration_cache.
19387 txcal_radio_regs_5G[3]);
19389 write_radio_reg(pi,
19390 RADIO_2056_TX_LOFT_COARSE_I |
19392 pi->calibration_cache.
19393 txcal_radio_regs_5G[4]);
19394 write_radio_reg(pi,
19395 RADIO_2056_TX_LOFT_COARSE_Q |
19397 pi->calibration_cache.
19398 txcal_radio_regs_5G[5]);
19399 write_radio_reg(pi,
19400 RADIO_2056_TX_LOFT_COARSE_I |
19402 pi->calibration_cache.
19403 txcal_radio_regs_5G[6]);
19404 write_radio_reg(pi,
19405 RADIO_2056_TX_LOFT_COARSE_Q |
19407 pi->calibration_cache.
19408 txcal_radio_regs_5G[7]);
19410 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19411 pi->calibration_cache.
19412 txcal_radio_regs_5G[0]);
19413 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19414 pi->calibration_cache.
19415 txcal_radio_regs_5G[1]);
19416 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19417 pi->calibration_cache.
19418 txcal_radio_regs_5G[2]);
19419 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19420 pi->calibration_cache.
19421 txcal_radio_regs_5G[3]);
19424 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19425 &pi->calibration_cache.
19429 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19430 for (coreNum = 0; coreNum <= 1; coreNum++) {
19432 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19434 txcal_radio_regs[2 * coreNum]);
19435 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19437 txcal_radio_regs[2 * coreNum + 1]);
19439 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19441 txcal_radio_regs[2 * coreNum + 4]);
19442 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19444 txcal_radio_regs[2 * coreNum + 5]);
19449 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
19451 struct brcms_phy *pi = (struct brcms_phy *) ppi;
19455 if (NREV_GE(pi->pubpi.phy_rev, 7))
19458 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19459 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
19461 if (lut_init == false)
19464 if (pi->srom_fem2g.antswctrllut == 0) {
19465 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19467 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19469 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19471 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19475 if (pi->srom_fem5g.antswctrllut == 0) {
19476 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19478 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19480 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19482 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19487 write_phy_reg(pi, 0xc8, 0x0);
19488 write_phy_reg(pi, 0xc9, 0x0);
19490 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
19492 mc = R_REG(&pi->regs->maccontrol);
19493 mc &= ~MCTL_GPOUT_SEL_MASK;
19494 W_REG(&pi->regs->maccontrol, mc);
19496 OR_REG(&pi->regs->psm_gpio_oe, mask);
19498 AND_REG(&pi->regs->psm_gpio_out, ~mask);
19501 write_phy_reg(pi, 0xf8, 0x02d8);
19502 write_phy_reg(pi, 0xf9, 0x0301);
19503 write_phy_reg(pi, 0xfa, 0x02d8);
19504 write_phy_reg(pi, 0xfb, 0x0301);
19509 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
19511 u16 curr_ctl, new_ctl;
19512 bool suspended = false;
19514 if (D11REV_IS(pi->sh->corerev, 16)) {
19516 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
19519 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19522 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
19524 new_ctl = (curr_ctl & (~mask)) | (val & mask);
19526 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
19528 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
19529 wlapi_enable_mac(pi->sh->physhim);
19534 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
19538 vals[0] = read_phy_reg(pi, 0x2c);
19539 vals[1] = read_phy_reg(pi, 0x42);
19541 write_phy_reg(pi, 0x2c, vals[0]);
19542 write_phy_reg(pi, 0x42, vals[1]);
19546 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
19548 u16 trigger_mask, status_mask;
19549 u16 orig_RfseqCoreActv;
19552 case NPHY_RFSEQ_RX2TX:
19553 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19554 status_mask = NPHY_RfseqStatus_rx2tx;
19556 case NPHY_RFSEQ_TX2RX:
19557 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19558 status_mask = NPHY_RfseqStatus_tx2rx;
19560 case NPHY_RFSEQ_RESET2RX:
19561 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19562 status_mask = NPHY_RfseqStatus_reset2rx;
19564 case NPHY_RFSEQ_UPDATEGAINH:
19565 trigger_mask = NPHY_RfseqTrigger_updategainh;
19566 status_mask = NPHY_RfseqStatus_updategainh;
19568 case NPHY_RFSEQ_UPDATEGAINL:
19569 trigger_mask = NPHY_RfseqTrigger_updategainl;
19570 status_mask = NPHY_RfseqStatus_updategainl;
19572 case NPHY_RFSEQ_UPDATEGAINU:
19573 trigger_mask = NPHY_RfseqTrigger_updategainu;
19574 status_mask = NPHY_RfseqStatus_updategainu;
19580 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
19581 or_phy_reg(pi, 0xa1,
19582 (NPHY_RfseqMode_CoreActv_override |
19583 NPHY_RfseqMode_Trigger_override));
19584 or_phy_reg(pi, 0xa3, trigger_mask);
19585 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
19586 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
19587 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
19591 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
19594 u32 t1_offset, t2_offset;
19597 NREV_GE(pi->pubpi.phy_rev,
19598 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
19601 if (pi->phyhang_avoid)
19602 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19604 t1_offset = cmd << 4;
19605 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
19607 t2_offset = t1_offset + 0x080;
19608 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19611 for (ctr = len; ctr < 16; ctr++) {
19612 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19613 t1_offset + ctr, 8, &end_event);
19614 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19615 t2_offset + ctr, 8, &end_dly);
19618 if (pi->phyhang_avoid)
19619 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19622 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
19624 u16 lpf_bw_ctl_val = 0;
19625 u16 rx2tx_lpf_rc_lut_offset = 0;
19628 if (CHSPEC_IS40(pi->radio_chanspec))
19629 rx2tx_lpf_rc_lut_offset = 0x159;
19631 rx2tx_lpf_rc_lut_offset = 0x154;
19633 rx2tx_lpf_rc_lut_offset = offset;
19635 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19636 (u32) rx2tx_lpf_rc_lut_offset, 16,
19639 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19641 return lpf_bw_ctl_val;
19645 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
19646 u8 core_mask, u8 off, u8 override_id)
19649 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
19652 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19654 for (core_num = 0; core_num < 2; core_num++) {
19655 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19659 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19660 val_addr = (core_num == 0) ? 0x7a :
19662 val_mask = (0x1 << 1);
19666 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19667 val_addr = (core_num == 0) ? 0x7a :
19669 val_mask = (0x1 << 2);
19673 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19674 val_addr = (core_num == 0) ? 0x7a :
19676 val_mask = (0x1 << 4);
19680 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19681 val_addr = (core_num == 0) ? 0x7a :
19683 val_mask = (0x1 << 5);
19687 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19688 val_addr = (core_num == 0) ? 0x7a :
19690 val_mask = (0x1 << 6);
19694 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19695 val_addr = (core_num == 0) ? 0x7a :
19697 val_mask = (0x1 << 7);
19701 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19702 val_addr = (core_num == 0) ? 0xf8 :
19704 val_mask = (0x7 << 4);
19708 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19709 val_addr = (core_num == 0) ? 0x7b :
19711 val_mask = (0xffff << 0);
19715 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19716 val_addr = (core_num == 0) ? 0x7c :
19718 val_mask = (0xffff << 0);
19722 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19723 val_addr = (core_num == 0) ? 0x348 :
19725 val_mask = (0xff << 0);
19729 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19730 val_addr = (core_num == 0) ? 0x348 :
19732 val_mask = (0xf << 0);
19739 } else if (override_id ==
19740 NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19744 en_addr = (core_num == 0) ? 0x342 :
19746 val_addr = (core_num == 0) ? 0x340 :
19748 val_mask = (0x1 << 1);
19752 en_addr = (core_num == 0) ? 0x342 :
19754 val_addr = (core_num == 0) ? 0x340 :
19756 val_mask = (0x1 << 3);
19760 en_addr = (core_num == 0) ? 0x342 :
19762 val_addr = (core_num == 0) ? 0x340 :
19764 val_mask = (0x1 << 5);
19768 en_addr = (core_num == 0) ? 0x342 :
19770 val_addr = (core_num == 0) ? 0x340 :
19772 val_mask = (0x1 << 4);
19777 en_addr = (core_num == 0) ? 0x342 :
19779 val_addr = (core_num == 0) ? 0x340 :
19781 val_mask = (0x1 << 2);
19786 en_addr = (core_num == 0) ? 0x342 :
19788 val_addr = (core_num == 0) ? 0x340 :
19790 val_mask = (0x7 << 8);
19794 en_addr = (core_num == 0) ? 0x342 :
19796 val_addr = (core_num == 0) ? 0x340 :
19798 val_mask = (0x1 << 14);
19802 en_addr = (core_num == 0) ? 0x342 :
19804 val_addr = (core_num == 0) ? 0x340 :
19806 val_mask = (0x1 << 13);
19810 en_addr = (core_num == 0) ? 0x342 :
19812 val_addr = (core_num == 0) ? 0x340 :
19814 val_mask = (0x1 << 12);
19818 en_addr = (core_num == 0) ? 0x342 :
19820 val_addr = (core_num == 0) ? 0x340 :
19822 val_mask = (0x1 << 11);
19826 en_addr = (core_num == 0) ? 0x342 :
19828 val_addr = (core_num == 0) ? 0x340 :
19830 val_mask = (0x1 << 6);
19834 en_addr = (core_num == 0) ? 0x342 :
19836 val_addr = (core_num == 0) ? 0x340 :
19838 val_mask = (0x1 << 0);
19845 } else if (override_id ==
19846 NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19850 en_addr = (core_num == 0) ? 0x346 :
19852 val_addr = (core_num == 0) ? 0x344 :
19854 val_mask = (0x1 << 3);
19858 en_addr = (core_num == 0) ? 0x346 :
19860 val_addr = (core_num == 0) ? 0x344 :
19862 val_mask = (0x1 << 1);
19866 en_addr = (core_num == 0) ? 0x346 :
19868 val_addr = (core_num == 0) ? 0x344 :
19870 val_mask = (0x1 << 0);
19874 en_addr = (core_num == 0) ? 0x346 :
19876 val_addr = (core_num == 0) ? 0x344 :
19878 val_mask = (0x1 << 2);
19882 en_addr = (core_num == 0) ? 0x346 :
19884 val_addr = (core_num == 0) ? 0x344 :
19886 val_mask = (0x1 << 4);
19896 and_phy_reg(pi, en_addr, ~en_mask);
19897 and_phy_reg(pi, val_addr, ~val_mask);
19900 if ((core_mask == 0)
19901 || (core_mask & (1 << core_num))) {
19902 or_phy_reg(pi, en_addr, en_mask);
19904 if (addr != 0xffff)
19905 mod_phy_reg(pi, val_addr,
19916 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
19917 u8 core_mask, u8 off)
19920 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
19922 u8 shift = 0, val_shift = 0;
19924 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19927 for (core_num = 0; core_num < 2; core_num++) {
19931 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19932 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19933 val_mask = (0x1 << 0);
19937 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19938 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19939 val_mask = (0x1 << 1);
19943 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19944 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19945 val_mask = (0x1 << 2);
19949 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19950 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19951 val_mask = (0x1 << 4);
19955 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19956 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19957 val_mask = (0x1 << 5);
19961 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19962 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19963 val_mask = (0x1 << 6);
19967 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19968 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19969 val_mask = (0x1 << 7);
19973 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19974 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19975 val_mask = (0x7 << 8);
19979 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19980 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19981 val_mask = (0x7 << 13);
19986 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19987 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
19988 val_mask = (0x7 << 0);
19993 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19994 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
19995 val_mask = (0x7 << 4);
20000 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20001 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20002 val_mask = (0xffff << 0);
20006 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20007 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20008 val_mask = (0xffff << 0);
20012 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20013 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20014 val_mask = (0x3 << 6);
20018 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20019 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20020 val_mask = (0x1 << 15);
20029 and_phy_reg(pi, en_addr, ~en_mask);
20030 and_phy_reg(pi, val_addr, ~val_mask);
20033 if ((core_mask == 0)
20034 || (core_mask & (1 << core_num))) {
20035 or_phy_reg(pi, en_addr, en_mask);
20037 if (addr != 0xffff)
20038 mod_phy_reg(pi, val_addr,
20048 and_phy_reg(pi, 0xec, ~field);
20051 or_phy_reg(pi, 0xec, field);
20054 for (core_num = 0; core_num < 2; core_num++) {
20073 addr = (core_num == 0) ? 0x7a : 0x7d;
20076 addr = (core_num == 0) ? 0x7b : 0x7e;
20079 addr = (core_num == 0) ? 0x7c : 0x7f;
20103 mask = (0xf << 12);
20148 if ((addr != 0xffff) && (core_mask & (1 << core_num)))
20149 mod_phy_reg(pi, addr, mask, (value << shift));
20152 or_phy_reg(pi, 0xec, (0x1 << 0));
20153 or_phy_reg(pi, 0x78, (0x1 << 0));
20155 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20160 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
20161 u8 core_mask, u8 off)
20163 u16 rfmxgain = 0, lpfgain = 0;
20166 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20169 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
20170 wlc_phy_rfctrl_override_nphy_rev7(
20172 value, core_mask, off,
20173 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20174 wlc_phy_rfctrl_override_nphy_rev7(
20175 pi, (0x1 << 4), value,
20177 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20178 wlc_phy_rfctrl_override_nphy_rev7(
20179 pi, (0x1 << 3), value,
20181 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20183 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
20184 wlc_phy_rfctrl_override_nphy_rev7(
20186 value, core_mask, off,
20187 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20188 wlc_phy_rfctrl_override_nphy_rev7(
20189 pi, (0x1 << 1), value,
20191 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20192 wlc_phy_rfctrl_override_nphy_rev7(
20193 pi, (0x1 << 0), value,
20195 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20196 wlc_phy_rfctrl_override_nphy_rev7(
20197 pi, (0x1 << 1), value,
20199 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20200 wlc_phy_rfctrl_override_nphy_rev7(
20201 pi, (0x1 << 11), 0,
20203 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20205 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
20206 wlc_phy_rfctrl_override_nphy_rev7(
20208 value, core_mask, off,
20209 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20210 wlc_phy_rfctrl_override_nphy_rev7(
20211 pi, (0x1 << 1), value,
20213 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20214 wlc_phy_rfctrl_override_nphy_rev7(
20215 pi, (0x1 << 0), value,
20217 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20218 wlc_phy_rfctrl_override_nphy_rev7(
20219 pi, (0x1 << 2), value,
20221 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20222 wlc_phy_rfctrl_override_nphy_rev7(
20223 pi, (0x1 << 11), 1,
20225 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20227 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
20228 rfmxgain = value & 0x000ff;
20229 lpfgain = value & 0x0ff00;
20230 lpfgain = lpfgain >> 8;
20232 wlc_phy_rfctrl_override_nphy_rev7(
20234 rfmxgain, core_mask,
20236 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20237 wlc_phy_rfctrl_override_nphy_rev7(
20239 lpfgain, core_mask,
20241 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20243 case NPHY_REV7_RfctrlOverride_cmd_txgain:
20244 tgain = value & 0x7fff;
20245 lpfgain = value & 0x8000;
20246 lpfgain = lpfgain >> 14;
20248 wlc_phy_rfctrl_override_nphy_rev7(
20250 tgain, core_mask, off,
20251 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20252 wlc_phy_rfctrl_override_nphy_rev7(
20254 lpfgain, core_mask,
20256 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20263 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
20264 u8 coresel, u8 rail, u8 rssi_type)
20268 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
20269 NPHY_RSSICAL_MAXREAD : offset;
20270 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
20271 -NPHY_RSSICAL_MAXREAD - 1 : offset;
20273 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
20275 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20276 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20277 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
20278 write_phy_reg(pi, 0x1a6, valuetostuff);
20280 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20281 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20282 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
20283 write_phy_reg(pi, 0x1ac, valuetostuff);
20285 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20286 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20287 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
20288 write_phy_reg(pi, 0x1b2, valuetostuff);
20290 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20291 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20292 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
20293 write_phy_reg(pi, 0x1b8, valuetostuff);
20295 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20296 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20297 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
20298 write_phy_reg(pi, 0x1a4, valuetostuff);
20300 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20301 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20302 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
20303 write_phy_reg(pi, 0x1aa, valuetostuff);
20305 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20306 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20307 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
20308 write_phy_reg(pi, 0x1b0, valuetostuff);
20310 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20311 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20312 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
20313 write_phy_reg(pi, 0x1b6, valuetostuff);
20315 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20316 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20317 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
20318 write_phy_reg(pi, 0x1a5, valuetostuff);
20319 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20320 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20321 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
20322 write_phy_reg(pi, 0x1ab, valuetostuff);
20324 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20325 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20326 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
20327 write_phy_reg(pi, 0x1b1, valuetostuff);
20329 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20330 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20331 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
20332 write_phy_reg(pi, 0x1b7, valuetostuff);
20334 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20335 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20336 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
20337 write_phy_reg(pi, 0x1a7, valuetostuff);
20338 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20339 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20340 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
20341 write_phy_reg(pi, 0x1ad, valuetostuff);
20342 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20343 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20344 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
20345 write_phy_reg(pi, 0x1b3, valuetostuff);
20346 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20347 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20348 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
20349 write_phy_reg(pi, 0x1b9, valuetostuff);
20351 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20352 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20353 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
20354 write_phy_reg(pi, 0x1a8, valuetostuff);
20356 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20357 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20358 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
20359 write_phy_reg(pi, 0x1ae, valuetostuff);
20361 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20362 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20363 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
20364 write_phy_reg(pi, 0x1b4, valuetostuff);
20366 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20367 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20368 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
20369 write_phy_reg(pi, 0x1ba, valuetostuff);
20371 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20372 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20373 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
20374 write_phy_reg(pi, 0x1a9, valuetostuff);
20375 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20376 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20377 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
20378 write_phy_reg(pi, 0x1b5, valuetostuff);
20380 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20381 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20382 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
20383 write_phy_reg(pi, 0x1af, valuetostuff);
20385 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20386 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20387 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
20388 write_phy_reg(pi, 0x1bb, valuetostuff);
20391 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
20394 if (NREV_GE(pi->pubpi.phy_rev, 7))
20395 write_radio_reg(pi,
20396 ((core == PHY_CORE_0) ?
20397 RADIO_2057_TX0_TX_SSI_MUX :
20398 RADIO_2057_TX1_TX_SSI_MUX),
20399 (CHSPEC_IS5G(pi->radio_chanspec) ?
20402 write_radio_reg(pi,
20403 RADIO_2056_TX_TX_SSI_MUX |
20404 ((core == PHY_CORE_0) ?
20405 RADIO_2056_TX0 : RADIO_2056_TX1),
20406 (CHSPEC_IS5G(pi->radio_chanspec) ?
20409 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20410 write_radio_reg(pi,
20411 ((core == PHY_CORE_0) ?
20412 RADIO_2057_TX0_TX_SSI_MUX :
20413 RADIO_2057_TX1_TX_SSI_MUX),
20416 if (pi->pubpi.radioid == BCM2057_ID)
20417 write_radio_reg(pi,
20418 RADIO_2057_IQTEST_SEL_PU, 0x1);
20421 write_radio_reg(pi,
20422 RADIO_2056_TX_TX_SSI_MUX |
20423 ((core == PHY_CORE_0) ?
20424 RADIO_2056_TX0 : RADIO_2056_TX1),
20430 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
20433 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
20435 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
20436 rfctrlovr_trigger_val;
20437 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
20438 u16 rfctrlcmd_val, rfctrlovr_val;
20441 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20442 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20443 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
20444 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
20446 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
20447 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
20449 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
20450 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
20452 mask = (0x1 << 2) |
20453 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20454 mod_phy_reg(pi, 0xf9, mask, 0);
20455 mod_phy_reg(pi, 0xfb, mask, 0);
20458 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20459 if (core_code == RADIO_MIMO_CORESEL_CORE1
20460 && core == PHY_CORE_1)
20462 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20463 && core == PHY_CORE_0)
20466 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20467 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20469 if (rssi_type == NPHY_RSSI_SEL_W1 ||
20470 rssi_type == NPHY_RSSI_SEL_W2 ||
20471 rssi_type == NPHY_RSSI_SEL_NB) {
20474 PHY_CORE_0) ? 0xa6 : 0xa7,
20477 mask = (0x1 << 2) |
20479 (0x1 << 4) | (0x1 << 5);
20482 PHY_CORE_0) ? 0xf9 : 0xfb,
20485 if (rssi_type == NPHY_RSSI_SEL_W1) {
20487 pi->radio_chanspec)) {
20494 } else if (rssi_type ==
20495 NPHY_RSSI_SEL_W2) {
20504 PHY_CORE_0) ? 0xf9 : 0xfb,
20509 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20510 0xe5 : 0xe6, mask, val);
20512 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20518 : 0xa7, mask, val);
20519 mask = (0x3 << 10);
20524 : 0xa7, mask, val);
20525 } else if (rssi_type ==
20526 NPHY_RSSI_SEL_IQ) {
20532 : 0xa7, mask, val);
20533 mask = (0x3 << 10);
20538 : 0xa7, mask, val);
20545 : 0xa7, mask, val);
20546 mask = (0x3 << 10);
20551 : 0xa7, mask, val);
20552 brcms_phy_wr_tx_mux(pi, core);
20553 afectrlovr_rssi_val = 1 << 9;
20557 : 0xa5, (0x1 << 9),
20558 afectrlovr_rssi_val);
20565 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20566 (rssi_type == NPHY_RSSI_SEL_W2) ||
20567 (rssi_type == NPHY_RSSI_SEL_NB))
20569 else if (rssi_type == NPHY_RSSI_SEL_TBD)
20571 else if (rssi_type == NPHY_RSSI_SEL_IQ)
20576 mask = ((0x3 << 12) | (0x3 << 14));
20577 val = (val << 12) | (val << 14);
20578 mod_phy_reg(pi, 0xa6, mask, val);
20579 mod_phy_reg(pi, 0xa7, mask, val);
20581 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20582 (rssi_type == NPHY_RSSI_SEL_W2) ||
20583 (rssi_type == NPHY_RSSI_SEL_NB)) {
20584 if (rssi_type == NPHY_RSSI_SEL_W1)
20586 if (rssi_type == NPHY_RSSI_SEL_W2)
20588 if (rssi_type == NPHY_RSSI_SEL_NB)
20593 mod_phy_reg(pi, 0x7a, mask, val);
20594 mod_phy_reg(pi, 0x7d, mask, val);
20597 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20598 afectrlovr_rssi_val = 0;
20599 rfctrlcmd_rxen_val = 0;
20600 rfctrlcmd_coresel_val = 0;
20601 rfctrlovr_rssi_val = 0;
20602 rfctrlovr_rxen_val = 0;
20603 rfctrlovr_coresel_val = 0;
20604 rfctrlovr_trigger_val = 0;
20607 afectrlovr_rssi_val = 1;
20608 rfctrlcmd_rxen_val = 1;
20609 rfctrlcmd_coresel_val = core_code;
20610 rfctrlovr_rssi_val = 1;
20611 rfctrlovr_rxen_val = 1;
20612 rfctrlovr_coresel_val = 1;
20613 rfctrlovr_trigger_val = 1;
20617 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
20618 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
20619 12) | (afectrlovr_rssi_val << 13);
20620 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
20621 afectrlovr_rssi_val);
20623 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20624 (rssi_type == NPHY_RSSI_SEL_W2) ||
20625 (rssi_type == NPHY_RSSI_SEL_NB)) {
20626 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
20627 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
20628 (rfctrlcmd_coresel_val << 3);
20630 rfctrlovr_mask = ((0x1 << 5) |
20632 (0x1 << 1) | (0x1 << 0));
20633 rfctrlovr_val = (rfctrlovr_rssi_val <<
20635 (rfctrlovr_rxen_val << 12) |
20636 (rfctrlovr_coresel_val << 1) |
20637 (rfctrlovr_trigger_val << 0);
20639 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
20640 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
20642 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
20645 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
20651 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
20655 u16 afectrlCore1_save = 0;
20656 u16 afectrlCore2_save = 0;
20657 u16 afectrlOverride1_save = 0;
20658 u16 afectrlOverride2_save = 0;
20659 u16 rfctrlOverrideAux0_save = 0;
20660 u16 rfctrlOverrideAux1_save = 0;
20661 u16 rfctrlMiscReg1_save = 0;
20662 u16 rfctrlMiscReg2_save = 0;
20663 u16 rfctrlcmd_save = 0;
20664 u16 rfctrloverride_save = 0;
20665 u16 rfctrlrssiothers1_save = 0;
20666 u16 rfctrlrssiothers2_save = 0;
20668 u8 ctr = 0, samp = 0;
20672 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20673 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20674 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20675 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
20676 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
20677 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
20678 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20679 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
20680 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
20682 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
20683 rfctrlcmd_save = read_phy_reg(pi, 0x78);
20684 rfctrloverride_save = read_phy_reg(pi, 0xec);
20685 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
20686 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
20689 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
20691 gpiosel_orig = read_phy_reg(pi, 0xca);
20692 if (NREV_LT(pi->pubpi.phy_rev, 2))
20693 write_phy_reg(pi, 0xca, 5);
20695 for (ctr = 0; ctr < 4; ctr++)
20698 for (samp = 0; samp < nsamps; samp++) {
20699 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20700 rssi0 = read_phy_reg(pi, 0x1c9);
20701 rssi1 = read_phy_reg(pi, 0x1ca);
20703 rssi0 = read_phy_reg(pi, 0x219);
20704 rssi1 = read_phy_reg(pi, 0x21a);
20708 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
20709 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
20710 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
20711 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
20713 for (ctr = 0; ctr < 4; ctr++)
20714 rssi_buf[ctr] += tmp_buf[ctr];
20718 rssi_out_val = rssi_buf[3] & 0xff;
20719 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
20720 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
20721 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
20723 if (NREV_LT(pi->pubpi.phy_rev, 2))
20724 write_phy_reg(pi, 0xca, gpiosel_orig);
20726 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20727 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20728 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20729 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
20730 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
20731 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
20732 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20733 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
20734 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
20736 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
20737 write_phy_reg(pi, 0x78, rfctrlcmd_save);
20738 write_phy_reg(pi, 0xec, rfctrloverride_save);
20739 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
20740 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
20743 return rssi_out_val;
20746 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
20748 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
20749 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
20750 u16 pwrdet_rxtx_core1_save;
20751 u16 pwrdet_rxtx_core2_save;
20752 u16 afectrlCore1_save;
20753 u16 afectrlCore2_save;
20754 u16 afectrlOverride_save;
20755 u16 afectrlOverride2_save;
20756 u16 pd_pll_ts_save;
20759 s32 radio_temp2[4];
20760 u16 syn_tempprocsense_save;
20763 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20764 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
20765 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
20766 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
20768 u16 RfctrlOverride5_save, RfctrlOverride6_save;
20769 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
20770 u16 RSSIMultCoef0QPowerDet_save;
20771 u16 tempsense_Rcal;
20773 syn_tempprocsense_save =
20774 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
20776 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20777 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20778 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20779 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20780 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
20781 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
20782 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
20783 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
20784 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
20786 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20787 &auxADC_Vmid_save);
20788 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20790 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20791 &auxADC_rssi_ctrlL_save);
20792 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20793 &auxADC_rssi_ctrlH_save);
20795 write_phy_reg(pi, 0x1ae, 0x0);
20797 auxADC_rssi_ctrlL = 0x0;
20798 auxADC_rssi_ctrlH = 0x20;
20799 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20800 &auxADC_rssi_ctrlL);
20801 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20802 &auxADC_rssi_ctrlH);
20804 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
20806 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20807 tempsense_Rcal | 0x01);
20809 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
20811 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20812 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
20813 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
20814 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
20815 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
20817 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
20818 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
20819 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
20820 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
20822 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
20823 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
20824 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
20825 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
20826 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
20827 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
20828 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
20829 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
20830 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
20831 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
20833 auxADC_Vmid = 0xA3;
20835 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20837 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20842 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20843 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20844 tempsense_Rcal | 0x03);
20847 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20850 if (radio_temp[1] + radio_temp2[1] < -30) {
20851 auxADC_Vmid = 0x45;
20853 } else if (radio_temp[1] + radio_temp2[1] < -9) {
20854 auxADC_Vmid = 0x200;
20856 } else if (radio_temp[1] + radio_temp2[1] < 11) {
20857 auxADC_Vmid = 0x266;
20860 auxADC_Vmid = 0x2D5;
20864 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20866 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20871 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20872 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20873 tempsense_Rcal | 0x01);
20876 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20878 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20879 syn_tempprocsense_save);
20881 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20882 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20883 write_phy_reg(pi, 0x8f, afectrlOverride_save);
20884 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20885 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
20886 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
20887 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
20888 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
20889 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
20891 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20892 &auxADC_Vmid_save);
20893 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20895 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20896 &auxADC_rssi_ctrlL_save);
20897 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20898 &auxADC_rssi_ctrlH_save);
20900 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
20901 + 82 * (auxADC_Vl) - 28861 +
20904 offset = (s16) pi->phy_tempsense_offset;
20906 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20907 syn_tempprocsense_save =
20908 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
20910 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20911 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20912 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20913 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20914 gpioSel_save = read_phy_reg(pi, 0xca);
20916 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
20918 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20919 if (NREV_LT(pi->pubpi.phy_rev, 7))
20920 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
20922 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20923 if (NREV_GE(pi->pubpi.phy_rev, 7))
20924 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
20926 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
20929 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
20931 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
20932 syn_tempprocsense_save);
20934 write_phy_reg(pi, 0xca, gpioSel_save);
20935 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20936 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20937 write_phy_reg(pi, 0x8f, afectrlOverride_save);
20938 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20940 offset = (s16) pi->phy_tempsense_offset;
20943 pwrdet_rxtx_core1_save =
20944 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
20945 pwrdet_rxtx_core2_save =
20946 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
20947 core1_txrf_iqcal1_save =
20948 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
20949 core1_txrf_iqcal2_save =
20950 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
20951 core2_txrf_iqcal1_save =
20952 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
20953 core2_txrf_iqcal2_save =
20954 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
20955 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
20957 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20958 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20959 afectrlOverride_save = read_phy_reg(pi, 0xa5);
20960 gpioSel_save = read_phy_reg(pi, 0xca);
20962 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
20963 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
20964 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
20965 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
20966 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
20967 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
20968 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
20970 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20971 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
20973 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20974 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
20976 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20977 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
20979 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
20980 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
20981 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
20982 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
20985 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
20990 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
20992 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
20994 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
20995 pwrdet_rxtx_core1_save);
20996 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
20997 pwrdet_rxtx_core2_save);
20998 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
20999 core1_txrf_iqcal1_save);
21000 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
21001 core2_txrf_iqcal1_save);
21002 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
21003 core1_txrf_iqcal2_save);
21004 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
21005 core2_txrf_iqcal2_save);
21006 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
21008 write_phy_reg(pi, 0xca, gpioSel_save);
21009 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21010 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21011 write_phy_reg(pi, 0xa5, afectrlOverride_save);
21014 return (s16) radio_temp[0] + offset;
21018 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
21022 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21023 if (rssi_type == NPHY_RSSI_SEL_NB) {
21024 if (core == PHY_CORE_0) {
21026 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21027 RADIO_2055_NBRSSI_VCM_I_MASK,
21030 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21032 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21033 RADIO_2055_NBRSSI_VCM_Q_MASK,
21036 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21039 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21040 RADIO_2055_NBRSSI_VCM_I_MASK,
21043 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21045 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21046 RADIO_2055_NBRSSI_VCM_Q_MASK,
21049 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21052 if (core == PHY_CORE_0)
21054 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21055 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21058 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21061 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21062 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21065 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21070 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
21072 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21073 wlc_phy_rssi_cal_nphy_rev3(pi);
21075 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
21076 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
21077 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
21081 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
21086 u16 rssi_ctrl_state[2], pd_state[2];
21087 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
21088 u16 rfctrlintc_override_val;
21089 u16 clip_off[] = { 0xffff, 0xffff };
21090 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
21091 u8 vcm, min_vcm, vcm_tmp[4];
21092 u8 vcm_final[4] = { 0, 0, 0, 0 };
21093 u8 result_idx, ctr;
21094 s32 poll_results[4][4] = {
21100 s32 poll_miniq[4][2] = {
21107 s32 fine_digital_offset[4];
21108 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21111 switch (rssi_type) {
21112 case NPHY_RSSI_SEL_NB:
21113 target_code = NPHY_RSSICAL_NB_TARGET;
21115 case NPHY_RSSI_SEL_W1:
21116 target_code = NPHY_RSSICAL_W1_TARGET;
21118 case NPHY_RSSI_SEL_W2:
21119 target_code = NPHY_RSSICAL_W2_TARGET;
21126 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21127 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21128 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21129 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21131 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
21132 rfctrlintc_override_val =
21133 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
21135 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
21136 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
21137 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
21138 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
21140 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
21141 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
21142 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
21143 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
21145 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
21146 RADIO_2055_WBRSSI_G2_PD;
21148 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21150 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
21151 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
21152 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
21153 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
21154 RADIO_2055_WBRSSI_G2_SEL;
21155 rssi_ctrl_state[0] =
21156 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
21157 rssi_ctrl_state[1] =
21158 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
21159 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21161 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21162 NPHY_RAIL_I, rssi_type);
21163 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21164 NPHY_RAIL_Q, rssi_type);
21166 for (vcm = 0; vcm < 4; vcm++) {
21168 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
21169 if (rssi_type != NPHY_RSSI_SEL_W2)
21170 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
21172 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
21173 NPHY_RSSICAL_NPOLL);
21175 if ((rssi_type == NPHY_RSSI_SEL_W1)
21176 || (rssi_type == NPHY_RSSI_SEL_W2)) {
21177 for (ctr = 0; ctr < 2; ctr++)
21178 poll_miniq[vcm][ctr] =
21179 min(poll_results[vcm][ctr * 2 + 0],
21180 poll_results[vcm][ctr * 2 + 1]);
21184 for (result_idx = 0; result_idx < 4; result_idx++) {
21185 min_d = NPHY_RSSICAL_MAXD;
21187 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
21188 for (vcm = 0; vcm < 4; vcm++) {
21189 curr_d = ABS(((rssi_type == NPHY_RSSI_SEL_NB) ?
21190 poll_results[vcm][result_idx] :
21191 poll_miniq[vcm][result_idx / 2]) -
21192 (target_code * NPHY_RSSICAL_NPOLL));
21193 if (curr_d < min_d) {
21197 if (poll_results[vcm][result_idx] < min_poll)
21198 min_poll = poll_results[vcm][result_idx];
21200 vcm_final[result_idx] = min_vcm;
21201 poll_results_min[result_idx] = min_poll;
21204 if (rssi_type != NPHY_RSSI_SEL_W2)
21205 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
21207 for (result_idx = 0; result_idx < 4; result_idx++) {
21208 fine_digital_offset[result_idx] =
21209 (target_code * NPHY_RSSICAL_NPOLL) -
21210 poll_results[vcm_final[result_idx]][result_idx];
21211 if (fine_digital_offset[result_idx] < 0) {
21212 fine_digital_offset[result_idx] =
21213 ABS(fine_digital_offset[result_idx]);
21214 fine_digital_offset[result_idx] +=
21215 (NPHY_RSSICAL_NPOLL / 2);
21216 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21217 fine_digital_offset[result_idx] =
21218 -fine_digital_offset[result_idx];
21220 fine_digital_offset[result_idx] +=
21221 (NPHY_RSSICAL_NPOLL / 2);
21222 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21225 if (poll_results_min[result_idx] ==
21226 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
21227 fine_digital_offset[result_idx] =
21228 (target_code - NPHY_RSSICAL_MAXREAD - 1);
21230 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
21232 fine_digital_offset[result_idx],
21234 0) ? RADIO_MIMO_CORESEL_CORE1 :
21235 RADIO_MIMO_CORESEL_CORE2,
21237 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21241 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
21242 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
21243 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
21244 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21246 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
21247 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21249 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
21250 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21253 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21255 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
21256 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21258 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
21259 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21261 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
21262 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21265 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21268 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
21270 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
21271 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
21272 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
21273 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
21275 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
21276 wlc_phy_clip_det_nphy(pi, 1, clip_state);
21278 wlc_phy_resetcca_nphy(pi);
21282 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct brcms_d11rxhdr *wlc_rxh)
21284 struct d11rxhdr *rxh = &wlc_rxh->rxhdr;
21285 s16 rxpwr, rxpwr0, rxpwr1;
21286 s16 phyRx0_l, phyRx2_l;
21289 rxpwr0 = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
21290 rxpwr1 = (le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
21297 phyRx0_l = le16_to_cpu(rxh->PhyRxStatus_0) & 0x00ff;
21298 phyRx2_l = le16_to_cpu(rxh->PhyRxStatus_2) & 0x00ff;
21299 if (phyRx2_l > 127)
21302 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21307 wlc_rxh->rxpwr[0] = (s8) rxpwr0;
21308 wlc_rxh->rxpwr[1] = (s8) rxpwr1;
21309 wlc_rxh->do_rssi_ma = 0;
21311 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
21312 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
21313 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
21314 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
21315 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
21316 rxpwr = (rxpwr0 + rxpwr1) >> 1;
21322 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
21329 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21330 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21331 if (core_code == RADIO_MIMO_CORESEL_CORE1
21332 && core == PHY_CORE_1)
21334 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21335 && core == PHY_CORE_0)
21338 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21340 mask = (0x1 << 10);
21342 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21346 if (field == NPHY_RfctrlIntc_override_OFF) {
21348 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21351 wlc_phy_force_rfseq_nphy(pi,
21352 NPHY_RFSEQ_RESET2RX);
21353 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
21355 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21357 mask = (0x1 << 6) | (0x1 << 7);
21362 PHY_CORE_0) ? 0x91 : 0x92,
21367 PHY_CORE_0) ? 0x91 : 0x92,
21370 and_phy_reg(pi, 0x2ff, (u16)
21372 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21373 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21376 mask = (0x1 << 6) |
21378 (0x1 << 8) | (0x1 << 9);
21382 PHY_CORE_0) ? 0x91 : 0x92,
21389 PHY_CORE_0) ? 0xe7 : 0xec,
21392 mask = (core == PHY_CORE_0) ?
21393 (0x1 << 0) : (0x1 << 1);
21394 val = 1 << ((core == PHY_CORE_0) ?
21396 mod_phy_reg(pi, 0x78, mask, val);
21398 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21400 if (WARN(read_phy_reg(pi, 0x78) & val,
21401 "HW error: override failed"))
21408 PHY_CORE_0) ? 0xe7 : 0xec,
21411 } else if (field == NPHY_RfctrlIntc_override_PA) {
21412 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21414 mask = (0x1 << 4) | (0x1 << 5);
21416 if (CHSPEC_IS5G(pi->radio_chanspec))
21423 PHY_CORE_0) ? 0x91 : 0x92,
21428 PHY_CORE_0) ? 0x91 : 0x92,
21432 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21441 PHY_CORE_0) ? 0x91 : 0x92,
21444 } else if (field ==
21445 NPHY_RfctrlIntc_override_EXT_LNA_PU) {
21446 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21447 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21454 : 0x92, mask, val);
21468 : 0x92, mask, val);
21477 mask = (0x1 << 11);
21481 PHY_CORE_0) ? 0x91 : 0x92,
21485 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21494 PHY_CORE_0) ? 0x91 : 0x92,
21497 } else if (field ==
21498 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
21499 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21500 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21507 : 0x92, mask, val);
21521 : 0x92, mask, val);
21530 mask = (0x1 << 11);
21534 PHY_CORE_0) ? 0x91 : 0x92,
21538 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21547 PHY_CORE_0) ? 0x91 : 0x92,
21555 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
21559 u16 clip_off[] = { 0xffff, 0xffff };
21564 s32 poll_results[8][4] = {
21574 s32 poll_result_core[4] = { 0, 0, 0, 0 };
21575 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
21576 s32 fine_digital_offset[4];
21577 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21583 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
21584 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
21585 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
21586 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
21587 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
21588 u16 NPHY_RfctrlCmd_save;
21589 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
21590 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
21592 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
21593 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
21594 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
21595 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
21597 NPHY_REV7_RfctrlOverride3_save =
21598 NPHY_REV7_RfctrlOverride4_save =
21599 NPHY_REV7_RfctrlOverride5_save =
21600 NPHY_REV7_RfctrlOverride6_save =
21601 NPHY_REV7_RfctrlMiscReg3_save =
21602 NPHY_REV7_RfctrlMiscReg4_save =
21603 NPHY_REV7_RfctrlMiscReg5_save =
21604 NPHY_REV7_RfctrlMiscReg6_save = 0;
21606 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21607 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21608 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21609 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21611 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
21612 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
21613 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
21614 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
21615 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
21616 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
21617 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
21618 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
21619 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21620 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
21621 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
21622 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
21623 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
21625 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21626 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21627 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
21628 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21629 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21630 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21631 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
21632 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
21633 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
21634 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
21636 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
21637 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
21639 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
21640 RADIO_MIMO_CORESEL_ALLRXTX);
21641 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
21642 RADIO_MIMO_CORESEL_ALLRXTX);
21644 if (NREV_GE(pi->pubpi.phy_rev, 7))
21645 wlc_phy_rfctrl_override_1tomany_nphy(
21647 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
21650 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
21652 if (NREV_GE(pi->pubpi.phy_rev, 7))
21653 wlc_phy_rfctrl_override_1tomany_nphy(
21655 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
21658 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
21660 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21661 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
21663 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21664 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21665 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21667 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
21668 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
21671 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21672 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21673 wlc_phy_rfctrl_override_nphy_rev7(
21676 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21677 wlc_phy_rfctrl_override_nphy_rev7(
21678 pi, (0x1 << 4), 1, 0,
21680 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21682 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21683 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21687 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21688 wlc_phy_rfctrl_override_nphy_rev7(
21691 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21692 wlc_phy_rfctrl_override_nphy_rev7(
21693 pi, (0x1 << 5), 1, 0,
21695 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21697 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
21698 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
21702 rxcore_state = wlc_phy_rxcore_getstate_nphy(
21703 (struct brcms_phy_pub *) pi);
21707 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21709 if ((rxcore_state & (1 << core)) == 0)
21712 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21715 RADIO_MIMO_CORESEL_CORE1 :
21716 RADIO_MIMO_CORESEL_CORE2,
21717 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
21718 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21721 RADIO_MIMO_CORESEL_CORE1 :
21722 RADIO_MIMO_CORESEL_CORE2,
21723 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
21725 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21726 if (NREV_GE(pi->pubpi.phy_rev, 7))
21727 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21728 RADIO_2057_NB_MASTER_CORE0 :
21729 RADIO_2057_NB_MASTER_CORE1,
21730 RADIO_2057_VCM_MASK, vcm);
21732 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21734 PHY_CORE_0) ? RADIO_2056_RX0 :
21736 RADIO_2056_VCM_MASK,
21737 vcm << RADIO_2056_RSSI_VCM_SHIFT);
21739 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
21740 &poll_results[vcm][0],
21741 NPHY_RSSICAL_NPOLL);
21744 for (result_idx = 0; result_idx < 4; result_idx++) {
21745 if ((core == result_idx / 2) &&
21746 (result_idx % 2 == 0)) {
21748 min_d = NPHY_RSSICAL_MAXD;
21751 NPHY_RSSICAL_MAXREAD *
21752 NPHY_RSSICAL_NPOLL + 1;
21753 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21755 poll_results[vcm][result_idx] *
21756 poll_results[vcm][result_idx] +
21757 poll_results[vcm][result_idx +
21759 poll_results[vcm][result_idx +
21761 if (curr_d < min_d) {
21765 if (poll_results[vcm][result_idx] <
21771 vcm_final = min_vcm;
21772 poll_results_min[result_idx] = min_poll;
21776 if (NREV_GE(pi->pubpi.phy_rev, 7))
21777 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21778 RADIO_2057_NB_MASTER_CORE0 :
21779 RADIO_2057_NB_MASTER_CORE1,
21780 RADIO_2057_VCM_MASK, vcm_final);
21782 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21784 PHY_CORE_0) ? RADIO_2056_RX0 :
21785 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
21786 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
21788 for (result_idx = 0; result_idx < 4; result_idx++) {
21789 if (core == result_idx / 2) {
21790 fine_digital_offset[result_idx] =
21791 (NPHY_RSSICAL_NB_TARGET *
21792 NPHY_RSSICAL_NPOLL) -
21793 poll_results[vcm_final][result_idx];
21794 if (fine_digital_offset[result_idx] < 0) {
21795 fine_digital_offset[result_idx] =
21796 ABS(fine_digital_offset
21798 fine_digital_offset[result_idx] +=
21799 (NPHY_RSSICAL_NPOLL / 2);
21800 fine_digital_offset[result_idx] /=
21801 NPHY_RSSICAL_NPOLL;
21802 fine_digital_offset[result_idx] =
21803 -fine_digital_offset[
21806 fine_digital_offset[result_idx] +=
21807 (NPHY_RSSICAL_NPOLL / 2);
21808 fine_digital_offset[result_idx] /=
21809 NPHY_RSSICAL_NPOLL;
21812 if (poll_results_min[result_idx] ==
21813 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
21814 fine_digital_offset[result_idx] =
21815 (NPHY_RSSICAL_NB_TARGET -
21816 NPHY_RSSICAL_MAXREAD - 1);
21818 wlc_phy_scale_offset_rssi_nphy(
21821 fine_digital_offset
21823 (result_idx / 2 == 0) ?
21824 RADIO_MIMO_CORESEL_CORE1 :
21825 RADIO_MIMO_CORESEL_CORE2,
21826 (result_idx % 2 == 0) ?
21827 NPHY_RAIL_I : NPHY_RAIL_Q,
21834 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21836 if ((rxcore_state & (1 << core)) == 0)
21839 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
21841 rssi_type = NPHY_RSSI_SEL_W1;
21842 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
21844 rssi_type = NPHY_RSSI_SEL_W2;
21845 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
21848 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21851 RADIO_MIMO_CORESEL_CORE1
21853 RADIO_MIMO_CORESEL_CORE2,
21854 NPHY_RAIL_I, rssi_type);
21855 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21858 RADIO_MIMO_CORESEL_CORE1
21860 RADIO_MIMO_CORESEL_CORE2,
21861 NPHY_RAIL_Q, rssi_type);
21863 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
21864 NPHY_RSSICAL_NPOLL);
21866 for (result_idx = 0; result_idx < 4; result_idx++) {
21867 if (core == result_idx / 2) {
21868 fine_digital_offset[result_idx] =
21870 NPHY_RSSICAL_NPOLL) -
21871 poll_result_core[result_idx];
21872 if (fine_digital_offset[result_idx] <
21874 fine_digital_offset[result_idx]
21876 fine_digital_offset
21878 fine_digital_offset[result_idx]
21879 += (NPHY_RSSICAL_NPOLL
21881 fine_digital_offset[result_idx]
21882 /= NPHY_RSSICAL_NPOLL;
21883 fine_digital_offset[result_idx]
21884 = -fine_digital_offset
21887 fine_digital_offset[result_idx]
21888 += (NPHY_RSSICAL_NPOLL
21890 fine_digital_offset[result_idx]
21891 /= NPHY_RSSICAL_NPOLL;
21894 wlc_phy_scale_offset_rssi_nphy(
21897 fine_digital_offset
21900 (core == PHY_CORE_0) ?
21901 RADIO_MIMO_CORESEL_CORE1 :
21902 RADIO_MIMO_CORESEL_CORE2,
21903 (result_idx % 2 == 0) ?
21913 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
21914 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
21916 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
21918 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
21919 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
21920 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
21922 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
21923 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
21924 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
21926 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
21927 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
21928 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
21929 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
21930 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
21931 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
21932 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21933 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
21934 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
21935 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
21936 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
21938 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
21939 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
21940 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
21941 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
21942 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
21943 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21944 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
21945 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
21946 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
21947 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
21949 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
21950 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
21952 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21953 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21954 pi->rssical_cache.rssical_radio_regs_2G[0] =
21955 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
21956 pi->rssical_cache.rssical_radio_regs_2G[1] =
21957 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
21959 pi->rssical_cache.rssical_radio_regs_2G[0] =
21961 RADIO_2056_RX_RSSI_MISC |
21963 pi->rssical_cache.rssical_radio_regs_2G[1] =
21965 RADIO_2056_RX_RSSI_MISC |
21969 pi->rssical_cache.rssical_phyregs_2G[0] =
21970 read_phy_reg(pi, 0x1a6);
21971 pi->rssical_cache.rssical_phyregs_2G[1] =
21972 read_phy_reg(pi, 0x1ac);
21973 pi->rssical_cache.rssical_phyregs_2G[2] =
21974 read_phy_reg(pi, 0x1b2);
21975 pi->rssical_cache.rssical_phyregs_2G[3] =
21976 read_phy_reg(pi, 0x1b8);
21977 pi->rssical_cache.rssical_phyregs_2G[4] =
21978 read_phy_reg(pi, 0x1a4);
21979 pi->rssical_cache.rssical_phyregs_2G[5] =
21980 read_phy_reg(pi, 0x1aa);
21981 pi->rssical_cache.rssical_phyregs_2G[6] =
21982 read_phy_reg(pi, 0x1b0);
21983 pi->rssical_cache.rssical_phyregs_2G[7] =
21984 read_phy_reg(pi, 0x1b6);
21985 pi->rssical_cache.rssical_phyregs_2G[8] =
21986 read_phy_reg(pi, 0x1a5);
21987 pi->rssical_cache.rssical_phyregs_2G[9] =
21988 read_phy_reg(pi, 0x1ab);
21989 pi->rssical_cache.rssical_phyregs_2G[10] =
21990 read_phy_reg(pi, 0x1b1);
21991 pi->rssical_cache.rssical_phyregs_2G[11] =
21992 read_phy_reg(pi, 0x1b7);
21994 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
21996 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21997 pi->rssical_cache.rssical_radio_regs_5G[0] =
21998 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
21999 pi->rssical_cache.rssical_radio_regs_5G[1] =
22000 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22002 pi->rssical_cache.rssical_radio_regs_5G[0] =
22004 RADIO_2056_RX_RSSI_MISC |
22006 pi->rssical_cache.rssical_radio_regs_5G[1] =
22008 RADIO_2056_RX_RSSI_MISC |
22012 pi->rssical_cache.rssical_phyregs_5G[0] =
22013 read_phy_reg(pi, 0x1a6);
22014 pi->rssical_cache.rssical_phyregs_5G[1] =
22015 read_phy_reg(pi, 0x1ac);
22016 pi->rssical_cache.rssical_phyregs_5G[2] =
22017 read_phy_reg(pi, 0x1b2);
22018 pi->rssical_cache.rssical_phyregs_5G[3] =
22019 read_phy_reg(pi, 0x1b8);
22020 pi->rssical_cache.rssical_phyregs_5G[4] =
22021 read_phy_reg(pi, 0x1a4);
22022 pi->rssical_cache.rssical_phyregs_5G[5] =
22023 read_phy_reg(pi, 0x1aa);
22024 pi->rssical_cache.rssical_phyregs_5G[6] =
22025 read_phy_reg(pi, 0x1b0);
22026 pi->rssical_cache.rssical_phyregs_5G[7] =
22027 read_phy_reg(pi, 0x1b6);
22028 pi->rssical_cache.rssical_phyregs_5G[8] =
22029 read_phy_reg(pi, 0x1a5);
22030 pi->rssical_cache.rssical_phyregs_5G[9] =
22031 read_phy_reg(pi, 0x1ab);
22032 pi->rssical_cache.rssical_phyregs_5G[10] =
22033 read_phy_reg(pi, 0x1b1);
22034 pi->rssical_cache.rssical_phyregs_5G[11] =
22035 read_phy_reg(pi, 0x1b7);
22037 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22040 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22041 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22044 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
22046 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22047 if (pi->nphy_rssical_chanspec_2G == 0)
22050 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22051 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22052 RADIO_2057_VCM_MASK,
22054 rssical_radio_regs_2G[0]);
22055 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22056 RADIO_2057_VCM_MASK,
22058 rssical_radio_regs_2G[1]);
22061 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22062 RADIO_2056_VCM_MASK,
22064 rssical_radio_regs_2G[0]);
22066 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22067 RADIO_2056_VCM_MASK,
22069 rssical_radio_regs_2G[1]);
22072 write_phy_reg(pi, 0x1a6,
22073 pi->rssical_cache.rssical_phyregs_2G[0]);
22074 write_phy_reg(pi, 0x1ac,
22075 pi->rssical_cache.rssical_phyregs_2G[1]);
22076 write_phy_reg(pi, 0x1b2,
22077 pi->rssical_cache.rssical_phyregs_2G[2]);
22078 write_phy_reg(pi, 0x1b8,
22079 pi->rssical_cache.rssical_phyregs_2G[3]);
22080 write_phy_reg(pi, 0x1a4,
22081 pi->rssical_cache.rssical_phyregs_2G[4]);
22082 write_phy_reg(pi, 0x1aa,
22083 pi->rssical_cache.rssical_phyregs_2G[5]);
22084 write_phy_reg(pi, 0x1b0,
22085 pi->rssical_cache.rssical_phyregs_2G[6]);
22086 write_phy_reg(pi, 0x1b6,
22087 pi->rssical_cache.rssical_phyregs_2G[7]);
22088 write_phy_reg(pi, 0x1a5,
22089 pi->rssical_cache.rssical_phyregs_2G[8]);
22090 write_phy_reg(pi, 0x1ab,
22091 pi->rssical_cache.rssical_phyregs_2G[9]);
22092 write_phy_reg(pi, 0x1b1,
22093 pi->rssical_cache.rssical_phyregs_2G[10]);
22094 write_phy_reg(pi, 0x1b7,
22095 pi->rssical_cache.rssical_phyregs_2G[11]);
22098 if (pi->nphy_rssical_chanspec_5G == 0)
22101 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22102 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22103 RADIO_2057_VCM_MASK,
22105 rssical_radio_regs_5G[0]);
22106 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22107 RADIO_2057_VCM_MASK,
22109 rssical_radio_regs_5G[1]);
22112 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22113 RADIO_2056_VCM_MASK,
22115 rssical_radio_regs_5G[0]);
22117 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22118 RADIO_2056_VCM_MASK,
22120 rssical_radio_regs_5G[1]);
22123 write_phy_reg(pi, 0x1a6,
22124 pi->rssical_cache.rssical_phyregs_5G[0]);
22125 write_phy_reg(pi, 0x1ac,
22126 pi->rssical_cache.rssical_phyregs_5G[1]);
22127 write_phy_reg(pi, 0x1b2,
22128 pi->rssical_cache.rssical_phyregs_5G[2]);
22129 write_phy_reg(pi, 0x1b8,
22130 pi->rssical_cache.rssical_phyregs_5G[3]);
22131 write_phy_reg(pi, 0x1a4,
22132 pi->rssical_cache.rssical_phyregs_5G[4]);
22133 write_phy_reg(pi, 0x1aa,
22134 pi->rssical_cache.rssical_phyregs_5G[5]);
22135 write_phy_reg(pi, 0x1b0,
22136 pi->rssical_cache.rssical_phyregs_5G[6]);
22137 write_phy_reg(pi, 0x1b6,
22138 pi->rssical_cache.rssical_phyregs_5G[7]);
22139 write_phy_reg(pi, 0x1a5,
22140 pi->rssical_cache.rssical_phyregs_5G[8]);
22141 write_phy_reg(pi, 0x1ab,
22142 pi->rssical_cache.rssical_phyregs_5G[9]);
22143 write_phy_reg(pi, 0x1b1,
22144 pi->rssical_cache.rssical_phyregs_5G[10]);
22145 write_phy_reg(pi, 0x1b7,
22146 pi->rssical_cache.rssical_phyregs_5G[11]);
22151 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
22154 u8 phy_bw, is_phybw40;
22155 u16 num_samps, t, spur;
22156 s32 theta = 0, rot = 0;
22158 struct cordic_iq *tone_buf = NULL;
22160 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
22161 phy_bw = (is_phybw40 == 1) ? 40 : 20;
22162 tbl_len = (phy_bw << 3);
22164 if (dac_test_mode == 1) {
22165 spur = read_phy_reg(pi, 0x01);
22166 spur = (spur >> 15) & 1;
22167 phy_bw = (spur == 1) ? 82 : 80;
22168 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
22170 tbl_len = (phy_bw << 1);
22173 tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
22174 if (tone_buf == NULL)
22177 num_samps = (u16) tbl_len;
22178 rot = ((f_kHz * 36) / phy_bw) / 100;
22181 for (t = 0; t < num_samps; t++) {
22183 tone_buf[t] = cordic_calc_iq(theta);
22187 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
22188 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
22191 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
22199 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
22200 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
22203 u16 loops = 0xffff;
22206 num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
22208 if (num_samps == 0)
22211 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22212 dac_test_mode, modify_bbmult);
22218 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
22222 u32 *data_buf = NULL;
22224 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
22225 if (data_buf == NULL)
22228 if (pi->phyhang_avoid)
22229 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22231 for (t = 0; t < num_samps; t++)
22232 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
22233 (((unsigned int)tone_buf[t].q) & 0x3ff);
22234 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
22239 if (pi->phyhang_avoid)
22240 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22244 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
22245 u16 wait, u8 iqmode, u8 dac_test_mode,
22246 bool modify_bbmult)
22249 u8 phy_bw, sample_cmd;
22250 u16 orig_RfseqCoreActv;
22251 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
22252 lpf_bw_ctl_miscreg4;
22254 if (pi->phyhang_avoid)
22255 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22258 if (CHSPEC_IS40(pi->radio_chanspec))
22261 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22263 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
22264 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
22265 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
22266 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22268 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22271 wlc_phy_rfctrl_override_nphy_rev7(
22274 wlc_phy_read_lpf_bw_ctl_nphy
22277 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22279 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
22281 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22283 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22288 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
22290 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22292 pi->nphy_bb_mult_save =
22293 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
22296 if (modify_bbmult) {
22297 bb_mult = (phy_bw == 20) ? 100 : 71;
22298 bb_mult = (bb_mult << 8) + bb_mult;
22299 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22303 if (pi->phyhang_avoid)
22304 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22306 write_phy_reg(pi, 0xc6, num_samps - 1);
22308 if (loops != 0xffff)
22309 write_phy_reg(pi, 0xc4, loops - 1);
22311 write_phy_reg(pi, 0xc4, loops);
22313 write_phy_reg(pi, 0xc5, wait);
22315 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
22316 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
22319 and_phy_reg(pi, 0xc2, 0x7FFF);
22321 or_phy_reg(pi, 0xc2, 0x8000);
22324 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
22325 write_phy_reg(pi, 0xc3, sample_cmd);
22328 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
22330 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
22333 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
22335 u16 playback_status;
22338 if (pi->phyhang_avoid)
22339 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22341 playback_status = read_phy_reg(pi, 0xc7);
22342 if (playback_status & 0x1)
22343 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
22344 else if (playback_status & 0x2)
22345 and_phy_reg(pi, 0xc2,
22346 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
22348 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
22350 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
22352 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
22353 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22356 pi->nphy_bb_mult_save = 0;
22359 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
22360 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
22361 wlc_phy_rfctrl_override_nphy_rev7(
22365 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22366 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
22370 if (pi->phyhang_avoid)
22371 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22374 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
22376 u32 *tx_pwrctrl_tbl = NULL;
22377 uint phyrev = pi->pubpi.phy_rev;
22381 wlc_phy_get_ipa_gaintbl_nphy(pi);
22383 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22384 if (NREV_IS(phyrev, 3))
22385 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
22386 else if (NREV_IS(phyrev, 4))
22388 (pi->srom_fem5g.extpagain == 3) ?
22389 nphy_tpc_5GHz_txgain_HiPwrEPA :
22390 nphy_tpc_5GHz_txgain_rev4;
22392 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
22394 if (NREV_GE(phyrev, 7)) {
22395 if (pi->pubpi.radiorev == 3)
22397 nphy_tpc_txgain_epa_2057rev3;
22398 else if (pi->pubpi.radiorev == 5)
22400 nphy_tpc_txgain_epa_2057rev5;
22402 if (NREV_GE(phyrev, 5) &&
22403 (pi->srom_fem2g.extpagain == 3))
22405 nphy_tpc_txgain_HiPwrEPA;
22408 nphy_tpc_txgain_rev3;
22412 return tx_pwrctrl_tbl;
22415 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
22417 u16 base_idx[2], curr_gain[2];
22419 struct nphy_txgains target_gain;
22420 u32 *tx_pwrctrl_tbl = NULL;
22422 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
22423 if (pi->phyhang_avoid)
22424 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22426 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
22429 if (pi->phyhang_avoid)
22430 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22432 for (core_no = 0; core_no < 2; core_no++) {
22433 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22434 target_gain.ipa[core_no] =
22435 curr_gain[core_no] & 0x0007;
22436 target_gain.pad[core_no] =
22437 ((curr_gain[core_no] & 0x00F8) >> 3);
22438 target_gain.pga[core_no] =
22439 ((curr_gain[core_no] & 0x0F00) >> 8);
22440 target_gain.txgm[core_no] =
22441 ((curr_gain[core_no] & 0x7000) >> 12);
22442 target_gain.txlpf[core_no] =
22443 ((curr_gain[core_no] & 0x8000) >> 15);
22444 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22445 target_gain.ipa[core_no] =
22446 curr_gain[core_no] & 0x000F;
22447 target_gain.pad[core_no] =
22448 ((curr_gain[core_no] & 0x00F0) >> 4);
22449 target_gain.pga[core_no] =
22450 ((curr_gain[core_no] & 0x0F00) >> 8);
22451 target_gain.txgm[core_no] =
22452 ((curr_gain[core_no] & 0x7000) >> 12);
22454 target_gain.ipa[core_no] =
22455 curr_gain[core_no] & 0x0003;
22456 target_gain.pad[core_no] =
22457 ((curr_gain[core_no] & 0x000C) >> 2);
22458 target_gain.pga[core_no] =
22459 ((curr_gain[core_no] & 0x0070) >> 4);
22460 target_gain.txgm[core_no] =
22461 ((curr_gain[core_no] & 0x0380) >> 7);
22465 uint phyrev = pi->pubpi.phy_rev;
22467 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
22468 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
22469 for (core_no = 0; core_no < 2; core_no++) {
22470 if (NREV_GE(phyrev, 3)) {
22472 brcms_phy_get_tx_pwrctrl_tbl(pi);
22473 if (NREV_GE(phyrev, 7)) {
22474 target_gain.ipa[core_no] =
22476 [base_idx[core_no]]
22478 target_gain.pad[core_no] =
22480 [base_idx[core_no]]
22482 target_gain.pga[core_no] =
22484 [base_idx[core_no]]
22486 target_gain.txgm[core_no] =
22488 [base_idx[core_no]]
22490 target_gain.txlpf[core_no] =
22492 [base_idx[core_no]]
22495 target_gain.ipa[core_no] =
22497 [base_idx[core_no]]
22499 target_gain.pad[core_no] =
22501 [base_idx[core_no]]
22503 target_gain.pga[core_no] =
22505 [base_idx[core_no]]
22507 target_gain.txgm[core_no] =
22509 [base_idx[core_no]]
22513 target_gain.ipa[core_no] =
22514 (nphy_tpc_txgain[base_idx[core_no]] >>
22516 target_gain.pad[core_no] =
22517 (nphy_tpc_txgain[base_idx[core_no]] >>
22519 target_gain.pga[core_no] =
22520 (nphy_tpc_txgain[base_idx[core_no]] >>
22522 target_gain.txgm[core_no] =
22523 (nphy_tpc_txgain[base_idx[core_no]] >>
22529 return target_gain;
22533 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
22534 struct nphy_txgains target_gain,
22535 struct nphy_iqcal_params *params)
22540 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
22542 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22543 if (NREV_GE(pi->pubpi.phy_rev, 7))
22544 params->txlpf = target_gain.txlpf[core_no];
22546 params->txgm = target_gain.txgm[core_no];
22547 params->pga = target_gain.pga[core_no];
22548 params->pad = target_gain.pad[core_no];
22549 params->ipa = target_gain.ipa[core_no];
22550 if (NREV_GE(pi->pubpi.phy_rev, 7))
22552 ((params->txlpf << 15) | (params->txgm << 12) |
22553 (params->pga << 8) |
22554 (params->pad << 3) | (params->ipa));
22557 ((params->txgm << 12) | (params->pga << 8) |
22558 (params->pad << 4) | (params->ipa));
22560 params->ncorr[0] = 0x79;
22561 params->ncorr[1] = 0x79;
22562 params->ncorr[2] = 0x79;
22563 params->ncorr[3] = 0x79;
22564 params->ncorr[4] = 0x79;
22567 gain_index = ((target_gain.pad[core_no] << 0) |
22568 (target_gain.pga[core_no] << 4) |
22569 (target_gain.txgm[core_no] << 8));
22572 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22573 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22580 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
22581 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
22582 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
22583 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
22584 (params->pad << 2));
22585 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
22586 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
22587 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
22588 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
22592 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
22594 u16 jtag_core, core;
22596 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22598 for (core = 0; core <= 1; core++) {
22600 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22601 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22604 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22605 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22608 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22609 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22612 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22613 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22616 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
22618 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22619 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22622 if (pi->pubpi.radiorev != 5)
22623 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22624 READ_RADIO_REG3(pi, RADIO_2057, TX,
22628 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22629 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
22631 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22632 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22635 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22636 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22637 TX_SSI_MASTER, 0x0a);
22638 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22639 IQCAL_VCM_HG, 0x43);
22640 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22642 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22644 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22646 if (pi->use_int_tx_iqlo_cal_nphy) {
22647 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22648 core, TX_SSI_MUX, 0x4);
22650 internal_tx_iqlo_cal_tapoff_intpa_nphy))
22651 WRITE_RADIO_REG3(pi, RADIO_2057,
22655 WRITE_RADIO_REG3(pi, RADIO_2057,
22659 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22662 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22663 TX_SSI_MASTER, 0x06);
22664 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22665 IQCAL_VCM_HG, 0x43);
22666 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22668 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22671 if (pi->pubpi.radiorev != 5)
22672 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22673 core, TSSIA, 0x00);
22674 if (pi->use_int_tx_iqlo_cal_nphy) {
22675 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22679 internal_tx_iqlo_cal_tapoff_intpa_nphy))
22680 WRITE_RADIO_REG3(pi, RADIO_2057,
22684 WRITE_RADIO_REG3(pi, RADIO_2057,
22688 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22692 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22694 for (core = 0; core <= 1; core++) {
22697 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22699 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22701 RADIO_2056_TX_TX_SSI_MASTER |
22704 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22706 RADIO_2056_TX_IQCAL_VCM_HG |
22709 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22711 RADIO_2056_TX_IQCAL_IDAC |
22714 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22717 RADIO_2056_TX_TSSI_VCM |
22720 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22722 RADIO_2056_TX_TX_AMP_DET |
22725 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22727 RADIO_2056_TX_TX_SSI_MUX |
22730 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22732 RADIO_2056_TX_TSSIA | jtag_core);
22734 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22736 RADIO_2056_TX_TSSIG | jtag_core);
22738 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22740 RADIO_2056_TX_TSSI_MISC1 |
22743 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22745 RADIO_2056_TX_TSSI_MISC2 |
22748 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22750 RADIO_2056_TX_TSSI_MISC3 |
22753 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22754 write_radio_reg(pi,
22755 RADIO_2056_TX_TX_SSI_MASTER |
22757 write_radio_reg(pi,
22758 RADIO_2056_TX_IQCAL_VCM_HG |
22760 write_radio_reg(pi,
22761 RADIO_2056_TX_IQCAL_IDAC |
22763 write_radio_reg(pi,
22764 RADIO_2056_TX_TSSI_VCM |
22766 write_radio_reg(pi,
22767 RADIO_2056_TX_TX_AMP_DET |
22773 RADIO_2056_TX_TX_SSI_MUX
22775 write_radio_reg(pi,
22776 RADIO_2056_TX_TSSIA |
22781 RADIO_2056_TX_TX_SSI_MUX
22782 | jtag_core, 0x00);
22783 write_radio_reg(pi,
22784 RADIO_2056_TX_TSSIA |
22787 write_radio_reg(pi,
22788 RADIO_2056_TX_TSSIG | jtag_core,
22790 write_radio_reg(pi,
22791 RADIO_2056_TX_TSSI_MISC1 |
22794 write_radio_reg(pi,
22795 RADIO_2056_TX_TSSI_MISC2 |
22797 write_radio_reg(pi,
22798 RADIO_2056_TX_TSSI_MISC3 |
22801 write_radio_reg(pi,
22802 RADIO_2056_TX_TX_SSI_MASTER |
22804 write_radio_reg(pi,
22805 RADIO_2056_TX_IQCAL_VCM_HG |
22807 write_radio_reg(pi,
22808 RADIO_2056_TX_IQCAL_IDAC |
22810 write_radio_reg(pi,
22811 RADIO_2056_TX_TSSI_VCM |
22813 write_radio_reg(pi,
22814 RADIO_2056_TX_TX_AMP_DET |
22816 write_radio_reg(pi,
22817 RADIO_2056_TX_TSSIA | jtag_core,
22824 RADIO_2056_TX_TX_SSI_MUX
22825 | jtag_core, 0x06);
22826 if (NREV_LT(pi->pubpi.phy_rev, 5))
22829 RADIO_2056_TX_TSSIG
22835 RADIO_2056_TX_TSSIG
22841 RADIO_2056_TX_TX_SSI_MUX
22842 | jtag_core, 0x00);
22843 write_radio_reg(pi,
22844 RADIO_2056_TX_TSSIG |
22848 write_radio_reg(pi,
22849 RADIO_2056_TX_TSSI_MISC1 |
22851 write_radio_reg(pi,
22852 RADIO_2056_TX_TSSI_MISC2 |
22854 write_radio_reg(pi,
22855 RADIO_2056_TX_TSSI_MISC3 |
22861 pi->tx_rx_cal_radio_saveregs[0] =
22862 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22863 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
22864 pi->tx_rx_cal_radio_saveregs[1] =
22865 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22866 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
22868 pi->tx_rx_cal_radio_saveregs[2] =
22869 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22870 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
22871 pi->tx_rx_cal_radio_saveregs[3] =
22872 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22873 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
22875 pi->tx_rx_cal_radio_saveregs[4] =
22876 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22877 pi->tx_rx_cal_radio_saveregs[5] =
22878 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22880 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
22883 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22884 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22887 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
22888 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
22891 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22893 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
22894 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
22897 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
22898 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
22903 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
22905 u16 jtag_core, core;
22907 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22908 for (core = 0; core <= 1; core++) {
22910 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22913 tx_rx_cal_radio_saveregs[(core * 11) +
22916 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
22918 tx_rx_cal_radio_saveregs[(core * 11) +
22921 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
22923 tx_rx_cal_radio_saveregs[(core * 11) +
22926 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
22928 tx_rx_cal_radio_saveregs[(core * 11) +
22931 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
22933 tx_rx_cal_radio_saveregs[(core * 11) +
22936 if (pi->pubpi.radiorev != 5)
22937 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22939 pi->tx_rx_cal_radio_saveregs
22940 [(core * 11) + 6]);
22942 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
22944 tx_rx_cal_radio_saveregs[(core * 11) +
22947 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
22949 tx_rx_cal_radio_saveregs[(core * 11) +
22952 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22953 for (core = 0; core <= 1; core++) {
22954 jtag_core = (core == PHY_CORE_0) ?
22955 RADIO_2056_TX0 : RADIO_2056_TX1;
22957 write_radio_reg(pi,
22958 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
22960 tx_rx_cal_radio_saveregs[(core * 11) +
22963 write_radio_reg(pi,
22964 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
22966 tx_rx_cal_radio_saveregs[(core * 11) +
22969 write_radio_reg(pi,
22970 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
22972 tx_rx_cal_radio_saveregs[(core * 11) +
22975 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
22977 tx_rx_cal_radio_saveregs[(core * 11) +
22980 write_radio_reg(pi,
22981 RADIO_2056_TX_TX_AMP_DET | jtag_core,
22983 tx_rx_cal_radio_saveregs[(core * 11) +
22986 write_radio_reg(pi,
22987 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
22989 tx_rx_cal_radio_saveregs[(core * 11) +
22992 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
22994 tx_rx_cal_radio_saveregs[(core * 11) +
22997 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
22999 tx_rx_cal_radio_saveregs[(core * 11) +
23002 write_radio_reg(pi,
23003 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23005 tx_rx_cal_radio_saveregs[(core * 11) +
23008 write_radio_reg(pi,
23009 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23011 tx_rx_cal_radio_saveregs[(core * 11) +
23014 write_radio_reg(pi,
23015 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23017 tx_rx_cal_radio_saveregs[(core * 11) +
23022 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23023 pi->tx_rx_cal_radio_saveregs[0]);
23024 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23025 pi->tx_rx_cal_radio_saveregs[1]);
23026 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23027 pi->tx_rx_cal_radio_saveregs[2]);
23028 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23029 pi->tx_rx_cal_radio_saveregs[3]);
23030 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23031 pi->tx_rx_cal_radio_saveregs[4]);
23032 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23033 pi->tx_rx_cal_radio_saveregs[5]);
23037 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
23041 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23042 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23043 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23045 mask = ((0x3 << 8) | (0x3 << 10));
23047 val |= (0x2 << 10);
23048 mod_phy_reg(pi, 0xa6, mask, val);
23049 mod_phy_reg(pi, 0xa7, mask, val);
23051 val = read_phy_reg(pi, 0x8f);
23052 pi->tx_rx_cal_phy_saveregs[2] = val;
23053 val |= ((0x1 << 9) | (0x1 << 10));
23054 write_phy_reg(pi, 0x8f, val);
23056 val = read_phy_reg(pi, 0xa5);
23057 pi->tx_rx_cal_phy_saveregs[3] = val;
23058 val |= ((0x1 << 9) | (0x1 << 10));
23059 write_phy_reg(pi, 0xa5, val);
23061 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23062 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23064 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23066 pi->tx_rx_cal_phy_saveregs[5] = val;
23068 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23071 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23073 pi->tx_rx_cal_phy_saveregs[6] = val;
23075 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23078 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23079 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23081 if (!(pi->use_int_tx_iqlo_cal_nphy))
23082 wlc_phy_rfctrlintc_override_nphy(
23084 NPHY_RfctrlIntc_override_PA,
23086 RADIO_MIMO_CORESEL_CORE1
23088 RADIO_MIMO_CORESEL_CORE2);
23090 wlc_phy_rfctrlintc_override_nphy(
23092 NPHY_RfctrlIntc_override_PA,
23094 RADIO_MIMO_CORESEL_CORE1
23096 RADIO_MIMO_CORESEL_CORE2);
23098 wlc_phy_rfctrlintc_override_nphy(pi,
23099 NPHY_RfctrlIntc_override_TRSW,
23100 0x2, RADIO_MIMO_CORESEL_CORE1);
23101 wlc_phy_rfctrlintc_override_nphy(pi,
23102 NPHY_RfctrlIntc_override_TRSW,
23103 0x8, RADIO_MIMO_CORESEL_CORE2);
23105 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23106 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23107 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23108 0x29b, (0x1 << 0), (0) << 0);
23110 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23111 0x29b, (0x1 << 0), (0) << 0);
23113 if (NREV_IS(pi->pubpi.phy_rev, 7)
23114 || NREV_GE(pi->pubpi.phy_rev, 8))
23115 wlc_phy_rfctrl_override_nphy_rev7(
23117 wlc_phy_read_lpf_bw_ctl_nphy
23120 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23122 if (pi->use_int_tx_iqlo_cal_nphy
23123 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23125 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23127 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23130 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23133 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23137 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23142 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23146 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23149 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23150 wlc_phy_rfctrl_override_nphy_rev7(
23154 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23158 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23159 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23161 mask = ((0x3 << 12) | (0x3 << 14));
23163 val |= (0x2 << 14);
23164 mod_phy_reg(pi, 0xa6, mask, val);
23165 mod_phy_reg(pi, 0xa7, mask, val);
23167 val = read_phy_reg(pi, 0xa5);
23168 pi->tx_rx_cal_phy_saveregs[2] = val;
23169 val |= ((0x1 << 12) | (0x1 << 13));
23170 write_phy_reg(pi, 0xa5, val);
23172 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23174 pi->tx_rx_cal_phy_saveregs[3] = val;
23176 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23179 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23181 pi->tx_rx_cal_phy_saveregs[4] = val;
23183 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23186 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23187 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23188 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23189 write_phy_reg(pi, 0x91, val);
23190 write_phy_reg(pi, 0x92, val);
23194 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
23198 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23199 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23200 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23201 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23202 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23203 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23205 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23206 &pi->tx_rx_cal_phy_saveregs[5]);
23207 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23208 &pi->tx_rx_cal_phy_saveregs[6]);
23210 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23211 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23213 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23214 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23216 if (NREV_IS(pi->pubpi.phy_rev, 7)
23217 || NREV_GE(pi->pubpi.phy_rev, 8))
23218 wlc_phy_rfctrl_override_nphy_rev7(
23219 pi, (0x1 << 7), 0, 0,
23221 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23223 wlc_phy_resetcca_nphy(pi);
23225 if (pi->use_int_tx_iqlo_cal_nphy
23226 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23228 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23229 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23232 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23236 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23241 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23245 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23249 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23251 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23252 wlc_phy_rfctrl_override_nphy_rev7(
23256 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23260 mask = ((0x3 << 12) | (0x3 << 14));
23261 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23262 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23263 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23265 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23266 &pi->tx_rx_cal_phy_saveregs[3]);
23268 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23269 &pi->tx_rx_cal_phy_saveregs[4]);
23271 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23272 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23276 #define NPHY_CAL_TSSISAMPS 64
23277 #define NPHY_TEST_TONE_FREQ_40MHz 4000
23278 #define NPHY_TEST_TONE_FREQ_20MHz 2500
23281 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
23284 s32 temp, pwrindex[2];
23290 tssi_reg = read_phy_reg(pi, 0x1e9);
23292 temp = (s32) (tssi_reg & 0x3f);
23293 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23295 temp = (s32) ((tssi_reg >> 8) & 0x3f);
23296 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23299 CHSPEC_IS5G(pi->radio_chanspec) ?
23300 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
23302 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23304 tssival[0] = rssi_buf[0] / ((s32) num_samps);
23305 tssival[1] = rssi_buf[2] / ((s32) num_samps);
23307 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23308 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23310 if (pwrindex[0] < 0)
23312 else if (pwrindex[0] > 63)
23315 if (pwrindex[1] < 0)
23317 else if (pwrindex[1] > 63)
23320 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
23321 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
23322 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
23323 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
23326 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
23330 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23331 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
23332 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23333 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
23335 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23338 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23339 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23340 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23342 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23343 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23346 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23350 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
23352 bool save_bbmult = false;
23353 u8 txcal_index_2057_rev5n7 = 0;
23354 u8 txcal_index_2057_rev3n4n6 = 10;
23356 if (pi->use_int_tx_iqlo_cal_nphy) {
23357 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23358 if ((pi->pubpi.radiorev == 3) ||
23359 (pi->pubpi.radiorev == 4) ||
23360 (pi->pubpi.radiorev == 6)) {
23362 pi->nphy_txcal_pwr_idx[0] =
23363 txcal_index_2057_rev3n4n6;
23364 pi->nphy_txcal_pwr_idx[1] =
23365 txcal_index_2057_rev3n4n6;
23366 wlc_phy_txpwr_index_nphy(
23368 txcal_index_2057_rev3n4n6,
23372 pi->nphy_txcal_pwr_idx[0] =
23373 txcal_index_2057_rev5n7;
23374 pi->nphy_txcal_pwr_idx[1] =
23375 txcal_index_2057_rev5n7;
23376 wlc_phy_txpwr_index_nphy(
23378 txcal_index_2057_rev5n7,
23381 save_bbmult = true;
23383 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23384 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
23385 if (pi->sh->hw_phytxchain != 3) {
23386 pi->nphy_txcal_pwr_idx[1] =
23387 pi->nphy_txcal_pwr_idx[0];
23388 wlc_phy_txpwr_index_nphy(pi, 3,
23390 nphy_txcal_pwr_idx[0],
23392 save_bbmult = true;
23395 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23397 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23398 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23401 pi->nphy_txcal_pwr_idx[0] = 80;
23402 pi->nphy_txcal_pwr_idx[1] = 80;
23403 wlc_phy_txpwr_index_nphy(pi, 3, 80,
23405 save_bbmult = true;
23408 wlc_phy_internal_cal_txgain_nphy(pi);
23409 save_bbmult = true;
23412 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23414 if (CHSPEC_IS2G(pi->radio_chanspec))
23415 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23418 wlc_phy_cal_txgainctrl_nphy(pi, 14,
23421 wlc_phy_internal_cal_txgain_nphy(pi);
23422 save_bbmult = true;
23427 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
23431 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23432 &pi->nphy_txcal_bbmult);
23436 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
23439 int gainctrl_loopidx;
23441 u16 m0m1, curr_m0m1;
23446 u16 phy_saveregs[4];
23448 u16 ampl_test = 250;
23450 bool phyhang_avoid_state = false;
23452 if (NREV_GE(pi->pubpi.phy_rev, 7))
23457 if (CHSPEC_IS40(pi->radio_chanspec))
23462 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23463 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
23465 if (pi->phyhang_avoid)
23466 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23468 phyhang_avoid_state = pi->phyhang_avoid;
23469 pi->phyhang_avoid = false;
23471 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23472 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23473 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23474 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23475 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23476 RADIO_MIMO_CORESEL_CORE1 |
23477 RADIO_MIMO_CORESEL_CORE2);
23480 wlc_phy_rfctrlintc_override_nphy(pi,
23481 NPHY_RfctrlIntc_override_TRSW,
23482 0x2, RADIO_MIMO_CORESEL_CORE1);
23483 wlc_phy_rfctrlintc_override_nphy(pi,
23484 NPHY_RfctrlIntc_override_TRSW,
23485 0x8, RADIO_MIMO_CORESEL_CORE2);
23487 wlc_phy_rfctrlintc_override_nphy(pi,
23488 NPHY_RfctrlIntc_override_TRSW,
23489 0x1, RADIO_MIMO_CORESEL_CORE1);
23490 wlc_phy_rfctrlintc_override_nphy(pi,
23491 NPHY_RfctrlIntc_override_TRSW,
23492 0x7, RADIO_MIMO_CORESEL_CORE2);
23495 orig_BBConfig = read_phy_reg(pi, 0x01);
23496 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23498 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23500 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
23501 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
23503 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23504 gainctrl_loopidx++) {
23505 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23508 if (core == PHY_CORE_0)
23509 curr_m0m1 = m0m1 & 0xff00;
23511 curr_m0m1 = m0m1 & 0x00ff;
23513 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23514 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23518 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23519 NPHY_CAL_TSSISAMPS);
23521 pi->nphy_bb_mult_save = 0;
23522 wlc_phy_stopplayback_nphy(pi);
23524 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23526 txpwrindex -= stepsize * delta_power;
23527 if (txpwrindex < 0)
23529 else if (txpwrindex > 127)
23532 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23533 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23534 (pi->srom_fem5g.extpagain == 3)) {
23535 if (txpwrindex < 30)
23539 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23540 (pi->srom_fem2g.extpagain == 3)) {
23541 if (txpwrindex < 50)
23546 wlc_phy_txpwr_index_nphy(pi, (1 << core),
23547 (u8) txpwrindex, true);
23550 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
23556 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23558 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23561 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23562 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23566 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23567 NPHY_CAL_TSSISAMPS);
23569 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23573 pi->nphy_bb_mult_save = 0;
23574 wlc_phy_stopplayback_nphy(pi);
23578 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
23579 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
23581 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23583 write_phy_reg(pi, 0x01, orig_BBConfig);
23585 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23586 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23587 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23588 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23590 pi->phyhang_avoid = phyhang_avoid_state;
23592 if (pi->phyhang_avoid)
23593 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23596 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
23603 struct nphy_txiqcal_ladder ladder_lo[] = {
23604 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23605 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23606 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23609 struct nphy_txiqcal_ladder ladder_iq[] = {
23610 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23611 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23612 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23615 bbmult = (core == PHY_CORE_0) ?
23616 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
23617 (pi->nphy_txcal_bbmult & 0xff);
23619 for (index = 0; index < 18; index++) {
23620 bbmult_scale = ladder_lo[index].percent * bbmult;
23621 bbmult_scale /= 100;
23624 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23625 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23628 bbmult_scale = ladder_iq[index].percent * bbmult;
23629 bbmult_scale /= 100;
23632 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23633 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23638 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
23640 struct nphy_txgains target_gain;
23641 u8 tx_pwr_ctrl_state;
23642 bool fullcal = true;
23643 bool restore_tx_gain = false;
23649 if (caltype == PHY_PERICAL_AUTO)
23650 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23651 else if (caltype == PHY_PERICAL_PARTIAL)
23654 if (pi->cal_type_override != PHY_PERICAL_AUTO)
23656 (pi->cal_type_override ==
23657 PHY_PERICAL_FULL) ? true : false;
23659 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23660 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23661 wlc_phy_cal_perical_mphase_restart(pi);
23664 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
23665 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23667 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23669 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
23671 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23672 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23673 pi->nphy_cal_orig_pwr_idx[0] =
23674 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
23675 pi->nphy_cal_orig_pwr_idx[1] =
23676 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
23678 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23679 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23681 pi->nphy_cal_orig_tx_gain);
23683 pi->nphy_cal_orig_tx_gain[0] = 0;
23684 pi->nphy_cal_orig_tx_gain[1] = 0;
23687 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23688 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23689 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23691 if (pi->antsel_type == ANTSEL_2x3)
23692 wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
23694 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23697 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23698 wlc_phy_precal_txgain_nphy(pi);
23699 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23700 restore_tx_gain = true;
23702 target_gain = pi->nphy_cal_target_gain;
23705 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
23708 wlc_phy_a4(pi, true);
23710 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
23711 wlapi_enable_mac(pi->sh->physhim);
23712 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23714 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23715 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
23717 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
23718 (pi->first_cal_after_assoc ||
23719 (pi->cal_type_override ==
23720 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
23721 wlc_phy_savecal_nphy(pi);
23723 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23725 pi->nphy_perical_last = pi->sh->now;
23728 if (caltype != PHY_PERICAL_AUTO)
23729 wlc_phy_rssi_cal_nphy(pi);
23731 if (pi->first_cal_after_assoc
23732 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
23733 pi->first_cal_after_assoc = false;
23734 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23735 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23738 if (NREV_GE(pi->pubpi.phy_rev, 3))
23739 wlc_phy_radio205x_vcocal_nphy(pi);
23741 switch (pi->mphase_cal_phase_id) {
23742 case MPHASE_CAL_STATE_INIT:
23743 pi->nphy_perical_last = pi->sh->now;
23744 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23746 if (NREV_GE(pi->pubpi.phy_rev, 3))
23747 wlc_phy_precal_txgain_nphy(pi);
23749 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23750 pi->mphase_cal_phase_id++;
23753 case MPHASE_CAL_STATE_TXPHASE0:
23754 case MPHASE_CAL_STATE_TXPHASE1:
23755 case MPHASE_CAL_STATE_TXPHASE2:
23756 case MPHASE_CAL_STATE_TXPHASE3:
23757 case MPHASE_CAL_STATE_TXPHASE4:
23758 case MPHASE_CAL_STATE_TXPHASE5:
23759 if ((pi->radar_percal_mask & 0x10) != 0)
23760 pi->nphy_rxcal_active = true;
23762 if (wlc_phy_cal_txiqlo_nphy
23763 (pi, pi->nphy_cal_target_gain, fullcal,
23766 wlc_phy_cal_perical_mphase_reset(pi);
23770 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23771 (pi->mphase_cal_phase_id ==
23772 MPHASE_CAL_STATE_TXPHASE4))
23773 pi->mphase_cal_phase_id += 2;
23775 pi->mphase_cal_phase_id++;
23778 case MPHASE_CAL_STATE_PAPDCAL:
23779 if ((pi->radar_percal_mask & 0x2) != 0)
23780 pi->nphy_rxcal_active = true;
23783 wlc_phy_a4(pi, true);
23785 pi->mphase_cal_phase_id++;
23788 case MPHASE_CAL_STATE_RXCAL:
23789 if ((pi->radar_percal_mask & 0x1) != 0)
23790 pi->nphy_rxcal_active = true;
23791 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
23792 (pi->first_cal_after_assoc ||
23793 (pi->cal_type_override ==
23794 PHY_PERICAL_FULL)) ? 2 : 0,
23796 wlc_phy_savecal_nphy(pi);
23798 pi->mphase_cal_phase_id++;
23801 case MPHASE_CAL_STATE_RSSICAL:
23802 if ((pi->radar_percal_mask & 0x4) != 0)
23803 pi->nphy_rxcal_active = true;
23804 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23805 wlc_phy_rssi_cal_nphy(pi);
23807 if (NREV_GE(pi->pubpi.phy_rev, 3))
23808 wlc_phy_radio205x_vcocal_nphy(pi);
23810 restore_tx_gain = true;
23812 if (pi->first_cal_after_assoc)
23813 pi->mphase_cal_phase_id++;
23815 wlc_phy_cal_perical_mphase_reset(pi);
23819 case MPHASE_CAL_STATE_IDLETSSI:
23820 if ((pi->radar_percal_mask & 0x8) != 0)
23821 pi->nphy_rxcal_active = true;
23823 if (pi->first_cal_after_assoc) {
23824 pi->first_cal_after_assoc = false;
23825 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23826 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23829 wlc_phy_cal_perical_mphase_reset(pi);
23833 wlc_phy_cal_perical_mphase_reset(pi);
23838 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23839 if (restore_tx_gain) {
23840 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
23842 wlc_phy_txpwr_index_nphy(pi, 1,
23844 nphy_cal_orig_pwr_idx
23846 wlc_phy_txpwr_index_nphy(pi, 2,
23848 nphy_cal_orig_pwr_idx
23851 pi->nphy_txpwrindex[0].index = -1;
23852 pi->nphy_txpwrindex[1].index = -1;
23854 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
23860 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
23870 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
23871 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
23872 wlapi_enable_mac(pi->sh->physhim);
23876 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
23877 bool fullcal, bool mphase)
23883 u8 num_cals, max_cal_cmds;
23884 u16 core_no, cal_type;
23891 struct nphy_iqcal_params cal_params[2];
23894 bool ladder_updated[2];
23895 u8 mphase_cal_lastphase = 0;
23897 bool phyhang_avoid_state = false;
23899 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
23900 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
23902 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
23906 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
23907 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
23909 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
23913 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
23914 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
23916 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
23920 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
23921 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
23923 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
23927 u16 tbl_tx_iqlo_cal_startcoefs[] = {
23928 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
23932 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
23933 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
23934 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
23937 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
23938 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
23939 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
23942 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
23943 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
23944 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
23948 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
23949 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
23950 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
23953 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
23954 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
23955 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
23958 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23960 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
23961 phyhang_avoid_state = pi->phyhang_avoid;
23962 pi->phyhang_avoid = false;
23965 if (CHSPEC_IS40(pi->radio_chanspec))
23970 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
23972 for (core_no = 0; core_no <= 1; core_no++) {
23973 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
23974 &cal_params[core_no]);
23975 cal_gain[core_no] = cal_params[core_no].cal_gain;
23978 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
23980 wlc_phy_txcal_radio_setup_nphy(pi);
23982 wlc_phy_txcal_physetup_nphy(pi);
23984 ladder_updated[0] = ladder_updated[1] = false;
23985 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
23986 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
23987 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
23989 if (phy_bw == 40) {
23990 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
23991 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
23993 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
23994 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
23996 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
23999 if (phy_bw == 40) {
24000 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
24001 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
24003 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
24004 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
24006 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24010 if (NREV_GE(pi->pubpi.phy_rev, 7))
24011 write_phy_reg(pi, 0xc2, 0x8ad9);
24013 write_phy_reg(pi, 0xc2, 0x8aa9);
24016 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24018 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24019 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
24023 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
24027 if (bcmerror == 0) {
24029 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24030 tbl_ptr = pi->mphase_txcal_bestcoeffs;
24031 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
24032 if (NREV_LT(pi->pubpi.phy_rev, 3))
24035 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24037 tbl_ptr = pi->nphy_txiqlocal_bestc;
24038 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
24039 if (NREV_LT(pi->pubpi.phy_rev, 3))
24045 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24047 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24048 tbl_len = ARRAY_SIZE(
24049 tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24051 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24052 tbl_len = ARRAY_SIZE(
24053 tbl_tx_iqlo_cal_startcoefs);
24057 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24061 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24063 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24064 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
24066 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24068 tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24069 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
24073 cal_cnt = pi->mphase_txcal_cmdidx;
24074 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
24075 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24077 num_cals = max_cal_cmds;
24080 num_cals = max_cal_cmds;
24083 for (; cal_cnt < num_cals; cal_cnt++) {
24086 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24087 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24089 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24091 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24092 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
24094 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24097 core_no = ((cal_cmd & 0x3000) >> 12);
24098 cal_type = ((cal_cmd & 0x0F00) >> 8);
24100 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24101 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24103 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24104 if (!ladder_updated[core_no]) {
24105 wlc_phy_update_txcal_ladder_nphy(
24108 ladder_updated[core_no] = true;
24113 (cal_params[core_no].
24114 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24115 write_phy_reg(pi, 0xc1, val);
24117 if ((cal_type == 1) || (cal_type == 3)
24118 || (cal_type == 4)) {
24120 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24121 1, 69 + core_no, 16,
24124 diq_start = tbl_buf[0];
24127 wlc_phy_table_write_nphy(pi,
24128 NPHY_TBL_ID_IQLOCAL, 1,
24133 write_phy_reg(pi, 0xc0, cal_cmd);
24135 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24137 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
24138 "HW error: txiq calib"))
24141 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24142 tbl_len, 96, 16, tbl_buf);
24143 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24144 tbl_len, 64, 16, tbl_buf);
24146 if ((cal_type == 1) || (cal_type == 3)
24147 || (cal_type == 4)) {
24149 tbl_buf[0] = diq_start;
24156 pi->mphase_txcal_cmdidx = num_cals;
24157 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24158 pi->mphase_txcal_cmdidx = 0;
24161 mphase_cal_lastphase =
24162 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24163 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24166 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24168 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24170 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24173 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24181 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24184 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24186 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24189 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24192 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
24193 if (NREV_LT(pi->pubpi.phy_rev, 3))
24196 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24198 pi->nphy_txiqlocal_bestc);
24200 pi->nphy_txiqlocal_coeffsvalid = true;
24201 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24203 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
24204 if (NREV_LT(pi->pubpi.phy_rev, 3))
24207 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24209 pi->mphase_txcal_bestcoeffs);
24212 wlc_phy_stopplayback_nphy(pi);
24214 write_phy_reg(pi, 0xc2, 0x0000);
24218 wlc_phy_txcal_phycleanup_nphy(pi);
24220 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24223 wlc_phy_txcal_radio_cleanup_nphy(pi);
24225 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24227 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24228 wlc_phy_tx_iq_war_nphy(pi);
24231 if (NREV_GE(pi->pubpi.phy_rev, 4))
24232 pi->phyhang_avoid = phyhang_avoid_state;
24234 wlc_phy_stay_in_carriersearch_nphy(pi, false);
24239 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
24243 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24244 (pi->nphy_txiqlocal_coeffsvalid)) {
24245 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24246 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
24248 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24249 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24250 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24251 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24253 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24254 16, pi->nphy_txiqlocal_bestc);
24260 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24263 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24265 &pi->nphy_txiqlocal_bestc[5]);
24267 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24269 &pi->nphy_txiqlocal_bestc[5]);
24274 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
24276 struct nphy_iq_comp tx_comp;
24278 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
24280 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24281 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24282 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24283 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24287 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
24288 struct nphy_iq_comp *pcomp)
24291 write_phy_reg(pi, 0x9a, pcomp->a0);
24292 write_phy_reg(pi, 0x9b, pcomp->b0);
24293 write_phy_reg(pi, 0x9c, pcomp->a1);
24294 write_phy_reg(pi, 0x9d, pcomp->b1);
24296 pcomp->a0 = read_phy_reg(pi, 0x9a);
24297 pcomp->b0 = read_phy_reg(pi, 0x9b);
24298 pcomp->a1 = read_phy_reg(pi, 0x9c);
24299 pcomp->b1 = read_phy_reg(pi, 0x9d);
24304 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
24305 u16 num_samps, u8 wait_time, u8 wait_for_crs)
24309 write_phy_reg(pi, 0x12b, num_samps);
24310 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24311 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24312 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24314 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24316 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24318 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
24319 "HW error: rxiq est"))
24322 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24323 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24326 NPHY_IqestipwrAccHi(core)) << 16)
24327 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24330 NPHY_IqestqpwrAccHi(core)) << 16)
24331 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24332 est[core].iq_prod =
24334 NPHY_IqestIqAccHi(core)) << 16) |
24335 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24340 #define CAL_RETRY_CNT 2
24341 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
24344 struct phy_iq_est est[PHY_CORE_MAX];
24345 struct nphy_iq_comp old_comp, new_comp;
24347 u32 ii = 0, qq = 0;
24348 s16 iq_nbits, qq_nbits, brsh, arsh;
24351 uint cal_retry = 0;
24353 if (core_mask == 0x0)
24356 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24357 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24358 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24361 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24363 new_comp = old_comp;
24365 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24367 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24368 iq = est[curr_core].iq_prod;
24369 ii = est[curr_core].i_pwr;
24370 qq = est[curr_core].q_pwr;
24371 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24372 iq = est[curr_core].iq_prod;
24373 ii = est[curr_core].i_pwr;
24374 qq = est[curr_core].q_pwr;
24379 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24384 iq_nbits = wlc_phy_nbits(iq);
24385 qq_nbits = wlc_phy_nbits(qq);
24387 arsh = 10 - (30 - iq_nbits);
24389 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
24390 temp = (s32) (ii >> arsh);
24396 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
24397 temp = (s32) (ii << -arsh);
24406 brsh = qq_nbits - 31 + 20;
24408 b = (qq << (31 - qq_nbits));
24409 temp = (s32) (ii >> brsh);
24415 b = (qq << (31 - qq_nbits));
24416 temp = (s32) (ii << -brsh);
24424 b = (s32) int_sqrt((unsigned long) b);
24427 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24428 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24429 new_comp.a0 = (s16) a & 0x3ff;
24430 new_comp.b0 = (s16) b & 0x3ff;
24433 new_comp.a0 = (s16) b & 0x3ff;
24434 new_comp.b0 = (s16) a & 0x3ff;
24437 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24438 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24439 new_comp.a1 = (s16) a & 0x3ff;
24440 new_comp.b1 = (s16) b & 0x3ff;
24443 new_comp.a1 = (s16) b & 0x3ff;
24444 new_comp.b1 = (s16) a & 0x3ff;
24449 if (bcmerror != 0) {
24450 printk(KERN_DEBUG "%s: Failed, cnt = %d\n", __func__,
24453 if (cal_retry < CAL_RETRY_CNT) {
24458 new_comp = old_comp;
24461 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24464 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
24470 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24471 if (rx_core == PHY_CORE_0) {
24472 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24473 pi->tx_rx_cal_radio_saveregs[0] =
24475 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24476 pi->tx_rx_cal_radio_saveregs[1] =
24478 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24480 write_radio_reg(pi,
24481 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24483 write_radio_reg(pi,
24484 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24488 pi->tx_rx_cal_radio_saveregs[0] =
24490 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24491 pi->tx_rx_cal_radio_saveregs[1] =
24493 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24497 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24501 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24506 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24507 pi->tx_rx_cal_radio_saveregs[0] =
24509 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24510 pi->tx_rx_cal_radio_saveregs[1] =
24512 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24516 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24520 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24524 pi->tx_rx_cal_radio_saveregs[0] =
24526 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24527 pi->tx_rx_cal_radio_saveregs[1] =
24529 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24531 write_radio_reg(pi,
24532 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24534 write_radio_reg(pi,
24535 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24541 if (rx_core == PHY_CORE_0) {
24542 pi->tx_rx_cal_radio_saveregs[0] =
24544 RADIO_2056_TX_RXIQCAL_TXMUX |
24546 pi->tx_rx_cal_radio_saveregs[1] =
24548 RADIO_2056_RX_RXIQCAL_RXMUX |
24551 if (pi->pubpi.radiorev >= 5) {
24552 pi->tx_rx_cal_radio_saveregs[2] =
24554 RADIO_2056_RX_RXSPARE2 |
24556 pi->tx_rx_cal_radio_saveregs[3] =
24558 RADIO_2056_TX_TXSPARE2 |
24562 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24564 if (pi->pubpi.radiorev >= 5) {
24565 pi->tx_rx_cal_radio_saveregs[4] =
24567 RADIO_2056_RX_LNAA_MASTER
24572 RADIO_2056_RX_LNAA_MASTER
24573 | RADIO_2056_RX0, 0x40);
24575 write_radio_reg(pi,
24576 RADIO_2056_TX_TXSPARE2 |
24577 RADIO_2056_TX1, bias_a);
24579 write_radio_reg(pi,
24580 RADIO_2056_RX_RXSPARE2 |
24581 RADIO_2056_RX0, bias_a);
24583 pi->tx_rx_cal_radio_saveregs[4] =
24585 RADIO_2056_RX_LNAA_TUNE
24589 (pi->tx_rx_cal_radio_saveregs
24592 (offtune_val <= 0x7) ? 0xF : 0;
24595 RADIO_2056_RX_LNAA_TUNE |
24596 RADIO_2056_RX0, 0xF0,
24597 (offtune_val << 8));
24600 write_radio_reg(pi,
24601 RADIO_2056_TX_RXIQCAL_TXMUX |
24602 RADIO_2056_TX1, 0x9);
24603 write_radio_reg(pi,
24604 RADIO_2056_RX_RXIQCAL_RXMUX |
24605 RADIO_2056_RX0, 0x9);
24607 if (pi->pubpi.radiorev >= 5) {
24608 pi->tx_rx_cal_radio_saveregs[4] =
24611 RADIO_2056_RX_LNAG_MASTER
24616 RADIO_2056_RX_LNAG_MASTER
24617 | RADIO_2056_RX0, 0x40);
24621 RADIO_2056_TX_TXSPARE2
24623 RADIO_2056_TX1, bias_g);
24627 RADIO_2056_RX_RXSPARE2
24629 RADIO_2056_RX0, bias_g);
24632 pi->tx_rx_cal_radio_saveregs[4] =
24635 RADIO_2056_RX_LNAG_TUNE
24640 tx_rx_cal_radio_saveregs[2] &
24643 (offtune_val <= 0x7) ? 0xF : 0;
24646 RADIO_2056_RX_LNAG_TUNE |
24647 RADIO_2056_RX0, 0xF0,
24648 (offtune_val << 8));
24651 write_radio_reg(pi,
24652 RADIO_2056_TX_RXIQCAL_TXMUX |
24653 RADIO_2056_TX1, 0x6);
24654 write_radio_reg(pi,
24655 RADIO_2056_RX_RXIQCAL_RXMUX |
24656 RADIO_2056_RX0, 0x6);
24660 pi->tx_rx_cal_radio_saveregs[0] =
24662 RADIO_2056_TX_RXIQCAL_TXMUX |
24664 pi->tx_rx_cal_radio_saveregs[1] =
24666 RADIO_2056_RX_RXIQCAL_RXMUX |
24669 if (pi->pubpi.radiorev >= 5) {
24670 pi->tx_rx_cal_radio_saveregs[2] =
24672 RADIO_2056_RX_RXSPARE2 |
24674 pi->tx_rx_cal_radio_saveregs[3] =
24676 RADIO_2056_TX_TXSPARE2 |
24680 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24682 if (pi->pubpi.radiorev >= 5) {
24683 pi->tx_rx_cal_radio_saveregs[4] =
24686 RADIO_2056_RX_LNAA_MASTER
24691 RADIO_2056_RX_LNAA_MASTER |
24692 RADIO_2056_RX1, 0x40);
24696 RADIO_2056_TX_TXSPARE2
24698 RADIO_2056_TX0, bias_a);
24702 RADIO_2056_RX_RXSPARE2
24704 RADIO_2056_RX1, bias_a);
24706 pi->tx_rx_cal_radio_saveregs[4] =
24709 RADIO_2056_RX_LNAA_TUNE
24714 tx_rx_cal_radio_saveregs[2] &
24717 (offtune_val <= 0x7) ? 0xF : 0;
24720 RADIO_2056_RX_LNAA_TUNE |
24721 RADIO_2056_RX1, 0xF0,
24722 (offtune_val << 8));
24725 write_radio_reg(pi,
24726 RADIO_2056_TX_RXIQCAL_TXMUX |
24727 RADIO_2056_TX0, 0x9);
24728 write_radio_reg(pi,
24729 RADIO_2056_RX_RXIQCAL_RXMUX |
24730 RADIO_2056_RX1, 0x9);
24732 if (pi->pubpi.radiorev >= 5) {
24733 pi->tx_rx_cal_radio_saveregs[4] =
24736 RADIO_2056_RX_LNAG_MASTER
24741 RADIO_2056_RX_LNAG_MASTER
24742 | RADIO_2056_RX1, 0x40);
24746 RADIO_2056_TX_TXSPARE2
24748 RADIO_2056_TX0, bias_g);
24752 RADIO_2056_RX_RXSPARE2
24754 RADIO_2056_RX1, bias_g);
24756 pi->tx_rx_cal_radio_saveregs[4] =
24759 RADIO_2056_RX_LNAG_TUNE
24764 tx_rx_cal_radio_saveregs[2] &
24767 (offtune_val <= 0x7) ? 0xF : 0;
24770 RADIO_2056_RX_LNAG_TUNE |
24771 RADIO_2056_RX1, 0xF0,
24772 (offtune_val << 8));
24775 write_radio_reg(pi,
24776 RADIO_2056_TX_RXIQCAL_TXMUX |
24777 RADIO_2056_TX0, 0x6);
24778 write_radio_reg(pi,
24779 RADIO_2056_RX_RXIQCAL_RXMUX |
24780 RADIO_2056_RX1, 0x6);
24786 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
24788 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24789 if (rx_core == PHY_CORE_0) {
24790 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24793 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24795 tx_rx_cal_radio_saveregs[0]);
24798 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24800 tx_rx_cal_radio_saveregs[1]);
24805 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24807 tx_rx_cal_radio_saveregs[0]);
24810 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24812 tx_rx_cal_radio_saveregs[1]);
24816 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24819 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24821 tx_rx_cal_radio_saveregs[0]);
24824 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24826 tx_rx_cal_radio_saveregs[1]);
24831 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24833 tx_rx_cal_radio_saveregs[0]);
24836 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24838 tx_rx_cal_radio_saveregs[1]);
24843 if (rx_core == PHY_CORE_0) {
24844 write_radio_reg(pi,
24845 RADIO_2056_TX_RXIQCAL_TXMUX |
24847 pi->tx_rx_cal_radio_saveregs[0]);
24849 write_radio_reg(pi,
24850 RADIO_2056_RX_RXIQCAL_RXMUX |
24852 pi->tx_rx_cal_radio_saveregs[1]);
24854 if (pi->pubpi.radiorev >= 5) {
24855 write_radio_reg(pi,
24856 RADIO_2056_RX_RXSPARE2 |
24859 tx_rx_cal_radio_saveregs[2]);
24861 write_radio_reg(pi,
24862 RADIO_2056_TX_TXSPARE2 |
24865 tx_rx_cal_radio_saveregs[3]);
24868 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24869 if (pi->pubpi.radiorev >= 5)
24872 RADIO_2056_RX_LNAA_MASTER
24875 tx_rx_cal_radio_saveregs
24880 RADIO_2056_RX_LNAA_TUNE
24883 tx_rx_cal_radio_saveregs
24886 if (pi->pubpi.radiorev >= 5)
24889 RADIO_2056_RX_LNAG_MASTER
24892 tx_rx_cal_radio_saveregs
24897 RADIO_2056_RX_LNAG_TUNE
24900 tx_rx_cal_radio_saveregs
24905 write_radio_reg(pi,
24906 RADIO_2056_TX_RXIQCAL_TXMUX |
24908 pi->tx_rx_cal_radio_saveregs[0]);
24910 write_radio_reg(pi,
24911 RADIO_2056_RX_RXIQCAL_RXMUX |
24913 pi->tx_rx_cal_radio_saveregs[1]);
24915 if (pi->pubpi.radiorev >= 5) {
24916 write_radio_reg(pi,
24917 RADIO_2056_RX_RXSPARE2 |
24920 tx_rx_cal_radio_saveregs[2]);
24922 write_radio_reg(pi,
24923 RADIO_2056_TX_TXSPARE2 |
24926 tx_rx_cal_radio_saveregs[3]);
24929 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24930 if (pi->pubpi.radiorev >= 5)
24933 RADIO_2056_RX_LNAA_MASTER
24936 tx_rx_cal_radio_saveregs
24941 RADIO_2056_RX_LNAA_TUNE
24944 tx_rx_cal_radio_saveregs
24947 if (pi->pubpi.radiorev >= 5)
24950 RADIO_2056_RX_LNAG_MASTER
24953 tx_rx_cal_radio_saveregs
24958 RADIO_2056_RX_LNAG_TUNE
24961 tx_rx_cal_radio_saveregs
24968 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
24971 u16 rx_antval, tx_antval;
24973 if (NREV_GE(pi->pubpi.phy_rev, 7))
24976 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
24978 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
24979 pi->tx_rx_cal_phy_saveregs[1] =
24980 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
24981 pi->tx_rx_cal_phy_saveregs[2] =
24982 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
24983 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
24984 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
24985 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
24986 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
24987 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
24988 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
24989 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24990 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
24991 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
24992 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
24993 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
24996 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24997 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24998 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24999 0x29b, (0x1 << 0), (0) << 0);
25001 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25002 0x29b, (0x1 << 0), (0) << 0);
25004 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25006 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25008 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25012 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25013 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25014 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25015 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25018 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25019 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25020 (0x1 << 2), (0x1 << 2));
25021 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25022 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25023 (0x1 << 0) | (0x1 << 1), 0);
25024 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25026 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25029 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25030 RADIO_MIMO_CORESEL_CORE1 |
25031 RADIO_MIMO_CORESEL_CORE2);
25033 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25034 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25036 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25037 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25038 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25039 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25040 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25041 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25042 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25043 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25044 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25045 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25046 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25047 if (CHSPEC_IS40(pi->radio_chanspec))
25048 wlc_phy_rfctrl_override_nphy_rev7(
25052 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25054 wlc_phy_rfctrl_override_nphy_rev7(
25058 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25060 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25062 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25063 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25064 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25066 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25069 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25071 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25073 wlc_phy_rfctrlintc_override_nphy(pi,
25074 NPHY_RfctrlIntc_override_TRSW,
25078 if (rx_core == PHY_CORE_0) {
25086 wlc_phy_rfctrlintc_override_nphy(pi,
25087 NPHY_RfctrlIntc_override_TRSW,
25088 rx_antval, rx_core + 1);
25089 wlc_phy_rfctrlintc_override_nphy(pi,
25090 NPHY_RfctrlIntc_override_TRSW,
25091 tx_antval, tx_core + 1);
25095 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
25098 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25099 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25100 pi->tx_rx_cal_phy_saveregs[1]);
25101 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25102 pi->tx_rx_cal_phy_saveregs[2]);
25103 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25104 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25106 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25107 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25108 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25109 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25110 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25111 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25112 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25113 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25114 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25117 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25118 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25122 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
25123 u16 *rxgain, u8 cal_type)
25127 struct phy_iq_est est[PHY_CORE_MAX];
25129 struct nphy_iq_comp save_comp, zero_comp;
25130 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
25131 thresh_pwr = 10000;
25132 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
25133 bool gainctrl_done = false;
25134 u8 mix_tia_gain = 3;
25135 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25136 s8 curr_gaintbl_index = 3;
25137 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
25138 struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
25139 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
25142 u16 nphy_rxcal_txgain[2];
25144 if (NREV_GE(pi->pubpi.phy_rev, 7))
25147 tx_core = 1 - rx_core;
25150 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25152 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25153 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25154 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25156 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25157 if (NREV_GE(pi->pubpi.phy_rev, 7))
25159 else if (NREV_GE(pi->pubpi.phy_rev, 4))
25163 if (NREV_GE(pi->pubpi.phy_rev, 7))
25164 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25166 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25168 if (NREV_GE(pi->pubpi.phy_rev, 7))
25169 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25171 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25176 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25177 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25178 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25179 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25180 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25181 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25182 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25184 if (NREV_GE(pi->pubpi.phy_rev, 7))
25185 wlc_phy_rfctrl_override_1tomany_nphy(
25187 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25188 ((lpf_biq1 << 12) |
25190 (mix_tia_gain << 4) | (lna2 << 2)
25193 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25197 (mix_tia_gain << 4) |
25198 (lna2 << 2) | lna1), 0x3,
25201 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25203 if (txpwrindex == -1) {
25204 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25205 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25206 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25208 nphy_rxcal_txgain);
25210 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
25214 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25215 NPHY_RXCAL_TONEFREQ_40MHz :
25216 NPHY_RXCAL_TONEFREQ_20MHz,
25217 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
25219 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25220 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25221 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25222 curr_pwr = i_pwr + q_pwr;
25224 switch (gainctrl_dirn) {
25225 case NPHY_RXCAL_GAIN_INIT:
25226 if (curr_pwr > thresh_pwr) {
25227 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25228 prev_gaintbl_index = curr_gaintbl_index;
25229 curr_gaintbl_index--;
25231 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25232 prev_gaintbl_index = curr_gaintbl_index;
25233 curr_gaintbl_index++;
25237 case NPHY_RXCAL_GAIN_UP:
25238 if (curr_pwr > thresh_pwr) {
25239 gainctrl_done = true;
25240 optim_pwr = prev_pwr;
25241 optim_gaintbl_index = prev_gaintbl_index;
25243 prev_gaintbl_index = curr_gaintbl_index;
25244 curr_gaintbl_index++;
25248 case NPHY_RXCAL_GAIN_DOWN:
25249 if (curr_pwr > thresh_pwr) {
25250 prev_gaintbl_index = curr_gaintbl_index;
25251 curr_gaintbl_index--;
25253 gainctrl_done = true;
25254 optim_pwr = curr_pwr;
25255 optim_gaintbl_index = curr_gaintbl_index;
25263 if ((curr_gaintbl_index < 0) ||
25264 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
25265 gainctrl_done = true;
25266 optim_pwr = curr_pwr;
25267 optim_gaintbl_index = prev_gaintbl_index;
25269 prev_pwr = curr_pwr;
25272 wlc_phy_stopplayback_nphy(pi);
25273 } while (!gainctrl_done);
25275 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25276 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25277 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25278 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25279 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25280 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25282 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25283 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25285 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25286 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25288 if (fine_gain_idx + (int)lpf_biq0 > 10)
25289 lpf_biq1 = 10 - lpf_biq0;
25291 lpf_biq1 = (u16) max(fine_gain_idx, 0);
25293 wlc_phy_rfctrl_override_1tomany_nphy(
25295 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25296 ((lpf_biq1 << 12) |
25298 (mix_tia_gain << 4) |
25299 (lna2 << 2) | lna1), 0x3,
25302 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
25303 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25307 (mix_tia_gain << 4) |
25312 if (rxgain != NULL) {
25315 *rxgain++ = mix_tia_gain;
25316 *rxgain++ = lpf_biq0;
25317 *rxgain++ = lpf_biq1;
25321 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25325 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
25328 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25332 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
25334 u32 target_bws[2] = { 9500, 21000 };
25335 u32 ref_tones[2] = { 3000, 6000 };
25336 u32 target_bw, ref_tone;
25338 u32 target_pwr_ratios[2] = { 28606, 18468 };
25339 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
25341 u16 start_rccal_ovr_val = 128;
25342 u16 txlpf_rccal_lpc_ovr_val = 128;
25343 u16 rxlpf_rccal_hpc_ovr_val = 159;
25345 u16 orig_txlpf_rccal_lpc_ovr_val;
25346 u16 orig_rxlpf_rccal_hpc_ovr_val;
25347 u16 radio_addr_offset_rx;
25348 u16 radio_addr_offset_tx;
25350 u16 orig_RxStrnFilt40Num[6];
25351 u16 orig_RxStrnFilt40Den[4];
25352 u16 orig_rfctrloverride[2];
25353 u16 orig_rfctrlauxreg[2];
25354 u16 orig_rfctrlrssiothers;
25357 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25358 u16 lpf_hpc = 7, hpvga_hpc = 7;
25361 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
25362 u32 ref_iq_vals = 0, target_iq_vals = 0;
25363 u16 num_samps, log_num_samps = 10;
25364 struct phy_iq_est est[PHY_CORE_MAX];
25366 if (NREV_GE(pi->pubpi.phy_rev, 7))
25369 num_samps = (1 << log_num_samps);
25371 if (CHSPEC_IS40(pi->radio_chanspec)) {
25372 target_bw = target_bws[1];
25373 target_pwr_ratio = target_pwr_ratios[1];
25374 ref_tone = ref_tones[1];
25375 rx_lpf_bw = rx_lpf_bws[1];
25377 target_bw = target_bws[0];
25378 target_pwr_ratio = target_pwr_ratios[0];
25379 ref_tone = ref_tones[0];
25380 rx_lpf_bw = rx_lpf_bws[0];
25383 if (core_idx == 0) {
25384 radio_addr_offset_rx = RADIO_2056_RX0;
25385 radio_addr_offset_tx =
25386 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25388 radio_addr_offset_rx = RADIO_2056_RX1;
25389 radio_addr_offset_tx =
25390 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25393 orig_txlpf_rccal_lpc_ovr_val =
25395 (RADIO_2056_TX_TXLPF_RCCAL |
25396 radio_addr_offset_tx));
25397 orig_rxlpf_rccal_hpc_ovr_val =
25399 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25400 radio_addr_offset_rx));
25402 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25404 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25405 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25406 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25407 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25408 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25409 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25410 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25411 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25412 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25413 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25415 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25416 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25417 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25418 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25419 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25421 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25422 txlpf_rccal_lpc_ovr_val);
25424 write_radio_reg(pi,
25425 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25426 rxlpf_rccal_hpc_ovr_val);
25428 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25430 write_phy_reg(pi, 0x267, 0x02d4);
25431 write_phy_reg(pi, 0x268, 0x0000);
25432 write_phy_reg(pi, 0x269, 0x0000);
25433 write_phy_reg(pi, 0x26a, 0x0000);
25434 write_phy_reg(pi, 0x26b, 0x0000);
25435 write_phy_reg(pi, 0x26c, 0x02d4);
25436 write_phy_reg(pi, 0x26d, 0x0000);
25437 write_phy_reg(pi, 0x26e, 0x0000);
25438 write_phy_reg(pi, 0x26f, 0x0000);
25439 write_phy_reg(pi, 0x270, 0x0000);
25441 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25442 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25443 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25444 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25446 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25447 (0x7 << 10), (tx_lpf_bw << 10));
25448 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25449 (0x7 << 0), (hpvga_hpc << 0));
25450 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25451 (0x7 << 4), (lpf_hpc << 4));
25452 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25453 (0x7 << 8), (rx_lpf_bw << 8));
25455 rccal_stepsize = 16;
25456 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25458 while (rccal_stepsize >= 0) {
25459 write_radio_reg(pi,
25460 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25461 radio_addr_offset_rx), rccal_val);
25463 if (rccal_stepsize == 16) {
25465 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
25469 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25473 max_t(u32, (est[0].i_pwr +
25475 (log_num_samps + 1),
25479 max_t(u32, (est[1].i_pwr +
25481 (log_num_samps + 1),
25484 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
25489 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25492 target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
25493 (log_num_samps + 1);
25497 est[1].q_pwr) >> (log_num_samps + 1);
25499 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25501 if (rccal_stepsize == 0)
25503 else if (rccal_stepsize == 1) {
25504 last_rccal_val = rccal_val;
25505 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25506 last_pwr_ratio = pwr_ratio;
25509 rccal_stepsize = (rccal_stepsize >> 1);
25510 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25511 rccal_stepsize : (-rccal_stepsize));
25514 if (rccal_stepsize == -1) {
25516 (ABS((int)last_pwr_ratio -
25517 (int)target_pwr_ratio) <
25518 ABS((int)pwr_ratio -
25519 (int)target_pwr_ratio)) ? last_rccal_val :
25522 if (CHSPEC_IS40(pi->radio_chanspec)) {
25523 if ((best_rccal_val > 140)
25524 || (best_rccal_val < 135))
25525 best_rccal_val = 138;
25527 if ((best_rccal_val > 142)
25528 || (best_rccal_val < 137))
25529 best_rccal_val = 140;
25532 write_radio_reg(pi,
25533 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25534 radio_addr_offset_rx), best_rccal_val);
25538 wlc_phy_stopplayback_nphy(pi);
25540 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25541 orig_txlpf_rccal_lpc_ovr_val);
25542 write_radio_reg(pi,
25543 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25544 orig_rxlpf_rccal_hpc_ovr_val);
25546 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25548 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25549 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25550 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25551 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25552 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25553 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25554 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25555 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25556 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25557 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25559 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25560 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25561 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25562 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25563 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25565 pi->nphy_anarxlpf_adjusted = false;
25567 return best_rccal_val - 0x80;
25570 #define WAIT_FOR_SCOPE 4000
25571 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
25572 struct nphy_txgains target_gain,
25573 u8 cal_type, bool debug)
25576 u8 core_no, rx_core;
25580 struct nphy_iqcal_params cal_params[2];
25582 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25584 bool phyhang_avoid_state = false;
25585 bool skip_rxiqcal = false;
25587 orig_BBConfig = read_phy_reg(pi, 0x01);
25588 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25590 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25592 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25593 phyhang_avoid_state = pi->phyhang_avoid;
25594 pi->phyhang_avoid = false;
25597 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25599 for (core_no = 0; core_no <= 1; core_no++) {
25600 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25601 &cal_params[core_no]);
25602 cal_gain[core_no] = cal_params[core_no].cal_gain;
25605 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25607 rxcore_state = wlc_phy_rxcore_getstate_nphy(
25608 (struct brcms_phy_pub *) pi);
25610 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25613 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
25615 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25617 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25619 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25621 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25623 wlc_phy_tx_tone_nphy(pi,
25625 pi->radio_chanspec)) ?
25626 NPHY_RXCAL_TONEFREQ_40MHz :
25627 NPHY_RXCAL_TONEFREQ_20MHz,
25628 NPHY_RXCAL_TONEAMP, 0, cal_type,
25632 mdelay(WAIT_FOR_SCOPE);
25634 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25635 wlc_phy_stopplayback_nphy(pi);
25638 if (((cal_type == 1) || (cal_type == 2))
25639 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25641 if (rx_core == PHY_CORE_1) {
25643 if (rxcore_state == 1)
25644 wlc_phy_rxcore_setstate_nphy(
25645 (struct brcms_phy_pub *) pi, 3);
25647 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25650 best_rccal[rx_core] =
25651 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25652 pi->nphy_rccal_value = best_rccal[rx_core];
25654 if (rxcore_state == 1)
25655 wlc_phy_rxcore_setstate_nphy(
25656 (struct brcms_phy_pub *) pi,
25661 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25663 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25664 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25667 if ((cal_type == 1) || (cal_type == 2)) {
25669 best_rccal[0] = best_rccal[1];
25670 write_radio_reg(pi,
25671 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25672 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25674 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25676 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25677 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25680 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25681 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25682 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25683 TXLPF_IDAC_4, txlpf_idac);
25686 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
25688 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
25691 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25693 PHY_CORE_0) ? RADIO_2056_RX0 :
25695 (rxlpf_rccal_hpc | 0x80));
25697 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25699 PHY_CORE_0) ? RADIO_2056_TX0 :
25701 (txlpf_rccal_lpc | 0x80));
25705 write_phy_reg(pi, 0x01, orig_BBConfig);
25707 wlc_phy_resetcca_nphy(pi);
25709 if (NREV_GE(pi->pubpi.phy_rev, 7))
25710 wlc_phy_rfctrl_override_1tomany_nphy(
25712 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25715 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25717 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25719 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25722 if (NREV_GE(pi->pubpi.phy_rev, 4))
25723 pi->phyhang_avoid = phyhang_avoid_state;
25725 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25731 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
25732 struct nphy_txgains target_gain, bool debug)
25734 struct phy_iq_est est[PHY_CORE_MAX];
25735 u8 core_num, rx_core, tx_core;
25736 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
25737 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25738 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
25739 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25740 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
25741 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25742 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25744 u32 i_pwr, q_pwr, tot_pwr[3];
25745 u8 gain_pass, use_hpf_num;
25746 u16 mask, val1, val2;
25750 struct nphy_iqcal_params cal_params[2];
25753 bool first_playtone = true;
25755 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25757 if (NREV_LT(pi->pubpi.phy_rev, 2))
25758 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25760 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25762 for (core_no = 0; core_no <= 1; core_no++) {
25763 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25764 &cal_params[core_no]);
25765 cal_gain[core_no] = cal_params[core_no].cal_gain;
25768 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25771 desired_log2_pwr = 13;
25773 for (core_num = 0; core_num < 2; core_num++) {
25775 rx_core = core_num;
25776 tx_core = 1 - core_num;
25778 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25779 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25781 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25782 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25784 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25787 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25788 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25790 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25791 ((0x1 << 1) | (0x1 << 2)));
25792 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25794 if (((pi->nphy_rxcalparams) & 0xff000000))
25796 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25797 (CHSPEC_IS5G(pi->radio_chanspec) ?
25801 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25802 (CHSPEC_IS5G(pi->radio_chanspec) ?
25805 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
25806 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
25809 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
25810 if (rx_core == PHY_CORE_0) {
25811 val1 = RADIO_2055_COUPLE_RX_MASK;
25812 val2 = RADIO_2055_COUPLE_TX_MASK;
25814 val1 = RADIO_2055_COUPLE_TX_MASK;
25815 val2 = RADIO_2055_COUPLE_RX_MASK;
25818 if ((pi->nphy_rxcalparams & 0x10000)) {
25819 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
25821 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
25825 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
25828 mdelay(WAIT_FOR_SCOPE);
25830 if (gain_pass < 3) {
25831 curr_lna = lna_vals[gain_pass];
25832 curr_hpf1 = hpf1_vals[gain_pass];
25833 curr_hpf2 = hpf2_vals[gain_pass];
25836 if (tot_pwr[1] > 10000) {
25837 curr_lna = lna_vals[2];
25838 curr_hpf1 = hpf1_vals[2];
25839 curr_hpf2 = hpf2_vals[2];
25841 curr_hpf = curr_hpf1;
25843 wlc_phy_nbits(tot_pwr[2]);
25845 if (tot_pwr[0] > 10000) {
25846 curr_lna = lna_vals[1];
25847 curr_hpf1 = hpf1_vals[1];
25848 curr_hpf2 = hpf2_vals[1];
25850 curr_hpf = curr_hpf1;
25855 curr_lna = lna_vals[0];
25856 curr_hpf1 = hpf1_vals[0];
25857 curr_hpf2 = hpf2_vals[0];
25859 curr_hpf = curr_hpf2;
25866 hpf_change = desired_log2_pwr - actual_log2_pwr;
25867 curr_hpf += hpf_change;
25868 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
25869 if (use_hpf_num == 1)
25870 curr_hpf1 = curr_hpf;
25872 curr_hpf2 = curr_hpf;
25875 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
25876 ((curr_hpf2 << 8) |
25878 (curr_lna << 2)), 0x3, 0);
25879 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25881 wlc_phy_stopplayback_nphy(pi);
25883 if (first_playtone) {
25884 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
25885 (u16) (pi->nphy_rxcalparams &
25886 0xffff), 0, 0, true);
25887 first_playtone = false;
25889 phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
25891 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
25895 if (bcmerror == 0) {
25896 if (gain_pass < 3) {
25898 wlc_phy_rx_iq_est_nphy(pi, est,
25901 i_pwr = (est[rx_core].i_pwr +
25902 num_samps / 2) / num_samps;
25903 q_pwr = (est[rx_core].q_pwr +
25904 num_samps / 2) / num_samps;
25905 tot_pwr[gain_pass] = i_pwr + q_pwr;
25908 wlc_phy_calc_rx_iq_comp_nphy(pi,
25913 wlc_phy_stopplayback_nphy(pi);
25920 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
25921 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
25923 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
25924 0x92, orig_RfctrlIntcTx);
25925 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
25926 0x92, orig_RfctrlIntcRx);
25927 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
25928 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
25929 0xa7, orig_AfectrlCore);
25930 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
25936 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
25937 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25939 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25942 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25948 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25949 u8 cal_type, bool debug)
25951 if (NREV_GE(pi->pubpi.phy_rev, 7))
25954 if (NREV_GE(pi->pubpi.phy_rev, 3))
25955 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
25958 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
25961 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
25964 u16 addr_offset = 0x2c5;
25966 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
25967 write_phy_reg(pi, addr_offset + j,
25968 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
25971 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
25974 u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
25976 for (type = 0; type < 3; type++) {
25977 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
25978 write_phy_reg(pi, addr_offset[type] + j,
25979 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
25983 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
25984 write_phy_reg(pi, 0x186 + j,
25985 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
25987 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25988 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
25989 write_phy_reg(pi, 0x186 + j,
25990 NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
25993 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
25994 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
25995 write_phy_reg(pi, 0x2c5 + j,
25996 NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
26001 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
26006 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26007 write_phy_reg(pi, 0x195 + j,
26008 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26010 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26011 write_phy_reg(pi, 0x186 + j,
26012 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26016 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
26020 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26025 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
26027 u16 m0m1 = (u16) ((m0 << 8) | m1);
26029 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26030 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26033 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
26035 u32 *tx_pwrctrl_tbl = NULL;
26037 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26038 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26039 if ((pi->pubpi.radiorev == 4)
26040 || (pi->pubpi.radiorev == 6))
26042 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26043 else if (pi->pubpi.radiorev == 3)
26045 nphy_tpc_txgain_ipa_2g_2057rev3;
26046 else if (pi->pubpi.radiorev == 5)
26048 nphy_tpc_txgain_ipa_2g_2057rev5;
26049 else if ((pi->pubpi.radiorev == 7)
26050 || (pi->pubpi.radiorev == 8))
26052 nphy_tpc_txgain_ipa_2g_2057rev7;
26053 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26054 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
26055 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26056 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26058 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26062 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26063 if ((pi->pubpi.radiorev == 3) ||
26064 (pi->pubpi.radiorev == 4) ||
26065 (pi->pubpi.radiorev == 6))
26066 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26067 else if ((pi->pubpi.radiorev == 7)
26068 || (pi->pubpi.radiorev == 8))
26070 nphy_tpc_txgain_ipa_5g_2057rev7;
26072 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26076 return tx_pwrctrl_tbl;
26080 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
26081 struct nphy_papd_restore_state *state, u8 core)
26087 off_core = core ^ 0x1;
26088 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26090 if (NREV_IS(pi->pubpi.phy_rev, 7)
26091 || NREV_GE(pi->pubpi.phy_rev, 8))
26092 wlc_phy_rfctrl_override_nphy_rev7(
26094 wlc_phy_read_lpf_bw_ctl_nphy
26097 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26099 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26100 if (pi->pubpi.radiorev == 5)
26101 mixgain = (core == 0) ? 0x20 : 0x00;
26102 else if ((pi->pubpi.radiorev == 7)
26103 || (pi->pubpi.radiorev == 8))
26105 else if ((pi->pubpi.radiorev <= 4)
26106 || (pi->pubpi.radiorev == 6))
26109 if ((pi->pubpi.radiorev == 4) ||
26110 (pi->pubpi.radiorev == 6))
26112 else if ((pi->pubpi.radiorev == 3)
26113 || (pi->pubpi.radiorev == 7)
26114 || (pi->pubpi.radiorev == 8))
26118 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26119 mixgain, (1 << core), 0,
26120 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26122 wlc_phy_rfctrl_override_1tomany_nphy(
26124 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26125 1, (1 << core), 0);
26126 wlc_phy_rfctrl_override_1tomany_nphy(
26128 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26129 0, (1 << off_core), 0);
26131 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26133 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26134 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26136 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26137 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26139 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26140 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26142 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26143 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26145 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26146 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26148 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26149 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26151 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26152 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26154 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26156 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26158 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26159 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26161 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26163 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26165 state->afeoverride[core] =
26166 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26167 state->afectrl[off_core] =
26168 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26169 state->afeoverride[off_core] =
26170 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26172 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26174 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26175 0xa5), (0x1 << 2), (0x1 << 2));
26177 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26178 (0x1 << 2), (0x1 << 2));
26179 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26180 0x8f), (0x1 << 2), (0x1 << 2));
26182 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26183 state->pwrup[core] =
26184 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26185 TXRXCOUPLE_2G_PWRUP);
26186 state->atten[core] =
26187 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26188 TXRXCOUPLE_2G_ATTEN);
26189 state->pwrup[off_core] =
26190 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26191 TXRXCOUPLE_2G_PWRUP);
26192 state->atten[off_core] =
26193 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26194 TXRXCOUPLE_2G_ATTEN);
26196 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26197 TXRXCOUPLE_2G_PWRUP, 0xc);
26199 if ((pi->pubpi.radiorev == 3) ||
26200 (pi->pubpi.radiorev == 4) ||
26201 (pi->pubpi.radiorev == 6))
26202 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26203 TXRXCOUPLE_2G_ATTEN, 0xf0);
26204 else if (pi->pubpi.radiorev == 5)
26205 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26206 TXRXCOUPLE_2G_ATTEN,
26207 (core == 0) ? 0xf7 : 0xf2);
26208 else if ((pi->pubpi.radiorev == 7)
26209 || (pi->pubpi.radiorev == 8))
26210 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26211 TXRXCOUPLE_2G_ATTEN, 0xf0);
26213 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26214 TXRXCOUPLE_2G_PWRUP, 0x0);
26215 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26216 TXRXCOUPLE_2G_ATTEN, 0xff);
26218 state->pwrup[core] =
26219 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26220 TXRXCOUPLE_5G_PWRUP);
26221 state->atten[core] =
26222 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26223 TXRXCOUPLE_5G_ATTEN);
26224 state->pwrup[off_core] =
26225 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26226 TXRXCOUPLE_5G_PWRUP);
26227 state->atten[off_core] =
26228 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26229 TXRXCOUPLE_5G_ATTEN);
26231 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26232 TXRXCOUPLE_5G_PWRUP, 0xc);
26234 if ((pi->pubpi.radiorev == 7)
26235 || (pi->pubpi.radiorev == 8))
26236 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26237 TXRXCOUPLE_5G_ATTEN, 0xf4);
26240 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26241 TXRXCOUPLE_5G_ATTEN, 0xf0);
26243 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26244 TXRXCOUPLE_5G_PWRUP, 0x0);
26245 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26246 TXRXCOUPLE_5G_ATTEN, 0xff);
26251 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
26253 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26254 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26256 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26257 0x2a4, (0x1 << 13), (1) << 13);
26259 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26260 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26262 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26263 0x2a4, (0x1 << 13), (0) << 13);
26267 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26269 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26271 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26273 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26274 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26276 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26278 state->afeoverride[core] =
26279 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26281 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26282 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26283 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26287 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26289 state->vga_master[core] =
26290 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26291 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26292 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26293 state->fbmix[core] =
26294 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26296 state->intpa_master[core] =
26297 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26300 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26302 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26303 INTPAG_MASTER, 0x04);
26305 state->fbmix[core] =
26306 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26308 state->intpa_master[core] =
26309 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26312 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26314 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26315 INTPAA_MASTER, 0x04);
26321 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
26323 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26324 0x29b, (0x1 << 0), (1) << 0);
26326 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26327 0x29b, (0x1 << 0), (0) << 0);
26329 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26334 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
26335 struct nphy_papd_restore_state *state)
26339 wlc_phy_stopplayback_nphy(pi);
26341 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26343 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26345 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26346 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26347 TXRXCOUPLE_2G_PWRUP, 0);
26348 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26349 TXRXCOUPLE_2G_ATTEN,
26350 state->atten[core]);
26352 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26353 TXRXCOUPLE_5G_PWRUP, 0);
26354 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26355 TXRXCOUPLE_5G_ATTEN,
26356 state->atten[core]);
26360 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
26361 wlc_phy_rfctrl_override_nphy_rev7(
26364 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26366 wlc_phy_rfctrl_override_nphy_rev7(
26369 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26371 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26373 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26374 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26375 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26376 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26377 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26378 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26379 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26380 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26381 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26382 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26383 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26384 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26385 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26386 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26387 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26388 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26389 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26390 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26391 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26392 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26393 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26394 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26395 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26396 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26397 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26398 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26399 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26400 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26401 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26402 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26403 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26405 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26407 write_phy_reg(pi, (core == PHY_CORE_0) ?
26408 0xa6 : 0xa7, state->afectrl[core]);
26409 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26410 0xa5, state->afeoverride[core]);
26413 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26414 (state->mm & 0xff));
26416 if (NREV_IS(pi->pubpi.phy_rev, 7)
26417 || NREV_GE(pi->pubpi.phy_rev, 8))
26418 wlc_phy_rfctrl_override_nphy_rev7(
26419 pi, (0x1 << 7), 0, 0,
26421 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26423 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26424 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26425 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26427 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26428 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26430 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26432 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26433 state->vga_master[core]);
26434 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26435 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26436 TXFBMIX_G, state->fbmix[core]);
26437 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26439 state->intpa_master[core]);
26441 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26442 TXFBMIX_A, state->fbmix[core]);
26443 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26445 state->intpa_master[core]);
26448 write_phy_reg(pi, (core == PHY_CORE_0) ?
26449 0xa6 : 0xa7, state->afectrl[core]);
26450 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26451 0xa5, state->afeoverride[core]);
26454 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26455 (state->mm & 0xff));
26457 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26462 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
26465 u32 *buf, *src, *dst, sz;
26467 sz = end - start + 1;
26469 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
26474 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26476 wlc_phy_table_read_nphy(pi,
26478 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26479 NPHY_TBL_ID_EPSILONTBL1),
26480 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26483 u32 phy_a1, phy_a2;
26484 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
26486 phy_a1 = end - min(end, (winsz >> 1));
26487 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
26488 end + (winsz >> 1));
26489 phy_a3 = phy_a2 - phy_a1 + 1;
26494 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26498 } while (phy_a2-- != phy_a1);
26502 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
26503 } while (end-- != start);
26505 wlc_phy_table_write_nphy(pi,
26507 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26508 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26514 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
26515 enum phy_cal_mode cal_mode, u8 core)
26517 u16 phy_a1, phy_a2, phy_a3;
26518 u16 phy_a4, phy_a5;
26522 struct nphy_txgains phy_a9;
26524 if (NREV_LT(pi->pubpi.phy_rev, 3))
26527 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26529 phy_a6 = ((cal_mode == CAL_GCTRL)
26530 || (cal_mode == CAL_SOFT)) ? true : false;
26532 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26534 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26536 if (CHSPEC_IS2G(pi->radio_chanspec))
26537 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26538 (phy_a9.txgm[core] << 12) |
26539 (phy_a9.pga[core] << 8) |
26540 (txgains->gains.pad[core] << 3) |
26541 (phy_a9.ipa[core]));
26543 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26544 (phy_a9.txgm[core] << 12) |
26545 (txgains->gains.pga[core] << 8) |
26546 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26548 wlc_phy_rfctrl_override_1tomany_nphy(
26550 NPHY_REV7_RfctrlOverride_cmd_txgain,
26551 phy_a5, (1 << core), 0);
26553 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26554 if ((pi->pubpi.radiorev <= 4)
26555 || (pi->pubpi.radiorev == 6))
26556 m[core] = IS40MHZ(pi) ? 60 : 79;
26558 m[core] = IS40MHZ(pi) ? 45 : 64;
26560 m[core] = IS40MHZ(pi) ? 75 : 107;
26564 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26568 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26569 if ((pi->pubpi.radiorev == 4)
26570 || (pi->pubpi.radiorev == 6)) {
26578 if ((pi->pubpi.radiorev == 5)
26579 || (pi->pubpi.radiorev == 7)
26580 || (pi->pubpi.radiorev == 8)) {
26589 if (cal_mode == CAL_GCTRL) {
26590 if ((pi->pubpi.radiorev == 5)
26591 && (CHSPEC_IS2G(pi->radio_chanspec)))
26593 else if (((pi->pubpi.radiorev == 7) &&
26594 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26595 ((pi->pubpi.radiorev == 8) &&
26596 (CHSPEC_IS2G(pi->radio_chanspec))))
26601 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26607 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26608 0x29b, (0x1 << 0), (1) << 0);
26610 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26611 0x29b, (0x1 << 0), (0) << 0);
26613 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26614 0x2a4, (0x1 << 13), (1) << 13);
26616 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26617 0x2a4, (0x1 << 13), (0) << 13);
26619 write_phy_reg(pi, 0x2a1, 0x80);
26620 write_phy_reg(pi, 0x2a2, 0x100);
26622 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26623 0x2a4, (0x7 << 4), (11) << 4);
26625 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26626 0x2a4, (0x7 << 8), (11) << 8);
26628 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26629 0x2a4, (0x7 << 0), (0x3) << 0);
26631 write_phy_reg(pi, 0x2e5, 0x20);
26633 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26635 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26637 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26639 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26640 1, ((core == 0) ? 1 : 2), 0,
26641 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26642 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26643 0, ((core == 0) ? 2 : 1), 0,
26644 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26646 write_phy_reg(pi, 0x2be, 1);
26647 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26649 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26651 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26653 wlc_phy_table_write_nphy(pi,
26655 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26656 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26659 if (cal_mode != CAL_GCTRL) {
26660 if (CHSPEC_IS5G(pi->radio_chanspec))
26661 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26664 wlc_phy_rfctrl_override_1tomany_nphy(
26666 NPHY_REV7_RfctrlOverride_cmd_txgain,
26667 phy_a5, (1 << core), 1);
26672 if (txgains->useindex) {
26673 phy_a4 = 15 - ((txgains->index) >> 3);
26674 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26675 if (NREV_GE(pi->pubpi.phy_rev, 6))
26676 phy_a5 = 0x00f7 | (phy_a4 << 8);
26679 if (NREV_IS(pi->pubpi.phy_rev, 5))
26680 phy_a5 = 0x10f7 | (phy_a4 << 8);
26682 phy_a5 = 0x50f7 | (phy_a4 << 8);
26684 phy_a5 = 0x70f7 | (phy_a4 << 8);
26686 wlc_phy_rfctrl_override_nphy(pi,
26691 wlc_phy_rfctrl_override_nphy(pi,
26698 if (CHSPEC_IS2G(pi->radio_chanspec))
26699 m[core] = IS40MHZ(pi) ? 45 : 64;
26701 m[core] = IS40MHZ(pi) ? 75 : 107;
26704 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26708 if (cal_mode == CAL_FULL) {
26711 } else if (cal_mode == CAL_SOFT) {
26714 } else if (cal_mode == CAL_GCTRL) {
26723 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26724 0x29b, (0x1 << 0), (1) << 0);
26726 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26727 0x29b, (0x1 << 0), (0) << 0);
26729 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26730 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26731 0x2a4, (0x1 << 13), (1) << 13);
26733 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26734 0x2a4, (0x1 << 13), (0) << 13);
26736 write_phy_reg(pi, 0x2a1, 0x20);
26737 write_phy_reg(pi, 0x2a2, 0x60);
26739 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26740 0x2a4, (0xf << 4), (9) << 4);
26742 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26743 0x2a4, (0xf << 8), (9) << 8);
26745 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26746 0x2a4, (0xf << 0), (0x2) << 0);
26748 write_phy_reg(pi, 0x2e5, 0x20);
26750 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26751 0x2a4, (0x1 << 11), (1) << 11);
26753 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26754 0x2a4, (0x1 << 11), (0) << 11);
26756 write_phy_reg(pi, 0x2a1, 0x80);
26757 write_phy_reg(pi, 0x2a2, 0x600);
26759 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26760 0x2a4, (0x7 << 4), (0) << 4);
26762 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26763 0x2a4, (0x7 << 8), (0) << 8);
26765 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26766 0x2a4, (0x7 << 0), (0x3) << 0);
26768 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
26772 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26774 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26776 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26778 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
26780 write_phy_reg(pi, 0x2be, 1);
26781 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26783 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26785 wlc_phy_table_write_nphy(pi,
26787 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26788 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26791 if (cal_mode != CAL_GCTRL)
26792 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
26796 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
26801 struct nphy_ipa_txcalgains phy_a4;
26802 bool phy_a5 = false;
26803 bool phy_a6 = true;
26804 s32 phy_a7, phy_a8;
26807 bool phy_a11 = false;
26811 u8 *phy_a15 = NULL;
26813 phy_a4.useindex = true;
26814 phy_a12 = start_gain;
26816 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26821 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26822 if (pi->pubpi.radiorev == 5) {
26824 phy_a15 = pad_gain_codes_used_2057rev5;
26826 sizeof(pad_gain_codes_used_2057rev5) /
26827 sizeof(pad_gain_codes_used_2057rev5
26830 } else if ((pi->pubpi.radiorev == 7)
26831 || (pi->pubpi.radiorev == 8)) {
26833 phy_a15 = pad_gain_codes_used_2057rev7;
26835 sizeof(pad_gain_codes_used_2057rev7) /
26836 sizeof(pad_gain_codes_used_2057rev7
26841 phy_a15 = pad_all_gain_codes_2057;
26842 phy_a13 = sizeof(pad_all_gain_codes_2057) /
26843 sizeof(pad_all_gain_codes_2057[0]) -
26849 phy_a15 = pga_all_gain_codes_2057;
26850 phy_a13 = sizeof(pga_all_gain_codes_2057) /
26851 sizeof(pga_all_gain_codes_2057[0]) - 1;
26856 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
26857 if (CHSPEC_IS2G(pi->radio_chanspec))
26858 phy_a4.gains.pad[core] =
26859 (u16) phy_a15[phy_a12];
26861 phy_a4.gains.pga[core] =
26862 (u16) phy_a15[phy_a12];
26864 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
26866 wlc_phy_table_read_nphy(pi,
26869 NPHY_TBL_ID_EPSILONTBL0 :
26870 NPHY_TBL_ID_EPSILONTBL1), 1,
26873 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
26875 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
26876 (phy_a8 == 4095) || (phy_a8 == -4096));
26878 if (!phy_a6 && (phy_a3 != phy_a5)) {
26880 phy_a12 -= (u8) phy_a1;
26887 phy_a12 += (u8) phy_a1;
26889 phy_a12 -= (u8) phy_a1;
26891 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
26892 if (phy_a12 < phy_a14)
26908 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
26909 phy_a4.index = (u8) phy_a12;
26910 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
26912 wlc_phy_table_read_nphy(pi,
26915 NPHY_TBL_ID_EPSILONTBL0 :
26916 NPHY_TBL_ID_EPSILONTBL1), 1,
26919 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
26921 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
26922 (phy_a8 == 4095) || (phy_a8 == -4096));
26924 if (!phy_a6 && (phy_a3 != phy_a5)) {
26926 phy_a12 -= (u8) phy_a1;
26933 phy_a12 += (u8) phy_a1;
26935 phy_a12 -= (u8) phy_a1;
26937 if ((phy_a12 < 0) || (phy_a12 > 127)) {
26953 if (NREV_GE(pi->pubpi.phy_rev, 7))
26954 return (u8) phy_a15[phy_a12];
26956 return (u8) phy_a12;
26960 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
26962 struct nphy_ipa_txcalgains phy_b1[2];
26963 struct nphy_papd_restore_state phy_b2;
26967 s16 phy_b6, phy_b7, phy_b8;
26969 s16 phy_b10, phy_b11, phy_b12;
26977 if (pi->nphy_papd_skip == 1)
26980 phy_b3 = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
26982 wlapi_suspend_mac_and_wait(pi->sh->physhim);
26984 wlc_phy_stay_in_carriersearch_nphy(pi, true);
26986 pi->nphy_force_papd_cal = false;
26988 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
26989 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
26990 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
26992 pi->nphy_papd_last_cal = pi->sh->now;
26993 pi->nphy_papd_recal_counter++;
26995 phy_b4 = pi->nphy_txpwrctrl;
26996 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
26998 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
26999 nphy_papd_scaltbl);
27000 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27001 nphy_papd_scaltbl);
27003 phy_b9 = read_phy_reg(pi, 0x01);
27004 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27006 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27008 for (i = 0; i < 64; i++)
27009 wlc_phy_table_write_nphy(pi,
27012 NPHY_TBL_ID_EPSILONTBL0 :
27013 NPHY_TBL_ID_EPSILONTBL1), 1,
27017 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27019 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27020 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27021 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27023 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27024 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27025 if ((pi->pubpi.radiorev == 3)
27026 || (pi->pubpi.radiorev == 4)
27027 || (pi->pubpi.radiorev == 6)) {
27028 pi->nphy_papd_cal_gain_index[phy_b5] =
27030 } else if (pi->pubpi.radiorev == 5) {
27031 pi->nphy_papd_cal_gain_index[phy_b5] =
27033 pi->nphy_papd_cal_gain_index[phy_b5] =
27037 nphy_papd_cal_gain_index
27041 } else if ((pi->pubpi.radiorev == 7)
27042 || (pi->pubpi.radiorev == 8)) {
27044 pi->nphy_papd_cal_gain_index[phy_b5] =
27046 pi->nphy_papd_cal_gain_index[phy_b5] =
27050 nphy_papd_cal_gain_index
27056 phy_b1[phy_b5].gains.pad[phy_b5] =
27057 pi->nphy_papd_cal_gain_index[phy_b5];
27060 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27061 pi->nphy_papd_cal_gain_index[phy_b5] =
27065 nphy_papd_cal_gain_index
27067 phy_b1[phy_b5].gains.pga[phy_b5] =
27068 pi->nphy_papd_cal_gain_index[phy_b5];
27071 phy_b1[phy_b5].useindex = true;
27072 phy_b1[phy_b5].index = 16;
27073 phy_b1[phy_b5].index =
27074 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
27077 pi->nphy_papd_cal_gain_index[phy_b5] =
27078 15 - ((phy_b1[phy_b5].index) >> 3);
27081 switch (pi->nphy_papd_cal_type) {
27083 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27086 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27090 if (NREV_GE(pi->pubpi.phy_rev, 7))
27091 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27094 if (NREV_LT(pi->pubpi.phy_rev, 7))
27095 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27097 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27098 int eps_offset = 0;
27100 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27101 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27102 if (pi->pubpi.radiorev == 3)
27104 else if (pi->pubpi.radiorev == 5)
27112 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27113 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27115 if ((pi->pubpi.radiorev == 3) ||
27116 (pi->pubpi.radiorev == 4) ||
27117 (pi->pubpi.radiorev == 6)) {
27119 nphy_papd_padgain_dlt_2g_2057rev3n4
27122 } else if (pi->pubpi.radiorev == 5) {
27124 nphy_papd_padgain_dlt_2g_2057rev5
27126 } else if ((pi->pubpi.radiorev == 7) ||
27127 (pi->pubpi.radiorev == 8)) {
27129 nphy_papd_padgain_dlt_2g_2057rev7
27133 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27134 if ((pi->pubpi.radiorev == 3) ||
27135 (pi->pubpi.radiorev == 4) ||
27136 (pi->pubpi.radiorev == 6))
27138 -(nphy_papd_pgagain_dlt_5g_2057
27141 else if ((pi->pubpi.radiorev == 7)
27142 || (pi->pubpi.radiorev == 8))
27144 nphy_papd_pgagain_dlt_5g_2057rev7
27150 if (CHSPEC_IS2G(pi->radio_chanspec))
27152 -60 + 27 + eps_offset + phy_b12 +
27156 -60 + 27 + eps_offset + phy_b11 +
27159 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27160 0x29c, (0x1ff << 7), (phy_b6) << 7);
27162 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27164 if (NREV_LT(pi->pubpi.phy_rev, 5))
27169 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27171 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27173 -(nphy_papd_pga_gain_delta_ipa_2g[
27179 -(nphy_papd_pga_gain_delta_ipa_5g[
27185 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27187 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27188 0x29c, (0x1ff << 7), (phy_b6) << 7);
27190 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27194 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27195 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27197 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27198 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27200 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27201 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27202 0x2a4, (0x1 << 13), (0) << 13);
27204 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27205 0x2a4, (0x1 << 13), (0) << 13);
27208 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27209 0x2a4, (0x1 << 11), (0) << 11);
27211 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27212 0x2a4, (0x1 << 11), (0) << 11);
27215 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27217 write_phy_reg(pi, 0x01, phy_b9);
27219 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27221 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27222 if (phy_b4 == PHY_TPC_HW_OFF) {
27223 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
27224 (s8) (pi->nphy_txpwrindex[0].
27225 index_internal), false);
27226 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
27227 (s8) (pi->nphy_txpwrindex[1].
27228 index_internal), false);
27231 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27234 wlapi_enable_mac(pi->sh->physhim);
27237 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27241 u16 rad_gain, dac_gain, bbmult, m1m2;
27242 u8 txpi[2], chan_freq_range;
27245 if (pi->phyhang_avoid)
27246 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27248 if (pi->sh->sromrev < 4) {
27249 txpi[0] = txpi[1] = 72;
27252 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27253 switch (chan_freq_range) {
27254 case WL_CHAN_FREQ_RANGE_2G:
27255 txpi[0] = pi->nphy_txpid2g[0];
27256 txpi[1] = pi->nphy_txpid2g[1];
27258 case WL_CHAN_FREQ_RANGE_5GL:
27259 txpi[0] = pi->nphy_txpid5gl[0];
27260 txpi[1] = pi->nphy_txpid5gl[1];
27262 case WL_CHAN_FREQ_RANGE_5GM:
27263 txpi[0] = pi->nphy_txpid5g[0];
27264 txpi[1] = pi->nphy_txpid5g[1];
27266 case WL_CHAN_FREQ_RANGE_5GH:
27267 txpi[0] = pi->nphy_txpid5gh[0];
27268 txpi[1] = pi->nphy_txpid5gh[1];
27271 txpi[0] = txpi[1] = 91;
27276 if (NREV_GE(pi->pubpi.phy_rev, 7))
27277 txpi[0] = txpi[1] = 30;
27278 else if (NREV_GE(pi->pubpi.phy_rev, 3))
27279 txpi[0] = txpi[1] = 40;
27281 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27283 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27284 (txpi[1] < 40) || (txpi[1] > 100))
27285 txpi[0] = txpi[1] = 91;
27288 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27289 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27290 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27291 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27293 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27294 uint phyrev = pi->pubpi.phy_rev;
27296 if (NREV_GE(phyrev, 3)) {
27299 wlc_phy_get_ipa_gaintbl_nphy(pi);
27300 txgain = tx_gaintbl[txpi[core]];
27302 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27303 if (NREV_IS(phyrev, 3)) {
27305 nphy_tpc_5GHz_txgain_rev3
27307 } else if (NREV_IS(phyrev, 4)) {
27309 pi->srom_fem5g.extpagain ==
27311 nphy_tpc_5GHz_txgain_HiPwrEPA
27313 nphy_tpc_5GHz_txgain_rev4
27317 nphy_tpc_5GHz_txgain_rev5
27321 if (NREV_GE(phyrev, 5) &&
27322 (pi->srom_fem2g.extpagain == 3)) {
27324 nphy_tpc_txgain_HiPwrEPA
27327 txgain = nphy_tpc_txgain_rev3
27333 txgain = nphy_tpc_txgain[txpi[core]];
27336 if (NREV_GE(phyrev, 3))
27337 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27339 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27341 if (NREV_GE(phyrev, 7))
27342 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27344 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27346 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27348 if (NREV_GE(phyrev, 3))
27349 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27350 0xa5), (0x1 << 8), (0x1 << 8));
27352 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27354 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27356 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27359 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27360 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27361 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27362 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27365 wlc_phy_table_read_nphy(pi,
27368 NPHY_TBL_ID_CORE1TXPWRCTL :
27369 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27370 576 + txpi[core], 32,
27373 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27374 0x29b, (0x1ff << 4),
27375 ((s16) rfpwr_offset) << 4);
27377 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27378 0x29b, (0x1 << 2), (1) << 2);
27383 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
27385 if (pi->phyhang_avoid)
27386 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27390 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
27391 u8 tmp_max_pwr, u8 rate_start,
27395 u8 word_num, nibble_num;
27398 for (rate = rate_start; rate <= rate_end; rate++) {
27399 word_num = (rate - rate_start) >> 2;
27400 nibble_num = (rate - rate_start) & 0x3;
27401 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27403 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27408 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27409 u8 rate_start, u8 rate_end)
27413 for (rate = rate_start; rate <= rate_end; rate++)
27414 srom_max[rate] -= 2 * pwr_offset;
27418 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27419 u8 rate_mcs_end, u8 rate_ofdm_start)
27423 rate2 = rate_ofdm_start;
27424 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27425 power[rate1] = power[rate2];
27426 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27428 power[rate_mcs_end] = power[rate_mcs_end - 1];
27432 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27433 u8 rate_ofdm_end, u8 rate_mcs_start)
27437 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27438 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27439 power[rate1] = power[rate2];
27440 if (rate1 == rate_ofdm_start)
27441 power[++rate1] = power[rate2];
27445 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
27447 uint rate1, rate2, band_num;
27448 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27449 u8 tmp_max_pwr = 0;
27450 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
27451 u8 *tx_srom_max_rate = NULL;
27453 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
27455 switch (band_num) {
27458 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
27459 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27461 pwr_offsets1[0] = pi->cck2gpo;
27462 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27468 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
27470 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
27472 pwr_offsets2 = pi->mcs2gpo;
27474 tmp_cddpo = pi->cdd2gpo;
27475 tmp_stbcpo = pi->stbc2gpo;
27476 tmp_bw40po = pi->bw402gpo;
27478 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27482 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
27483 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27485 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
27487 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
27489 pwr_offsets2 = pi->mcs5gpo;
27491 tmp_cddpo = pi->cdd5gpo;
27492 tmp_stbcpo = pi->stbc5gpo;
27493 tmp_bw40po = pi->bw405gpo;
27495 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27499 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
27500 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27502 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
27504 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
27506 pwr_offsets2 = pi->mcs5glpo;
27508 tmp_cddpo = pi->cdd5glpo;
27509 tmp_stbcpo = pi->stbc5glpo;
27510 tmp_bw40po = pi->bw405glpo;
27512 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27516 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
27517 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27519 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
27521 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
27523 pwr_offsets2 = pi->mcs5ghpo;
27525 tmp_cddpo = pi->cdd5ghpo;
27526 tmp_stbcpo = pi->stbc5ghpo;
27527 tmp_bw40po = pi->bw405ghpo;
27529 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27533 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27534 tmp_max_pwr, TXP_FIRST_OFDM,
27537 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27538 TXP_FIRST_MCS_20_SISO,
27539 TXP_LAST_MCS_20_SISO,
27542 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27544 TXP_FIRST_MCS_20_CDD,
27545 TXP_LAST_MCS_20_CDD);
27547 if (NREV_GE(pi->pubpi.phy_rev, 3))
27548 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27549 TXP_FIRST_MCS_20_CDD,
27550 TXP_LAST_MCS_20_CDD);
27552 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27553 TXP_FIRST_OFDM_20_CDD,
27554 TXP_LAST_OFDM_20_CDD,
27555 TXP_FIRST_MCS_20_CDD);
27557 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27559 TXP_FIRST_MCS_20_STBC,
27560 TXP_LAST_MCS_20_STBC);
27562 if (NREV_GE(pi->pubpi.phy_rev, 3))
27563 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27565 TXP_FIRST_MCS_20_STBC,
27566 TXP_LAST_MCS_20_STBC);
27568 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27569 &pwr_offsets2[2], tmp_max_pwr,
27570 TXP_FIRST_MCS_20_SDM,
27571 TXP_LAST_MCS_20_SDM);
27573 if (NPHY_IS_SROM_REINTERPRET) {
27575 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27578 TXP_FIRST_MCS_40_SISO,
27579 TXP_LAST_MCS_40_SISO);
27581 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27582 TXP_FIRST_OFDM_40_SISO,
27583 TXP_LAST_OFDM_40_SISO,
27584 TXP_FIRST_MCS_40_SISO);
27586 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27589 TXP_FIRST_MCS_40_CDD,
27590 TXP_LAST_MCS_40_CDD);
27592 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27593 TXP_FIRST_MCS_40_CDD,
27594 TXP_LAST_MCS_40_CDD);
27596 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27597 TXP_FIRST_OFDM_40_CDD,
27598 TXP_LAST_OFDM_40_CDD,
27599 TXP_FIRST_MCS_40_CDD);
27601 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27604 TXP_FIRST_MCS_40_STBC,
27605 TXP_LAST_MCS_40_STBC);
27607 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27609 TXP_FIRST_MCS_40_STBC,
27610 TXP_LAST_MCS_40_STBC);
27612 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27615 TXP_FIRST_MCS_40_SDM,
27616 TXP_LAST_MCS_40_SDM);
27619 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27621 rate1 <= TXP_LAST_MCS_40_SDM;
27623 tx_srom_max_rate[rate1] =
27624 tx_srom_max_rate[rate2];
27627 if (NREV_GE(pi->pubpi.phy_rev, 3))
27628 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27630 TXP_FIRST_OFDM_40_SISO,
27631 TXP_LAST_MCS_40_SDM);
27633 tx_srom_max_rate[TXP_MCS_32] =
27634 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27640 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
27642 u16 bw40po, cddpo, stbcpo, bwduppo;
27645 if (pi->sh->sromrev >= 9)
27648 bw40po = (u16) PHY_GETINTVAR(pi, "bw40po");
27649 pi->bw402gpo = bw40po & 0xf;
27650 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27651 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27652 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27654 cddpo = (u16) PHY_GETINTVAR(pi, "cddpo");
27655 pi->cdd2gpo = cddpo & 0xf;
27656 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27657 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27658 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27660 stbcpo = (u16) PHY_GETINTVAR(pi, "stbcpo");
27661 pi->stbc2gpo = stbcpo & 0xf;
27662 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27663 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27664 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27666 bwduppo = (u16) PHY_GETINTVAR(pi, "bwduppo");
27667 pi->bwdup2gpo = bwduppo & 0xf;
27668 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27669 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27670 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27672 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
27674 switch (band_num) {
27677 pi->nphy_txpid2g[PHY_CORE_0] =
27678 (u8) PHY_GETINTVAR(pi, "txpid2ga0");
27679 pi->nphy_txpid2g[PHY_CORE_1] =
27680 (u8) PHY_GETINTVAR(pi, "txpid2ga1");
27681 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
27682 (s8) PHY_GETINTVAR(pi, "maxp2ga0");
27683 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
27684 (s8) PHY_GETINTVAR(pi, "maxp2ga1");
27685 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
27686 (s16) PHY_GETINTVAR(pi, "pa2gw0a0");
27687 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
27688 (s16) PHY_GETINTVAR(pi, "pa2gw0a1");
27689 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
27690 (s16) PHY_GETINTVAR(pi, "pa2gw1a0");
27691 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
27692 (s16) PHY_GETINTVAR(pi, "pa2gw1a1");
27693 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
27694 (s16) PHY_GETINTVAR(pi, "pa2gw2a0");
27695 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
27696 (s16) PHY_GETINTVAR(pi, "pa2gw2a1");
27697 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
27698 (s8) PHY_GETINTVAR(pi, "itt2ga0");
27699 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
27700 (s8) PHY_GETINTVAR(pi, "itt2ga1");
27702 pi->cck2gpo = (u16) PHY_GETINTVAR(pi, "cck2gpo");
27704 pi->ofdm2gpo = (u32) PHY_GETINTVAR(pi, "ofdm2gpo");
27706 pi->mcs2gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs2gpo0");
27707 pi->mcs2gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs2gpo1");
27708 pi->mcs2gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs2gpo2");
27709 pi->mcs2gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs2gpo3");
27710 pi->mcs2gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs2gpo4");
27711 pi->mcs2gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs2gpo5");
27712 pi->mcs2gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs2gpo6");
27713 pi->mcs2gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs2gpo7");
27717 pi->nphy_txpid5g[PHY_CORE_0] =
27718 (u8) PHY_GETINTVAR(pi, "txpid5ga0");
27719 pi->nphy_txpid5g[PHY_CORE_1] =
27720 (u8) PHY_GETINTVAR(pi, "txpid5ga1");
27721 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
27722 (s8) PHY_GETINTVAR(pi, "maxp5ga0");
27723 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
27724 (s8) PHY_GETINTVAR(pi, "maxp5ga1");
27725 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
27726 (s16) PHY_GETINTVAR(pi, "pa5gw0a0");
27727 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
27728 (s16) PHY_GETINTVAR(pi, "pa5gw0a1");
27729 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
27730 (s16) PHY_GETINTVAR(pi, "pa5gw1a0");
27731 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
27732 (s16) PHY_GETINTVAR(pi, "pa5gw1a1");
27733 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
27734 (s16) PHY_GETINTVAR(pi, "pa5gw2a0");
27735 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
27736 (s16) PHY_GETINTVAR(pi, "pa5gw2a1");
27737 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
27738 (s8) PHY_GETINTVAR(pi, "itt5ga0");
27739 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
27740 (s8) PHY_GETINTVAR(pi, "itt5ga1");
27742 pi->ofdm5gpo = (u32) PHY_GETINTVAR(pi, "ofdm5gpo");
27744 pi->mcs5gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs5gpo0");
27745 pi->mcs5gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs5gpo1");
27746 pi->mcs5gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs5gpo2");
27747 pi->mcs5gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs5gpo3");
27748 pi->mcs5gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs5gpo4");
27749 pi->mcs5gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs5gpo5");
27750 pi->mcs5gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs5gpo6");
27751 pi->mcs5gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs5gpo7");
27755 pi->nphy_txpid5gl[0] =
27756 (u8) PHY_GETINTVAR(pi, "txpid5gla0");
27757 pi->nphy_txpid5gl[1] =
27758 (u8) PHY_GETINTVAR(pi, "txpid5gla1");
27759 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
27760 (s8) PHY_GETINTVAR(pi, "maxp5gla0");
27761 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
27762 (s8) PHY_GETINTVAR(pi, "maxp5gla1");
27763 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
27764 (s16) PHY_GETINTVAR(pi, "pa5glw0a0");
27765 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
27766 (s16) PHY_GETINTVAR(pi, "pa5glw0a1");
27767 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
27768 (s16) PHY_GETINTVAR(pi, "pa5glw1a0");
27769 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
27770 (s16) PHY_GETINTVAR(pi, "pa5glw1a1");
27771 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
27772 (s16) PHY_GETINTVAR(pi, "pa5glw2a0");
27773 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
27774 (s16) PHY_GETINTVAR(pi, "pa5glw2a1");
27775 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
27776 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
27778 pi->ofdm5glpo = (u32) PHY_GETINTVAR(pi, "ofdm5glpo");
27781 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
27783 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
27785 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
27787 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
27789 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
27791 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
27793 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
27795 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
27799 pi->nphy_txpid5gh[0] =
27800 (u8) PHY_GETINTVAR(pi, "txpid5gha0");
27801 pi->nphy_txpid5gh[1] =
27802 (u8) PHY_GETINTVAR(pi, "txpid5gha1");
27803 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
27804 (s8) PHY_GETINTVAR(pi, "maxp5gha0");
27805 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
27806 (s8) PHY_GETINTVAR(pi, "maxp5gha1");
27807 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
27808 (s16) PHY_GETINTVAR(pi, "pa5ghw0a0");
27809 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
27810 (s16) PHY_GETINTVAR(pi, "pa5ghw0a1");
27811 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
27812 (s16) PHY_GETINTVAR(pi, "pa5ghw1a0");
27813 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
27814 (s16) PHY_GETINTVAR(pi, "pa5ghw1a1");
27815 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
27816 (s16) PHY_GETINTVAR(pi, "pa5ghw2a0");
27817 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
27818 (s16) PHY_GETINTVAR(pi, "pa5ghw2a1");
27819 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
27820 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
27822 pi->ofdm5ghpo = (u32) PHY_GETINTVAR(pi, "ofdm5ghpo");
27825 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
27827 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
27829 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
27831 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
27833 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
27835 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
27837 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
27839 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
27844 wlc_phy_txpwr_apply_nphy(pi);
27847 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
27850 pi->antswitch = (u8) PHY_GETINTVAR(pi, "antswitch");
27851 pi->aa2g = (u8) PHY_GETINTVAR(pi, "aa2g");
27852 pi->aa5g = (u8) PHY_GETINTVAR(pi, "aa5g");
27854 pi->srom_fem2g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos2g");
27855 pi->srom_fem2g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain2g");
27856 pi->srom_fem2g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange2g");
27857 pi->srom_fem2g.triso = (u8) PHY_GETINTVAR(pi, "triso2g");
27858 pi->srom_fem2g.antswctrllut = (u8) PHY_GETINTVAR(pi, "antswctl2g");
27860 pi->srom_fem5g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos5g");
27861 pi->srom_fem5g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain5g");
27862 pi->srom_fem5g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange5g");
27863 pi->srom_fem5g.triso = (u8) PHY_GETINTVAR(pi, "triso5g");
27864 if (PHY_GETVAR(pi, "antswctl5g"))
27865 pi->srom_fem5g.antswctrllut =
27866 (u8) PHY_GETINTVAR(pi, "antswctl5g");
27868 pi->srom_fem5g.antswctrllut =
27869 (u8) PHY_GETINTVAR(pi, "antswctl2g");
27871 wlc_phy_txpower_ipa_upd(pi);
27873 pi->phy_txcore_disable_temp = (s16) PHY_GETINTVAR(pi, "tempthresh");
27874 if (pi->phy_txcore_disable_temp == 0)
27875 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
27877 pi->phy_tempsense_offset = (s8) PHY_GETINTVAR(pi, "tempoffset");
27878 if (pi->phy_tempsense_offset != 0) {
27879 if (pi->phy_tempsense_offset >
27880 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
27881 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
27882 else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
27883 NPHY_SROM_MINTEMPOFFSET))
27884 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
27886 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
27889 pi->phy_txcore_enable_temp =
27890 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
27892 pi->phycal_tempdelta = (u8) PHY_GETINTVAR(pi, "phycal_tempdelta");
27893 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
27894 pi->phycal_tempdelta = 0;
27896 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
27901 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
27903 u8 tx_pwr_ctrl_state;
27904 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
27905 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
27907 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
27909 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
27910 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
27911 (void)R_REG(&pi->regs->maccontrol);
27915 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
27917 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
27918 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
27921 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
27925 u32 iqcomp, locomp, curr_locomp;
27926 s8 locomp_i, locomp_q;
27927 s8 curr_locomp_i, curr_locomp_q;
27928 u32 tbl_id, tbl_len, tbl_offset;
27931 if (pi->phyhang_avoid)
27932 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27934 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
27938 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
27939 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
27942 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
27943 (iqloCalbuf[1] & 0x3ff)
27944 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
27945 (iqloCalbuf[3] & 0x3ff);
27947 for (idx = 0; idx < tbl_len; idx++)
27948 regval[idx] = iqcomp;
27949 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
27954 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
27955 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
27958 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
27959 locomp_i = (s8) ((locomp >> 8) & 0xff);
27960 locomp_q = (s8) ((locomp) & 0xff);
27961 for (idx = 0; idx < tbl_len; idx++) {
27962 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27963 curr_locomp_i = locomp_i;
27964 curr_locomp_q = locomp_q;
27966 curr_locomp_i = (s8) ((locomp_i *
27967 nphy_tpc_loscale[idx] +
27971 nphy_tpc_loscale[idx] +
27974 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
27975 curr_locomp |= (u32) (curr_locomp_q & 0xff);
27976 regval[idx] = curr_locomp;
27978 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
27982 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
27984 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
27985 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
27988 if (pi->phyhang_avoid)
27989 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27992 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
27996 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27997 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27998 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27999 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28000 TX_SSI_MASTER, 0x5);
28001 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28004 if (pi->pubpi.radiorev != 5)
28005 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28008 if (!NREV_IS(pi->pubpi.phy_rev, 7))
28009 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28012 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28013 core, TSSIG, 0x31);
28015 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28016 TX_SSI_MASTER, 0x9);
28017 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28019 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28022 if (pi->pubpi.radiorev != 5) {
28023 if (!NREV_IS(pi->pubpi.phy_rev, 7))
28024 WRITE_RADIO_REG3(pi, RADIO_2057,
28028 WRITE_RADIO_REG3(pi, RADIO_2057,
28033 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28035 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28037 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28039 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28043 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28044 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28046 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28047 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28049 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28050 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28052 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28054 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28056 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28058 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28060 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28062 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28065 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28066 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28067 TX_SSI_MASTER, 0x5);
28069 if (pi->pubpi.radiorev != 5)
28070 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28072 if (NREV_GE(pi->pubpi.phy_rev, 5))
28073 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28074 core, TSSIG, 0x31);
28076 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28077 core, TSSIG, 0x11);
28078 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28081 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28082 TX_SSI_MASTER, 0x9);
28083 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28085 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28087 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28094 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
28099 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28104 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28106 if (NREV_GE(pi->pubpi.phy_rev, 7))
28107 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28109 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28110 else if (NREV_GE(pi->pubpi.phy_rev, 3))
28111 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28113 wlc_phy_stopplayback_nphy(pi);
28115 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
28119 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
28121 wlc_phy_stopplayback_nphy(pi);
28122 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28124 if (NREV_GE(pi->pubpi.phy_rev, 7))
28125 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28127 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28128 else if (NREV_GE(pi->pubpi.phy_rev, 3))
28129 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28131 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28133 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28134 (u8) ((int_val >> 24) & 0xff);
28135 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28136 (u8) ((int_val >> 24) & 0xff);
28138 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28139 (u8) ((int_val >> 8) & 0xff);
28140 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28141 (u8) ((int_val >> 8) & 0xff);
28143 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28144 (u8) ((int_val >> 24) & 0xff);
28146 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28147 (u8) ((int_val >> 8) & 0xff);
28149 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28150 (u8) ((int_val >> 16) & 0xff);
28151 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28152 (u8) ((int_val) & 0xff);
28157 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
28160 s16 a1[2], b0[2], b1[2];
28161 s8 target_pwr_qtrdbm[2];
28162 s32 num, den, pwr_est;
28163 u8 chan_freq_range;
28165 u32 tbl_id, tbl_len, tbl_offset;
28169 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28170 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28171 (void)R_REG(&pi->regs->maccontrol);
28175 if (pi->phyhang_avoid)
28176 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28178 or_phy_reg(pi, 0x122, (0x1 << 0));
28180 if (NREV_GE(pi->pubpi.phy_rev, 3))
28181 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
28183 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28185 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28186 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28188 if (pi->sh->sromrev < 4) {
28189 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28190 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28191 target_pwr_qtrdbm[0] = 13 * 4;
28192 target_pwr_qtrdbm[1] = 13 * 4;
28201 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28202 switch (chan_freq_range) {
28203 case WL_CHAN_FREQ_RANGE_2G:
28204 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28205 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28206 target_pwr_qtrdbm[0] =
28207 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28208 target_pwr_qtrdbm[1] =
28209 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28210 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28211 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28212 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28213 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28214 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28215 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28217 case WL_CHAN_FREQ_RANGE_5GL:
28218 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28219 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28220 target_pwr_qtrdbm[0] =
28221 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28222 target_pwr_qtrdbm[1] =
28223 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28224 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28225 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28226 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28227 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28228 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28229 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28231 case WL_CHAN_FREQ_RANGE_5GM:
28232 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28233 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28234 target_pwr_qtrdbm[0] =
28235 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28236 target_pwr_qtrdbm[1] =
28237 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28238 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28239 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28240 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28241 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28242 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28243 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28245 case WL_CHAN_FREQ_RANGE_5GH:
28246 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28247 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28248 target_pwr_qtrdbm[0] =
28249 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28250 target_pwr_qtrdbm[1] =
28251 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28252 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28253 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28254 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28255 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28256 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28257 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28260 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28261 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28262 target_pwr_qtrdbm[0] = 13 * 4;
28263 target_pwr_qtrdbm[1] = 13 * 4;
28274 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
28275 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
28277 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28278 if (pi->srom_fem2g.tssipos)
28279 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28281 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28282 for (core = 0; core <= 1; core++) {
28284 if (CHSPEC_IS2G(pi->radio_chanspec))
28285 WRITE_RADIO_REG3(pi, RADIO_2057,
28290 WRITE_RADIO_REG3(pi, RADIO_2057,
28299 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28302 (pi->radio_chanspec)) ?
28304 write_radio_reg(pi,
28305 RADIO_2056_TX_TX_SSI_MUX |
28308 (pi->radio_chanspec)) ?
28312 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28313 RADIO_2056_TX0, 0x11);
28314 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28315 RADIO_2056_TX1, 0x11);
28320 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28321 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28322 (void)R_REG(&pi->regs->maccontrol);
28326 if (NREV_GE(pi->pubpi.phy_rev, 7))
28327 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28328 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28330 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28331 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28333 if (NREV_GE(pi->pubpi.phy_rev, 7))
28334 mod_phy_reg(pi, 0x222, (0xff << 0),
28335 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28336 else if (NREV_GT(pi->pubpi.phy_rev, 1))
28337 mod_phy_reg(pi, 0x222, (0xff << 0),
28338 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28340 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28341 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28343 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28345 write_phy_reg(pi, 0x1e9,
28346 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28348 write_phy_reg(pi, 0x1ea,
28349 (target_pwr_qtrdbm[0] << 0) |
28350 (target_pwr_qtrdbm[1] << 8));
28354 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28355 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28357 for (idx = 0; idx < tbl_len; idx++) {
28359 (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28360 den = 32768 + a1[tbl_id - 26] * idx;
28361 pwr_est = max(((4 * num + den / 2) / den), -8);
28362 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28364 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28368 [tbl_id - 26] + 1);
28370 regval[idx] = (u32) pwr_est;
28372 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28376 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28377 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28378 pi->adj_pwr_tbl_nphy);
28379 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28380 pi->adj_pwr_tbl_nphy);
28382 if (pi->phyhang_avoid)
28383 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28386 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28388 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28389 (0x1 << 14) | (0x1 << 13));
28392 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
28395 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28397 tmp = (tmp & (0x7f << 8)) >> 8;
28402 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
28404 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28406 if (NREV_GT(pi->pubpi.phy_rev, 1))
28407 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28410 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28415 if (wlc_phy_txpwr_ison_nphy(pi)) {
28416 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28417 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28419 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28421 tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28423 (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28429 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28432 && (pi->nphy_force_papd_cal
28433 || (wlc_phy_txpwr_ison_nphy(pi)
28436 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28437 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28439 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28440 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28441 wlc_phy_a4(pi, true);
28444 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28446 u16 mask = 0, val = 0, ishw = 0;
28453 if (pi->phyhang_avoid)
28454 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28456 switch (ctrl_type) {
28457 case PHY_TPC_HW_OFF:
28458 case PHY_TPC_HW_ON:
28459 pi->nphy_txpwrctrl = ctrl_type;
28465 if (ctrl_type == PHY_TPC_HW_OFF) {
28466 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28468 if (wlc_phy_txpwr_ison_nphy(pi)) {
28469 for (core = 0; core < pi->pubpi.phy_corenum;
28471 pi->nphy_txpwr_idx[core] =
28472 wlc_phy_txpwr_idx_cur_get_nphy(
28481 for (ctr = 0; ctr < tbl_len; ctr++)
28483 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28485 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28488 if (NREV_GE(pi->pubpi.phy_rev, 3))
28489 and_phy_reg(pi, 0x1e7,
28490 (u16) (~((0x1 << 15) |
28491 (0x1 << 14) | (0x1 << 13))));
28493 and_phy_reg(pi, 0x1e7,
28494 (u16) (~((0x1 << 14) | (0x1 << 13))));
28496 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28497 or_phy_reg(pi, 0x8f, (0x1 << 8));
28498 or_phy_reg(pi, 0xa5, (0x1 << 8));
28500 or_phy_reg(pi, 0xa5, (0x1 << 14));
28503 if (NREV_IS(pi->pubpi.phy_rev, 2))
28504 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28505 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28506 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28508 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28509 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28510 MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28514 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28515 8, pi->adj_pwr_tbl_nphy);
28516 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28517 8, pi->adj_pwr_tbl_nphy);
28519 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28520 mask = (0x1 << 14) | (0x1 << 13);
28521 val = (ishw << 14) | (ishw << 13);
28523 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28524 mask |= (0x1 << 15);
28525 val |= (ishw << 15);
28528 mod_phy_reg(pi, 0x1e7, mask, val);
28530 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28531 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28532 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28533 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28535 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28536 if (NREV_GT(pi->pubpi.phy_rev, 1))
28537 mod_phy_reg(pi, 0x222,
28538 (0xff << 0), 0x64);
28542 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28543 if ((pi->nphy_txpwr_idx[0] != 128)
28544 && (pi->nphy_txpwr_idx[1] != 128))
28545 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28554 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28555 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28556 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28558 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28561 if (NREV_IS(pi->pubpi.phy_rev, 2))
28562 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28563 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28564 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28566 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28567 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28568 0x0, BRCM_BAND_ALL);
28571 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28572 0x29b, (0x1 << 2), (0) << 2);
28574 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28575 0x29b, (0x1 << 2), (0) << 2);
28581 if (pi->phyhang_avoid)
28582 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28586 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28589 u8 core, txpwrctl_tbl;
28590 u16 tx_ind0, iq_ind0, lo_ind0;
28593 u16 rad_gain, dac_gain;
28596 u16 iqcomp_a, iqcomp_b;
28599 u8 tx_pwr_ctrl_state;
28603 if (pi->phyhang_avoid)
28604 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28610 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28612 if ((core_mask & (1 << core)) == 0)
28615 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28617 if (txpwrindex < 0) {
28618 if (pi->nphy_txpwrindex[core].index < 0)
28621 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28622 mod_phy_reg(pi, 0x8f,
28624 pi->nphy_txpwrindex[core].
28626 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28627 pi->nphy_txpwrindex[core].
28630 mod_phy_reg(pi, 0xa5,
28632 pi->nphy_txpwrindex[core].
28636 write_phy_reg(pi, (core == PHY_CORE_0) ?
28638 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28640 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28641 &pi->nphy_txpwrindex[core].
28644 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28645 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28646 m1m2 |= ((core == PHY_CORE_0) ?
28647 (pi->nphy_txpwrindex[core].bbmult << 8) :
28648 (pi->nphy_txpwrindex[core].bbmult << 0));
28649 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28651 if (restore_cals) {
28652 wlc_phy_table_write_nphy(
28653 pi, 15, 2, (80 + 2 * core), 16,
28654 &pi->nphy_txpwrindex[core].iqcomp_a);
28655 wlc_phy_table_write_nphy(
28656 pi, 15, 1, (85 + core), 16,
28657 &pi->nphy_txpwrindex[core].locomp);
28658 wlc_phy_table_write_nphy(
28659 pi, 15, 1, (93 + core), 16,
28660 &pi->nphy_txpwrindex[core].locomp);
28663 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28665 pi->nphy_txpwrindex[core].index_internal =
28666 pi->nphy_txpwrindex[core].index_internal_save;
28669 if (pi->nphy_txpwrindex[core].index < 0) {
28671 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28672 mod_phy_reg(pi, 0x8f,
28674 pi->nphy_txpwrindex[core].
28676 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28677 pi->nphy_txpwrindex[core].
28680 pi->nphy_txpwrindex[core].
28682 read_phy_reg(pi, 0xa5);
28685 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28686 read_phy_reg(pi, (core == PHY_CORE_0) ?
28689 wlc_phy_table_read_nphy(pi, 7, 1,
28690 (0x110 + core), 16,
28692 nphy_txpwrindex[core].
28695 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28697 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28699 pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28701 wlc_phy_table_read_nphy(pi, 15, 2,
28702 (80 + 2 * core), 16,
28704 nphy_txpwrindex[core].
28707 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28710 nphy_txpwrindex[core].
28713 pi->nphy_txpwrindex[core].index_internal_save =
28714 pi->nphy_txpwrindex[core].
28718 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28719 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28721 if (NREV_IS(pi->pubpi.phy_rev, 1))
28722 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28724 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28725 (tx_ind0 + txpwrindex), 32,
28728 if (NREV_GE(pi->pubpi.phy_rev, 3))
28729 rad_gain = (txgain >> 16) &
28730 ((1 << (32 - 16 + 1)) - 1);
28732 rad_gain = (txgain >> 16) &
28733 ((1 << (28 - 16 + 1)) - 1);
28735 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28736 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28738 if (NREV_GE(pi->pubpi.phy_rev, 3))
28739 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28740 0xa5), (0x1 << 8), (0x1 << 8));
28742 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28744 write_phy_reg(pi, (core == PHY_CORE_0) ?
28745 0xaa : 0xab, dac_gain);
28747 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28750 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28751 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28752 m1m2 |= ((core == PHY_CORE_0) ?
28753 (bbmult << 8) : (bbmult << 0));
28755 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28757 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28758 (iq_ind0 + txpwrindex), 32,
28760 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28761 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28763 if (restore_cals) {
28764 regval[0] = (u16) iqcomp_a;
28765 regval[1] = (u16) iqcomp_b;
28766 wlc_phy_table_write_nphy(pi, 15, 2,
28767 (80 + 2 * core), 16,
28771 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28772 (lo_ind0 + txpwrindex), 32,
28775 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28778 if (NREV_IS(pi->pubpi.phy_rev, 1))
28779 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28782 wlc_phy_table_read_nphy(pi,
28783 (core == PHY_CORE_0 ?
28784 NPHY_TBL_ID_CORE1TXPWRCTL :
28785 NPHY_TBL_ID_CORE2TXPWRCTL),
28786 1, 576 + txpwrindex, 32,
28789 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28790 0x29b, (0x1ff << 4),
28791 ((s16) rfpwr_offset) << 4);
28793 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28794 0x29b, (0x1 << 2), (1) << 2);
28798 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28801 pi->nphy_txpwrindex[core].index = txpwrindex;
28804 if (pi->phyhang_avoid)
28805 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28809 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28812 u8 chan_freq_range;
28814 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28815 switch (chan_freq_range) {
28816 case WL_CHAN_FREQ_RANGE_2G:
28817 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28819 case WL_CHAN_FREQ_RANGE_5GM:
28820 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28822 case WL_CHAN_FREQ_RANGE_5GL:
28823 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28825 case WL_CHAN_FREQ_RANGE_5GH:
28826 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28829 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28836 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28838 u16 clip_off[] = { 0xffff, 0xffff };
28841 if (pi->nphy_deaf_count == 0) {
28842 pi->classifier_state =
28843 wlc_phy_classifier_nphy(pi, 0, 0);
28844 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28845 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28846 wlc_phy_clip_det_nphy(pi, 1, clip_off);
28849 pi->nphy_deaf_count++;
28851 wlc_phy_resetcca_nphy(pi);
28854 pi->nphy_deaf_count--;
28856 if (pi->nphy_deaf_count == 0) {
28857 wlc_phy_classifier_nphy(pi, (0x7 << 0),
28858 pi->classifier_state);
28859 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28864 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28866 wlapi_suspend_mac_and_wait(pi->sh->physhim);
28869 if (pi->nphy_deaf_count == 0)
28870 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28871 } else if (pi->nphy_deaf_count > 0) {
28872 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28875 wlapi_enable_mac(pi->sh->physhim);