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 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
19 #include <linux/kernel.h>
20 #include <linux/delay.h>
21 #include <linux/cordic.h>
23 #include <brcm_hw_ids.h>
25 #include <chipcommon.h>
31 #include "phy_radio.h"
36 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
37 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
38 ((core == PHY_CORE_0) ? \
39 radio_type##_##jspace##0 : \
40 radio_type##_##jspace##1))
42 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
43 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
44 ((core == PHY_CORE_0) ? \
45 radio_type##_##jspace##0 : \
46 radio_type##_##jspace##1), value)
48 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
49 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
51 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
52 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
53 radio_type##_##jspace##0##_##reg_name : \
54 radio_type##_##jspace##1##_##reg_name))
56 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
57 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
58 radio_type##_##jspace##0##_##reg_name : \
59 radio_type##_##jspace##1##_##reg_name), \
62 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
63 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
64 radio_type##_##reg_name##_##jspace##0 : \
65 radio_type##_##reg_name##_##jspace##1))
67 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
68 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
69 radio_type##_##reg_name##_##jspace##0 : \
70 radio_type##_##reg_name##_##jspace##1), \
73 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
74 #define NPHY_ACI_CHANNEL_DELTA 5
75 #define NPHY_ACI_CHANNEL_SKIP 4
76 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
77 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
78 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
79 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
80 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
81 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
83 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
85 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
87 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
89 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
91 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
93 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
95 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
97 #define NPHY_NOISE_ASSOC_ENTER_TH 400
99 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
101 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
102 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
104 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
106 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
108 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
110 #define NPHY_RSSICAL_MAXREAD 31
112 #define NPHY_RSSICAL_NPOLL 8
113 #define NPHY_RSSICAL_MAXD (1<<20)
114 #define NPHY_MIN_RXIQ_PWR 2
116 #define NPHY_RSSICAL_W1_TARGET 25
117 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
118 #define NPHY_RSSICAL_NB_TARGET 0
120 #define NPHY_RSSICAL_W1_TARGET_REV3 29
121 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
123 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
124 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
125 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
126 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
127 NPHY_RSSICAL_MAXREAD)
128 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
129 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
130 NPHY_RSSICAL_MAXREAD)
131 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
132 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
133 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
134 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
135 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
136 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
137 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
139 #define NPHY_IQCAL_NUMGAINS 9
140 #define NPHY_N_GCTL 0x66
142 #define NPHY_PAPD_EPS_TBL_SIZE 64
143 #define NPHY_PAPD_SCL_TBL_SIZE 64
144 #define NPHY_NUM_DIG_FILT_COEFFS 15
146 #define NPHY_PAPD_COMP_OFF 0
147 #define NPHY_PAPD_COMP_ON 1
149 #define NPHY_SROM_TEMPSHIFT 32
150 #define NPHY_SROM_MAXTEMPOFFSET 16
151 #define NPHY_SROM_MINTEMPOFFSET -16
153 #define NPHY_CAL_MAXTEMPDELTA 64
155 #define NPHY_NOISEVAR_TBLLEN40 256
156 #define NPHY_NOISEVAR_TBLLEN20 128
158 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
160 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
162 /* 5357 Chip specific ChipControl register bits */
163 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
164 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
166 #define NPHY_CAL_TSSISAMPS 64
167 #define NPHY_TEST_TONE_FREQ_40MHz 4000
168 #define NPHY_TEST_TONE_FREQ_20MHz 2500
170 #define MAX_205x_RCAL_WAITLOOPS 10000
172 #define NPHY_RXCAL_TONEAMP 181
173 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
174 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
176 #define TXFILT_SHAPING_OFDM20 0
177 #define TXFILT_SHAPING_OFDM40 1
178 #define TXFILT_SHAPING_CCK 2
179 #define TXFILT_DEFAULT_OFDM20 3
180 #define TXFILT_DEFAULT_OFDM40 4
182 struct nphy_iqcal_params
{
192 struct nphy_txiqcal_ladder
{
197 struct nphy_ipa_txcalgains
{
198 struct nphy_txgains gains
;
203 struct nphy_papd_restore_state
{
214 struct nphy_ipa_txrxgain
{
223 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
225 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz
[] = {
226 {0, 0, 0, 0, 0, 100},
234 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz
[] = {
235 {0, 0, 0, 0, 0, 128},
243 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7
[] = {
244 {0, 0, 0, 0, 0, 100},
252 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7
[] = {
262 NPHY_RXCAL_GAIN_INIT
= 0,
267 #define wlc_phy_get_papd_nphy(pi) \
268 (read_phy_reg((pi), 0x1e7) & \
273 static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs
[][NPHY_NUM_DIG_FILT_COEFFS
] = {
274 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
275 230, -44, 230, 201, -191, 201},
276 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
278 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
279 121, -73, 121, 91, 124, 91},
280 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
281 151, 301, 151, 602, -752, 602},
282 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
283 12, 25, 12, 13, 27, 13},
284 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
285 230, -44, 230, 201, -191, 201},
286 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
287 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
290 struct chan_info_nphy_2055
{
306 u8 RF_core1_lgbuf_a_tune
;
307 u8 RF_core1_lgbuf_g_tune
;
308 u8 RF_core1_rxrf_reg1
;
309 u8 RF_core1_tx_pga_pad_tn
;
310 u8 RF_core1_tx_mx_bgtrim
;
311 u8 RF_core2_lgbuf_a_tune
;
312 u8 RF_core2_lgbuf_g_tune
;
313 u8 RF_core2_rxrf_reg1
;
314 u8 RF_core2_tx_pga_pad_tn
;
315 u8 RF_core2_tx_mx_bgtrim
;
324 struct chan_info_nphy_radio205x
{
327 u8 RF_SYN_pll_vcocal1
;
328 u8 RF_SYN_pll_vcocal2
;
329 u8 RF_SYN_pll_refdiv
;
332 u8 RF_SYN_pll_loopfilter1
;
333 u8 RF_SYN_pll_loopfilter2
;
334 u8 RF_SYN_pll_loopfilter3
;
335 u8 RF_SYN_pll_loopfilter4
;
336 u8 RF_SYN_pll_loopfilter5
;
337 u8 RF_SYN_reserved_addr27
;
338 u8 RF_SYN_reserved_addr28
;
339 u8 RF_SYN_reserved_addr29
;
340 u8 RF_SYN_logen_VCOBUF1
;
341 u8 RF_SYN_logen_MIXER2
;
342 u8 RF_SYN_logen_BUF3
;
343 u8 RF_SYN_logen_BUF4
;
346 u8 RF_TX0_intpaa_boost_tune
;
347 u8 RF_TX0_intpag_boost_tune
;
348 u8 RF_TX0_pada_boost_tune
;
349 u8 RF_TX0_padg_boost_tune
;
350 u8 RF_TX0_pgaa_boost_tune
;
351 u8 RF_TX0_pgag_boost_tune
;
352 u8 RF_TX0_mixa_boost_tune
;
353 u8 RF_TX0_mixg_boost_tune
;
356 u8 RF_TX1_intpaa_boost_tune
;
357 u8 RF_TX1_intpag_boost_tune
;
358 u8 RF_TX1_pada_boost_tune
;
359 u8 RF_TX1_padg_boost_tune
;
360 u8 RF_TX1_pgaa_boost_tune
;
361 u8 RF_TX1_pgag_boost_tune
;
362 u8 RF_TX1_mixa_boost_tune
;
363 u8 RF_TX1_mixg_boost_tune
;
372 struct chan_info_nphy_radio2057
{
375 u8 RF_vcocal_countval0
;
376 u8 RF_vcocal_countval1
;
377 u8 RF_rfpll_refmaster_sparextalsize
;
378 u8 RF_rfpll_loopfilter_r1
;
379 u8 RF_rfpll_loopfilter_c2
;
380 u8 RF_rfpll_loopfilter_c1
;
385 u8 RF_logen_mx2g_tune
;
386 u8 RF_logen_mx5g_tune
;
387 u8 RF_logen_indbuf2g_tune
;
388 u8 RF_logen_indbuf5g_tune
;
389 u8 RF_txmix2g_tune_boost_pu_core0
;
390 u8 RF_pad2g_tune_pus_core0
;
391 u8 RF_pga_boost_tune_core0
;
392 u8 RF_txmix5g_boost_tune_core0
;
393 u8 RF_pad5g_tune_misc_pus_core0
;
394 u8 RF_lna2g_tune_core0
;
395 u8 RF_lna5g_tune_core0
;
396 u8 RF_txmix2g_tune_boost_pu_core1
;
397 u8 RF_pad2g_tune_pus_core1
;
398 u8 RF_pga_boost_tune_core1
;
399 u8 RF_txmix5g_boost_tune_core1
;
400 u8 RF_pad5g_tune_misc_pus_core1
;
401 u8 RF_lna2g_tune_core1
;
402 u8 RF_lna5g_tune_core1
;
411 struct chan_info_nphy_radio2057_rev5
{
414 u8 RF_vcocal_countval0
;
415 u8 RF_vcocal_countval1
;
416 u8 RF_rfpll_refmaster_sparextalsize
;
417 u8 RF_rfpll_loopfilter_r1
;
418 u8 RF_rfpll_loopfilter_c2
;
419 u8 RF_rfpll_loopfilter_c1
;
424 u8 RF_logen_mx2g_tune
;
425 u8 RF_logen_indbuf2g_tune
;
426 u8 RF_txmix2g_tune_boost_pu_core0
;
427 u8 RF_pad2g_tune_pus_core0
;
428 u8 RF_lna2g_tune_core0
;
429 u8 RF_txmix2g_tune_boost_pu_core1
;
430 u8 RF_pad2g_tune_pus_core1
;
431 u8 RF_lna2g_tune_core1
;
440 struct nphy_sfo_cfg
{
449 static const struct chan_info_nphy_2055 chan_info_nphy_2055
[] = {
451 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
452 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
453 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
455 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
456 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
457 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
459 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
460 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
461 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
463 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
464 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
465 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
467 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
468 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
469 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
471 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
472 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
473 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
475 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
476 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
477 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
479 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
480 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
481 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
483 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
484 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
485 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
487 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
488 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
489 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
491 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
492 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
493 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
495 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
496 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
497 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
499 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
500 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
501 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
503 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
504 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
505 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
507 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
508 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
509 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
511 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
512 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
513 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
515 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
516 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
517 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
519 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
520 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
521 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
523 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
524 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
525 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
527 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
528 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
529 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
531 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
532 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
533 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
535 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
536 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
537 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
539 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
540 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
541 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
543 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
544 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
545 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
547 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
548 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
549 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
551 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
552 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
553 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
555 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
556 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
557 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
559 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
560 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
561 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
563 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
564 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
565 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
567 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
568 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
569 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
571 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
572 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
573 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
575 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
576 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
577 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
579 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
580 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
581 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
583 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
584 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
585 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
587 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
588 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
589 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
591 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
592 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
593 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
595 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
596 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
597 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
599 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
600 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
601 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
603 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
604 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
605 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
607 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
608 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
609 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
611 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
612 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
613 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
615 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
616 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
617 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
619 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
620 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
621 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
623 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
624 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
625 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
627 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
628 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
629 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
631 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
632 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
633 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
635 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
636 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
637 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
639 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
640 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
641 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
643 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
644 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
645 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
647 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
648 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
649 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
651 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
652 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
653 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
655 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
656 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
657 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
659 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
660 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
661 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
663 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
664 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
665 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
667 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
668 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
669 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
671 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
672 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
673 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
675 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
676 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
677 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
679 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
680 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
681 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
683 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
684 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
685 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
687 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
688 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
689 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
691 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
692 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
693 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
695 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
696 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
697 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
699 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
700 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
701 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
703 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
704 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
705 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
707 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
708 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
709 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
711 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
712 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
713 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
715 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
716 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
717 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
719 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
720 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
721 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
723 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
724 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
725 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
727 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
728 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
729 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
731 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
732 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
733 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
735 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
736 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
737 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
739 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
740 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
741 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
743 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
744 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
745 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
747 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
748 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
749 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
751 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
752 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
753 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
755 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
756 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
757 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
759 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
760 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
761 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
763 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
764 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
765 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
767 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
768 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
769 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
771 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
772 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
773 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
775 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
776 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
777 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
779 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
780 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
781 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
783 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
784 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
785 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
787 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
788 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
789 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
791 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
792 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
793 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
795 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
796 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
797 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
799 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
800 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
801 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
803 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
804 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
805 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
807 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
808 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
809 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
811 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
812 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
813 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
815 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
816 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
817 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
819 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
820 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
821 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
823 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
824 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
825 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
827 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
828 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
829 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
831 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
832 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
833 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
835 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
836 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
837 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
839 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
840 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
841 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
843 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
844 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
845 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
847 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
848 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
849 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
851 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
852 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
853 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
855 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
856 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
857 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
859 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
860 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
861 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
863 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
864 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
865 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
867 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
868 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
869 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
871 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
872 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
873 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
875 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
876 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
877 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
879 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
880 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
881 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
883 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
884 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
885 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
887 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
888 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
889 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
891 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
892 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
893 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
895 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
896 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
897 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
899 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
900 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
901 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
903 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
904 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
905 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
907 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
908 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
909 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
911 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
912 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
913 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
915 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
916 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
917 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
919 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
920 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
921 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
923 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
924 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
925 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
927 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
928 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
929 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
931 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
932 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
933 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
935 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
936 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
937 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
939 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
940 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
941 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
943 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
944 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
945 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
948 static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056
[] = {
950 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
951 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
952 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
953 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
955 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
956 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
957 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
958 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
960 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
961 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
962 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
963 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
965 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
966 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
967 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
968 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
970 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
971 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
972 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
973 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
975 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
976 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
977 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
978 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
980 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
981 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
982 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
983 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
985 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
986 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
987 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
988 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
990 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
991 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
992 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
993 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
995 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
996 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
997 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
998 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1000 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1001 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1002 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1003 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1005 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1006 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1007 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1008 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1010 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1011 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1012 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1013 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1015 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1016 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1017 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1018 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1020 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1021 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1022 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1023 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1025 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1026 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1027 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1028 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1030 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1031 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1032 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1033 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1035 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1036 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1037 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1038 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1040 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1041 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1042 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1043 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1045 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1046 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1047 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1048 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1050 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1051 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1052 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1053 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1055 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1056 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1057 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1058 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1060 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1061 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1062 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1063 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1065 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1066 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1067 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1068 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1070 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1071 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1072 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1073 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1075 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1076 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1077 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1078 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1080 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1081 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1082 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1083 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1085 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1086 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1087 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1088 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1090 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1091 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1092 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1093 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1095 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1096 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1097 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1098 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1100 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1101 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1102 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1103 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1105 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1106 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1107 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1108 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1110 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1111 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1112 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1113 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1115 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1116 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1117 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1118 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1120 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1121 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1122 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1123 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1125 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1126 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1127 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1128 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1130 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1131 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1132 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1133 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1135 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1136 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1137 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1138 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1140 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1141 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1142 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1143 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1145 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1146 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1147 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1148 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1150 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1151 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1152 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1153 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1155 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1156 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1157 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1158 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1160 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1161 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1162 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1163 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1165 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1166 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1167 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1168 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1170 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1171 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1172 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1173 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1175 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1176 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1177 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1178 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1180 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1181 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1182 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1183 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1185 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1186 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1187 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1188 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1190 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1191 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1192 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1193 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1195 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1196 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1197 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1198 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1200 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1201 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1202 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1203 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1205 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1206 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1207 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1208 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1210 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1211 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1212 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1213 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1215 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1216 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1217 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1218 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1220 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1221 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1222 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1223 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1225 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1226 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1227 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1228 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1230 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1231 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1232 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1233 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1235 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1236 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1237 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1238 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1240 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1241 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1242 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1243 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1245 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1246 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1247 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1248 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1250 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1251 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1252 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1253 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1255 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1256 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1257 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1258 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1260 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1261 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1262 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1263 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1265 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1266 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1267 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1268 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1270 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1271 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1272 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1273 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1275 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1276 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1277 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1278 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1280 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1281 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1282 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1283 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1285 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1286 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1287 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1288 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1290 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1291 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1292 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1293 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1295 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1296 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1297 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1298 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1300 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1301 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1302 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1303 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1305 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1306 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1307 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1308 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1310 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1311 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1312 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1313 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1315 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1316 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1317 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1318 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1320 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1321 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1322 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1323 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1325 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1326 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1327 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1328 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1330 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1331 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1332 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1333 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1335 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1336 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1337 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1338 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1340 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1341 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1342 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1343 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1345 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1346 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1347 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1348 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1350 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1351 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1352 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1353 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1355 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1356 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1357 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1358 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1360 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1361 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1362 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1363 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1365 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1366 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1367 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1368 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1370 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1371 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1372 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1373 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1375 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1376 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1377 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1378 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1380 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1381 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1382 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1383 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1385 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1386 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1387 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1388 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1390 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1391 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1392 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1393 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1395 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1396 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1397 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1398 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1400 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1401 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1402 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1403 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1405 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1406 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1407 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1408 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1410 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1411 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1412 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1413 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1415 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1416 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1417 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1418 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1420 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1421 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1422 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1423 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1425 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1426 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1427 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1428 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1430 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1431 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1432 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1433 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1435 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1436 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1437 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1438 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1440 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1441 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1442 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1443 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1445 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1446 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1447 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1448 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1450 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1451 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1452 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1453 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1455 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1456 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1457 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1458 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1460 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1461 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1462 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1463 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1465 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1466 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1467 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1468 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1470 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1471 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1472 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1473 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1475 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1476 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1477 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1478 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1480 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1481 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1482 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1483 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1485 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1486 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1487 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1488 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1490 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1491 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1492 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1493 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1495 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1496 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1497 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1498 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1500 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1501 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1502 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1503 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1505 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1506 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1507 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1508 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1510 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1511 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1512 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1513 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1515 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1516 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1517 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1518 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1520 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1521 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1522 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1523 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1525 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1526 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1527 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1528 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1530 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1531 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1532 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1533 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1535 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1536 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1537 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1538 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1540 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1541 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1542 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1543 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1545 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1546 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1547 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1548 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1550 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1551 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1552 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1553 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1555 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1556 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1557 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1558 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1560 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1561 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1562 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1563 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1565 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1566 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1567 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1568 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1571 static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1
[] = {
1573 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1574 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1575 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1576 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1578 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1579 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1580 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1581 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1583 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1584 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1585 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1586 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1588 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1589 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1590 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1591 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1593 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1594 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1595 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1596 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1598 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1599 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1600 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1601 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1603 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1604 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1605 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1606 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1608 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1609 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1610 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1611 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1613 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1614 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1615 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1616 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1618 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1619 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1620 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1621 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1623 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1624 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1625 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1626 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1628 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1629 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1630 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1631 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1633 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1634 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1635 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1636 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1638 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1639 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1640 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1641 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1643 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1644 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1645 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1646 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1648 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1649 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1650 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1651 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1653 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1654 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1655 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1656 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1658 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1659 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1660 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1661 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1663 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1664 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1665 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1666 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1668 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1669 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1670 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1671 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1673 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1674 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1675 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1676 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1678 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1679 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1680 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1681 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1683 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1684 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1685 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1686 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1688 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1689 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1690 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1691 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1693 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1694 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1695 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1696 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1698 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1699 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1700 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1701 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1703 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1704 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1705 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1706 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1708 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1709 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1710 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1711 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1713 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1714 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1715 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1716 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1718 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1719 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1720 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1721 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1723 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1724 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1725 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1726 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1728 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1729 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1730 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1731 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1733 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1734 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1735 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1736 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1738 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1739 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1740 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1741 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1743 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1744 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1745 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1746 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1748 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1749 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1750 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1751 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1753 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1754 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1755 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1756 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1758 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1759 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1760 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1761 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1763 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1764 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1765 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1766 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1768 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1769 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1770 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1771 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1773 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1774 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1775 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1776 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1778 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1779 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1780 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1781 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1783 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1784 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1785 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1786 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1788 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1789 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1790 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1791 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1793 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1794 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1795 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1796 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1798 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1799 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1800 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1801 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1803 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1804 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1805 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1806 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1808 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1809 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1810 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1811 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1813 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1814 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1815 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1816 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1818 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1819 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1820 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1821 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1823 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1824 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1825 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1826 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1828 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1829 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1830 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1831 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1833 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1834 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1835 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1836 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1838 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1839 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1840 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1841 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1843 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1844 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1845 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1846 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1848 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1849 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1850 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1851 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1853 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1854 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1855 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1856 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1858 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1859 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1860 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1861 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1863 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1864 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1865 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1866 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1868 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1869 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1870 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1871 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1873 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1874 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1875 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1876 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1878 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1879 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1880 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1881 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1883 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1884 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1885 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1886 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1888 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1889 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1890 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1891 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1893 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1894 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1895 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1896 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1898 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1899 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1900 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1901 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1903 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1904 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1905 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1906 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1908 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1909 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1910 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1911 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1913 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1914 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1915 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1916 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1918 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1919 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1920 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1921 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1923 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1924 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1925 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1926 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1928 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1929 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1930 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1931 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1933 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1934 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1935 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1936 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1938 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1939 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1940 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1941 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1943 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1944 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1945 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1946 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1948 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1949 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1950 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1951 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1953 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1954 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1955 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1956 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1958 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1959 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1960 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1961 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1963 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1964 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1965 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1966 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1968 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1969 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1970 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1971 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1973 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1974 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1975 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1976 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1978 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1979 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1980 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1981 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1983 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1984 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1985 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1986 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1988 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1989 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1990 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1991 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1993 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1994 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1995 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1996 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1998 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1999 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
2000 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2001 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2003 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2004 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2005 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2006 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2008 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2009 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2010 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2011 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2013 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2014 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2015 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2016 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2018 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2019 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2020 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2021 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2023 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2024 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2025 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2026 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2028 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2029 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2030 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2031 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2033 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2034 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2035 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2036 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2038 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2039 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2040 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2041 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2043 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2044 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2045 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2046 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2048 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2049 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2050 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2051 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2053 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2054 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2055 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2056 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2058 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2059 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2060 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2061 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2063 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2064 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2065 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2066 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2068 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2069 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2070 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2071 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2073 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2074 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2075 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2076 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2078 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2079 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2080 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2081 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2083 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2084 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2085 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2086 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2088 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2089 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2090 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2091 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2093 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2094 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2095 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2096 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2098 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2099 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2100 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2101 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2103 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2104 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2105 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2106 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2108 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2109 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2110 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2111 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2113 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2114 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2115 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2116 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2118 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2119 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2120 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2121 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2123 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2124 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2125 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2126 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2128 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2129 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2130 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2131 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2133 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2134 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2135 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2136 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2138 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2139 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2140 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2141 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2143 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2144 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2145 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2146 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2148 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2149 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2150 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2151 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2153 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2154 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2155 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2156 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2158 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2159 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2160 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2161 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2163 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2164 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2165 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2166 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2168 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2169 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2170 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2171 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2173 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2174 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2175 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2176 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2178 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2179 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2180 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2181 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2183 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2184 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2185 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2186 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2188 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2189 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2190 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2191 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2194 static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5
[] = {
2196 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2197 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2198 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2199 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2201 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2202 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2203 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2204 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2206 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2207 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2208 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2209 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2211 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2212 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2213 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2214 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2216 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2217 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2218 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2219 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2221 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2222 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2223 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2224 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2226 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2227 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2228 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2229 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2231 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2232 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2233 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2234 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2236 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2237 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2238 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2239 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2241 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2242 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2243 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2244 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2246 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2247 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2248 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2249 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2251 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2252 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2253 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2254 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2256 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2257 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2258 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2259 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2261 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2262 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2263 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2264 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2266 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2267 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2268 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2269 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2271 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2272 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2273 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2274 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2276 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2277 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2278 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2279 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2281 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2282 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2283 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2284 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2286 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2287 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2288 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2289 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2291 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2292 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2293 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2294 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2296 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2297 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2298 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2299 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2301 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2302 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2303 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2304 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2306 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2307 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2308 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2309 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2311 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2312 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2313 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2314 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2316 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2317 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2318 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2319 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2321 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2322 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2323 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2324 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2326 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2327 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2328 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2329 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2331 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2332 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2333 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2334 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2336 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2337 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2338 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2339 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2341 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2342 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2343 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2344 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2346 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2347 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2348 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2349 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2351 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2352 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2353 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2354 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2356 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2357 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2358 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2359 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2361 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2362 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2363 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2364 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2366 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2367 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2368 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2369 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2371 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2372 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2373 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2374 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2376 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2377 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2378 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2379 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2381 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2382 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2383 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2384 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2386 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2387 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2388 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2389 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2391 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2392 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2393 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2394 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2396 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2397 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2398 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2399 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2401 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2402 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2403 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2404 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2406 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2407 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2408 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2409 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2411 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2412 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2413 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2414 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2416 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2417 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2418 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2419 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2421 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2422 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2423 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2424 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2426 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2427 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2428 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2429 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2431 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2432 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2433 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2434 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2436 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2437 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2438 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2439 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2441 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2442 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2443 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2444 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2446 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2447 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2448 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2449 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2451 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2452 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2453 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2454 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2456 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2457 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2458 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2459 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2461 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2462 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2463 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2464 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2466 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2467 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2468 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2469 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2471 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2472 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2473 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2474 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2476 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2477 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2478 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2479 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2481 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2482 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2483 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2484 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2486 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2487 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2488 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2489 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2491 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2492 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2493 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2494 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2496 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2497 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2498 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2499 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2501 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2502 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2503 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2504 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2506 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2507 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2508 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2509 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2511 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2512 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2513 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2514 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2516 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2517 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2518 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2519 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2521 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2522 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2523 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2524 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2526 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2527 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2528 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2529 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2531 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2532 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2533 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2534 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2536 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2537 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2538 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2539 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2541 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2542 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2543 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2544 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2546 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2547 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2548 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2549 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2551 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2552 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2553 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2554 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2556 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2557 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2558 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2559 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2561 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2562 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2563 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2564 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2566 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2567 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2568 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2569 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2571 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2572 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2573 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2574 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2576 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2577 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2578 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2579 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2581 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2582 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2583 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2584 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2586 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2587 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2588 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2589 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2591 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2592 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2593 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2594 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2596 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2597 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2598 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2599 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2601 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2602 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2603 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2604 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2606 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2607 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2608 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2609 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2611 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2612 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2613 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2614 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2616 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2617 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2618 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2619 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2621 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2622 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2623 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2624 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2626 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2627 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2628 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2629 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2631 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2632 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2633 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2634 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2636 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2637 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2638 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2639 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2641 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2642 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2643 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2644 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2646 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2647 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2648 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2649 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2651 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2652 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2653 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2654 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2656 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2657 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2658 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2659 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2661 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2662 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2663 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2664 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2666 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2667 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2668 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2669 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2671 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2672 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2673 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2674 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2676 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2677 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2678 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2679 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2681 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2682 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2683 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2684 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2686 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2687 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2688 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2689 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2691 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2692 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2693 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2694 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2696 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2697 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2698 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2699 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2701 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2702 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2703 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2704 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2706 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2707 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2708 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2709 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2711 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2712 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2713 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2714 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2716 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2717 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2718 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2719 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2721 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2722 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2723 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2724 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2726 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2727 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2728 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2729 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2731 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2732 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2733 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2734 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2736 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2737 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2738 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2739 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2741 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2742 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2743 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2744 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2746 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2747 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2748 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2749 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2751 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2752 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2753 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2754 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2756 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2757 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2758 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2759 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2761 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2762 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2763 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2764 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2766 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2767 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2768 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2769 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2771 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2772 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2773 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2774 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2776 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2777 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2778 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2779 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2781 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2782 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2783 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2784 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2786 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2787 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2788 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2789 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2791 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2792 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2793 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2794 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2796 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2797 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2798 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2799 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2801 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2802 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2803 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2804 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2806 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2807 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2808 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2809 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2811 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2812 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2813 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2814 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2817 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6
[] = {
2819 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2820 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2821 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2822 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2824 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2825 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2826 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2827 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2829 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2830 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2831 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2832 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2834 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2835 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2836 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2837 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2839 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2840 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2841 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2842 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2844 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2845 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2846 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2847 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2849 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2850 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2851 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2852 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2854 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2855 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2856 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2857 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2859 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2860 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2861 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2862 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2864 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2865 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2866 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2867 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2869 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2870 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2871 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2872 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2874 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2875 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2876 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2877 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2879 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2880 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2881 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2882 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2884 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2885 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2886 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2887 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2889 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2890 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2891 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2892 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2894 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2895 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2896 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2897 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2899 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2900 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2901 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2902 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2904 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2905 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2906 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2907 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2909 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2910 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2911 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2912 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2914 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2915 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2916 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2917 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2919 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2920 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2921 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2922 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2924 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2925 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2926 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2927 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2929 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2930 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2931 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2932 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2934 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2935 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2936 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2937 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2939 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2940 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2941 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2942 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2944 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2945 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2946 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2947 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2949 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2950 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2951 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2952 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2954 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2955 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2956 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2957 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2959 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2960 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2961 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2962 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2964 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2965 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2966 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2967 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2969 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2970 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2971 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2972 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2974 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2975 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2976 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2977 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2979 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2980 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2981 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2982 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2984 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2985 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2986 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2987 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2989 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2990 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2991 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2992 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2994 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2995 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2996 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2997 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2999 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3000 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3001 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3002 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3004 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3005 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3006 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3007 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3009 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3010 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3011 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3012 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3014 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3015 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3016 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3017 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3019 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3020 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3021 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3022 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3024 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3025 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3026 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3027 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3029 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3030 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3031 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3032 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3034 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3035 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3036 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3037 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3039 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3040 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3041 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3042 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3044 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3045 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3046 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3047 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3049 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3050 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3051 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3052 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3054 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3055 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3056 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3057 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3059 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3060 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3061 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3062 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3064 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3065 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3066 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3067 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3069 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3070 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3071 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3072 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3074 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3075 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3076 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3077 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3079 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3080 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3081 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3082 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3084 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3085 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3086 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3087 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3089 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3090 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3091 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3092 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3094 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3095 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3096 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3097 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3099 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3100 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3101 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3102 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3104 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3105 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3106 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3107 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3109 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3110 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3111 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3112 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3114 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3115 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3116 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3117 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3119 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3120 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3121 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3122 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3124 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3125 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3126 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3127 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3129 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3130 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3131 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3132 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3134 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3135 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3136 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3137 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3139 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3140 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3141 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3142 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3144 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3145 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3146 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3147 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3149 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3150 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3151 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3152 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3154 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3155 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3156 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3157 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3159 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3160 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3161 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3162 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3164 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3165 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3166 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3167 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3169 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3170 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3171 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3172 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3174 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3175 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3176 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3177 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3179 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3180 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3181 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3182 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3184 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3185 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3186 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3187 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3189 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3190 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3191 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3192 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3194 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3195 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3196 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3197 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3199 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3200 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3201 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3202 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3204 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3205 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3206 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3207 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3209 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3210 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3211 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3212 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3214 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3215 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3216 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3217 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3219 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3220 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3221 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3222 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3224 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3225 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3226 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3227 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3229 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3230 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3231 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3232 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3234 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3235 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3236 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3237 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3239 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3240 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3241 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3242 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3244 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3245 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3246 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3247 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3249 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3250 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3251 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3252 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3254 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3255 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3256 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3257 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3259 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3260 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3261 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3262 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3264 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3265 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3266 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3267 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3269 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3270 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3271 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3272 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3274 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3275 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3276 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3277 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3279 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3280 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3281 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3282 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3284 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3285 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3286 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3287 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3289 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3290 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3291 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3292 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3294 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3295 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3296 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3297 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3299 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3300 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3301 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3302 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3304 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3305 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3306 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3307 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3309 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3310 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3311 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3312 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3314 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3315 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3316 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3317 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3319 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3320 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3321 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3322 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3324 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3325 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3326 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3327 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3329 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3330 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3331 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3332 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3334 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3335 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3336 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3337 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3339 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3340 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3341 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3342 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3344 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3345 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3346 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3347 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3349 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3350 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3351 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3352 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3354 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3355 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3356 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3357 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3359 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3360 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3361 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3362 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3364 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3365 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3366 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3367 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3369 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3370 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3371 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3372 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3374 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3375 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3376 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3377 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3379 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3380 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3381 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3382 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3384 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3385 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3386 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3387 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3389 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3390 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3391 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3392 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3394 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3395 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3396 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3397 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3399 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3400 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3401 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3402 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3404 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3405 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3406 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3407 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3409 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3410 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3411 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3412 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3414 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3415 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3416 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3417 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3419 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3420 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3421 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3422 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3424 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3425 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3426 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3427 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3429 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3430 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3431 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3432 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3434 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3435 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3436 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3437 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3440 static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7
[] = {
3442 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3443 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3444 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3445 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3447 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3448 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3449 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3450 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3452 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3453 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3454 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3455 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3457 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3458 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3459 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3460 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3462 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3463 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3464 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3465 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3467 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3468 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3469 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3470 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3472 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3473 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3474 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3475 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3477 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3478 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3479 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3480 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3482 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3483 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3484 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3485 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3487 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3488 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3489 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3490 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3492 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3493 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3494 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3495 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3497 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3498 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3499 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3500 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3502 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3503 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3504 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3505 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3507 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3508 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3509 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3510 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3512 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3513 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3514 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3515 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3517 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3518 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3519 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3520 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3522 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3523 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3524 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3525 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3527 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3528 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3529 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3530 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3532 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3533 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3534 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3535 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3537 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3538 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3539 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3540 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3542 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3543 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3544 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3545 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3547 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3548 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3549 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3550 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3552 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3553 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3554 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3555 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3557 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3558 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3559 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3560 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3562 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3563 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3564 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3565 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3567 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3568 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3569 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3570 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3572 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3573 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3574 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3575 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3577 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3578 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3579 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3580 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3582 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3583 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3584 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3585 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3587 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3588 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3589 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3590 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3592 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3593 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3594 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3595 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3597 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3598 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3599 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3600 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3602 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3603 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3604 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3605 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3607 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3608 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3609 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3610 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3612 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3613 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3614 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3615 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3617 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3618 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3619 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3620 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3622 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3623 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3624 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3625 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3627 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3628 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3629 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3630 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3632 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3633 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3634 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3635 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3637 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3638 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3639 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3640 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3642 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3643 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3644 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3645 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3647 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3648 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3649 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3650 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3652 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3653 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3654 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3655 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3657 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3658 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3659 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3660 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3662 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3663 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3664 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3665 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3667 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3668 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3669 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3670 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3672 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3673 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3674 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3675 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3677 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3678 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3679 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3680 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3682 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3683 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3684 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3685 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3687 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3688 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3689 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3690 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3692 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3693 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3694 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3695 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3697 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3698 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3699 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3700 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3702 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3703 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3704 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3705 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3707 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3708 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3709 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3710 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3712 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3713 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3714 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3715 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3717 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3718 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3719 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3720 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3722 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3723 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3724 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3725 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3727 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3728 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3729 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3730 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3732 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3733 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3734 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3735 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3737 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3738 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3739 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3740 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3742 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3743 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3744 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3745 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3747 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3748 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3749 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3750 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3752 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3753 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3754 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3755 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3757 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3758 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3759 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3760 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3762 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3763 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3764 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3765 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3767 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3768 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3769 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3770 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3772 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3773 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3774 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3775 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3777 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3778 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3779 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3780 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3782 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3783 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3784 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3785 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3787 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3788 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3789 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3790 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3792 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3793 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3794 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3795 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3797 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3798 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3799 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3800 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3802 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3803 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3804 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3805 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3807 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3808 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3809 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3810 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3812 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3813 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3814 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3815 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3817 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3818 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3819 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3820 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3822 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3823 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3824 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3825 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3827 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3828 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3829 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3830 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3832 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3833 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3834 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3835 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3837 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3838 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3839 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3840 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3842 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3843 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3844 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3845 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3847 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3848 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3849 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3850 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3852 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3853 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3854 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3855 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3857 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3858 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3859 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3860 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3862 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3863 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3864 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3865 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3867 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3868 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3869 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3870 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3872 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3873 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3874 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3875 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3877 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3878 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3879 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3880 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3882 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3883 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3884 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3885 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3887 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3888 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3889 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3890 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3892 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3893 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3894 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3895 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3897 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3898 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3899 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3900 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3902 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3903 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3904 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3905 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3907 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3908 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3909 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3910 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3912 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3913 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3914 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3915 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3917 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3918 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3919 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3920 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3922 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3923 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3924 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3925 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3927 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3928 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3929 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3930 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3932 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3933 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3934 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3935 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3937 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3938 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3939 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3940 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3942 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3943 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3944 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3945 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3947 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3948 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3949 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3950 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3952 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3953 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3954 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3955 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3957 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3958 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3959 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3960 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3962 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3963 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3964 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3965 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3967 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3968 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3969 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3970 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3972 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3973 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3974 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3975 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3977 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3978 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3979 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3980 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3982 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3983 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3984 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3985 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3987 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3988 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3989 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3990 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3992 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3993 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3994 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3995 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3997 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3998 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3999 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4000 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4002 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4003 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
4004 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4005 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4007 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4008 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4009 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4010 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4012 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4013 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4014 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4015 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4017 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4018 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4019 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4020 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4022 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4023 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4024 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4025 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4027 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4028 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4029 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4030 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4032 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4033 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4034 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4035 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4037 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4038 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4039 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4040 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4042 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4043 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4044 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4045 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4047 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4048 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4049 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4050 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4052 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4053 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4054 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4055 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4057 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4058 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4059 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4060 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4063 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8
[] = {
4065 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4066 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4067 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4068 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4070 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4071 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4072 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4073 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4075 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4076 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4077 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4078 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4080 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4081 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4082 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4083 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4085 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4086 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4087 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4088 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4090 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4091 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4092 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4093 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4095 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4096 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4097 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4098 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4100 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4101 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4102 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4103 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4105 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4106 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4107 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4108 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4110 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4111 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4112 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4113 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4115 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4116 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4117 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4118 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4120 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4121 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4122 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4123 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4125 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4126 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4127 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4128 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4130 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4131 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4132 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4133 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4135 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4136 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4137 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4138 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4140 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4141 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4142 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4143 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4145 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4146 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4147 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4148 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4150 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4151 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4152 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4153 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4155 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4156 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4157 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4158 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4160 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4161 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4162 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4163 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4165 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4166 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4167 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4168 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4170 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4171 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4172 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4173 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4175 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4176 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4177 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4178 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4180 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4181 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4182 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4183 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4185 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4186 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4187 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4188 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4190 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4191 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4192 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4193 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4195 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4196 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4197 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4198 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4200 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4201 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4202 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4203 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4205 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4206 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4207 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4208 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4210 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4211 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4212 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4213 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4215 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4216 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4217 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4218 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4220 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4221 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4222 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4223 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4225 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4226 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4227 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4228 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4230 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4231 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4232 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4233 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4235 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4236 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4237 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4238 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4240 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4241 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4242 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4243 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4245 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4246 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4247 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4248 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4250 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4251 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4252 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4253 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4255 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4256 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4257 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4258 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4260 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4261 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4262 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4263 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4265 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4266 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4267 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4268 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4270 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4271 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4272 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4273 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4275 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4276 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4277 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4278 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4280 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4281 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4282 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4283 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4285 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4286 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4287 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4288 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4290 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4291 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4292 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4293 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4295 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4296 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4297 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4298 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4300 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4301 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4302 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4303 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4305 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4306 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4307 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4308 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4310 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4311 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4312 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4313 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4315 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4316 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4317 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4318 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4320 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4321 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4322 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4323 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4325 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4326 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4327 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4328 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4330 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4331 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4332 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4333 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4335 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4336 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4337 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4338 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4340 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4341 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4342 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4343 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4345 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4346 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4347 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4348 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4350 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4351 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4352 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4353 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4355 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4356 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4357 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4358 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4360 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4361 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4362 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4363 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4365 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4366 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4367 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4368 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4370 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4371 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4372 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4373 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4375 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4376 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4377 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4378 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4380 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4381 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4382 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4383 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4385 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4386 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4387 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4388 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4390 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4391 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4392 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4393 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4395 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4396 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4397 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4398 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4400 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4401 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4402 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4403 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4405 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4406 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4407 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4408 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4410 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4411 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4412 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4413 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4415 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4416 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4417 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4418 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4420 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4421 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4422 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4423 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4425 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4426 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4427 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4428 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4430 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4431 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4432 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4433 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4435 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4436 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4437 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4438 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4440 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4441 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4442 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4443 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4445 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4446 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4447 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4448 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4450 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4451 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4452 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4453 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4455 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4456 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4457 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4458 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4460 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4461 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4462 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4463 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4465 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4466 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4467 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4468 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4470 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4471 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4472 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4473 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4475 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4476 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4477 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4478 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4480 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4481 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4482 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4483 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4485 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4486 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4487 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4488 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4490 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4491 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4492 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4493 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4495 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4496 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4497 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4498 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4500 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4501 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4502 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4503 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4505 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4506 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4507 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4508 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4510 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4511 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4512 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4513 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4515 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4516 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4517 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4518 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4520 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4521 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4522 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4523 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4525 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4526 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4527 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4528 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4530 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4531 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4532 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4533 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4535 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4536 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4537 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4538 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4540 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4541 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4542 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4543 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4545 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4546 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4547 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4548 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4550 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4551 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4552 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4553 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4555 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4556 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4557 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4558 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4560 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4561 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4562 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4563 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4565 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4566 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4567 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4568 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4570 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4571 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4572 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4573 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4575 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4576 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4577 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4578 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4580 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4581 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4582 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4583 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4585 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4586 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4587 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4588 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4590 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4591 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4592 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4593 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4595 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4596 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4597 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4598 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4600 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4601 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4602 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4603 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4605 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4606 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4607 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4608 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4610 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4611 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4612 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4613 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4615 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4616 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4617 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4618 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4620 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4621 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4622 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4623 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4625 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4626 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4627 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4628 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4630 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4631 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4632 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4633 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4635 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4636 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4637 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4638 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4640 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4641 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4642 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4643 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4645 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4646 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4647 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4648 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4650 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4651 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4652 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4653 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4655 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4656 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4657 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4658 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4660 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4661 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4662 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4663 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4665 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4666 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4667 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4668 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4670 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4671 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4672 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4673 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4675 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4676 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4677 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4678 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4680 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4681 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4682 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4683 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4686 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11
[] = {
4688 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4689 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4690 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4691 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4693 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4694 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4695 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4696 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4698 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4699 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4700 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4701 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4703 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4704 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4705 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4706 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4708 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4709 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4710 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4711 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4713 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4714 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4715 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4716 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4718 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4719 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4720 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4721 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4723 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4724 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4725 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4726 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4728 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4729 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4730 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4731 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4733 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4734 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4735 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4736 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4738 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4739 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4740 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4741 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4743 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4744 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4745 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4746 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4748 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4749 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4750 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4751 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4753 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4754 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4755 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4756 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4758 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4759 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4760 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4761 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4763 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4764 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4765 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4766 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4768 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4769 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4770 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4771 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4773 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4774 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4775 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4776 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4778 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4779 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4780 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4781 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4783 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4784 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4785 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4786 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4788 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4789 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4790 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4791 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4793 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4794 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4795 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4796 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4798 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4799 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4800 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4801 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4803 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4804 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4805 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4806 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4808 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4809 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4810 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4811 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4813 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4814 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4815 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4816 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4818 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4819 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4820 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4821 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4823 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4824 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4825 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4826 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4828 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4829 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4830 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4831 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4833 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4834 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4835 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4836 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4838 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4839 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4840 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4841 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4843 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4844 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4845 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4846 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4848 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4849 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4850 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4851 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4853 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4854 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4855 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4856 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4858 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4859 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4860 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4861 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4863 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4864 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4865 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4866 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4868 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4869 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4870 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4871 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4873 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4874 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4875 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4876 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4878 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4879 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4880 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4881 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4883 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4884 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4885 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4886 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4888 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4889 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4890 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4891 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4893 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4894 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4895 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4896 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4898 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4899 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4900 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4901 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4903 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4904 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4905 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4906 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4908 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4909 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4910 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4911 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4913 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4914 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4915 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4916 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4918 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4919 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4920 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4921 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4923 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4924 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4925 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4926 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4928 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4929 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4930 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4931 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4933 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4934 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4935 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4936 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4938 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4939 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4940 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4941 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4943 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4944 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4945 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4946 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4948 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4949 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4950 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4951 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4953 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4954 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4955 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4956 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4958 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4959 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4960 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4961 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4963 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4964 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4965 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4966 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4968 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4969 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4970 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4971 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4973 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4974 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4975 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4976 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4978 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4979 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4980 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4981 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4983 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4984 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4985 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4986 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4988 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4989 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4990 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4991 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4993 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4994 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4995 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4996 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4998 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4999 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5000 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5001 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
5003 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5004 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5005 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5006 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
5008 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5009 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5010 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5011 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5013 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5014 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5015 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5016 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5018 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5019 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5020 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5021 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5023 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5024 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5025 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5026 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5028 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5029 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5030 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5031 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5033 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5034 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5035 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5036 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5038 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5039 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5040 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5041 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5043 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5044 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5045 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5046 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5048 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5049 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5050 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5051 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5053 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5054 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5055 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5056 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5058 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5059 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5060 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5061 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5063 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5064 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5065 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5066 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5068 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5069 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5070 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5071 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5073 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5074 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5075 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5076 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5078 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5079 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5080 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5081 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5083 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5084 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5085 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5086 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5088 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5089 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5090 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5091 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5093 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5094 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5095 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5096 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5098 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5099 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5100 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5101 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5103 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5104 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5105 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5106 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5108 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5109 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5110 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5111 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5113 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5114 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5115 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5116 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5118 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5119 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5120 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5121 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5123 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5124 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5125 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5126 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5128 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5129 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5130 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5131 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5133 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5134 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5135 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5136 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5138 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5139 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5140 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5141 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5143 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5144 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5145 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5146 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5148 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5149 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5150 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5151 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5153 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5154 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5155 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5156 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5158 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5159 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5160 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5161 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5163 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5164 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5165 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5166 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5168 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5169 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5170 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5171 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5173 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5174 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5175 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5176 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5178 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5179 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5180 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5181 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5183 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5184 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5185 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5186 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5188 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5189 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5190 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5191 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5193 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5194 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5195 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5196 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5198 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5199 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5200 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5201 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5203 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5204 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5205 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5206 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5208 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5209 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5210 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5211 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5213 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5214 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5215 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5216 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5218 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5219 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5220 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5221 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5223 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5224 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5225 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5226 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5228 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5229 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5230 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5231 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5233 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5234 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5235 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5236 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5238 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5239 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5240 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5241 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5243 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5244 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5245 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5246 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5248 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5249 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5250 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5251 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5253 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5254 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5255 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5256 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5258 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5259 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5260 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5261 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5263 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5264 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5265 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5266 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5268 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5269 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5270 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5271 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5273 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5274 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5275 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5276 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5278 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5279 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5280 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5281 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5283 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5284 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5285 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5286 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5288 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5289 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5290 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5291 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5293 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5294 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5295 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5296 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5298 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5299 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5300 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5301 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5303 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5304 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5305 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5306 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5309 static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4
[] = {
5311 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5312 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5313 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5318 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5319 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5320 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5325 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5326 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5327 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5332 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5333 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5334 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5339 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5340 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5341 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5346 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5347 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5348 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5353 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5354 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5355 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5360 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5361 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5362 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5367 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5368 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5369 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5374 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5375 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5376 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5381 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5382 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5383 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5388 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5389 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5390 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5395 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5396 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5397 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5402 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5403 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5404 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5409 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5410 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5411 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5416 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5417 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5418 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5423 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5424 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5425 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5430 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5431 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5432 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5437 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5438 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5439 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5444 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5445 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5446 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5451 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5452 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5453 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5458 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5459 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5460 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5465 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5466 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5467 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5472 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5473 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5474 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5479 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5480 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5481 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5486 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5487 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5488 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5493 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5494 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5495 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5500 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5501 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5502 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5507 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5508 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5509 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5514 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5515 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5516 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5521 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5522 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5523 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5528 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5529 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5530 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5535 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5536 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5537 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5542 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5543 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5544 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5549 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5550 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5551 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5556 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5557 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5558 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5563 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5564 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5565 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5570 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5571 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5572 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5577 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5578 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5579 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5584 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5585 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5586 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5591 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5592 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5593 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5598 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5599 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5600 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5605 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5606 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5607 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5612 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5613 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5614 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5619 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5620 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5621 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5626 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5627 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5628 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5633 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5634 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5635 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5640 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5641 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5642 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5647 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5648 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5649 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5654 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5655 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5656 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5661 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5662 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5663 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5668 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5669 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5670 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5675 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5676 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5677 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5682 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5683 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5684 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5689 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5690 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5691 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5696 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5697 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5698 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5703 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5704 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5705 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5710 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5711 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5712 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5717 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5718 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5719 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5724 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5725 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5726 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5731 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5732 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5733 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5738 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5739 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5740 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5745 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5746 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5747 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5752 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5753 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5754 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5759 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5760 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5761 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5766 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5767 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5768 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5773 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5774 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5775 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5780 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5781 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5782 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5787 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5788 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5789 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5794 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5795 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5796 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5801 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5802 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5803 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5808 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5809 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5810 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5815 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5816 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5817 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5822 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5823 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5824 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5829 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5830 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5831 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5836 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5837 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5838 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5843 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5844 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5845 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5850 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5851 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5852 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5857 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5858 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5859 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5864 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5865 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5866 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5871 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5872 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5873 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5878 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5879 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5880 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5885 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5886 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5887 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5892 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5893 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5894 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5899 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5900 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5901 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5906 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5907 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5908 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5913 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5914 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5915 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5920 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5921 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5922 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5927 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5928 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5929 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5934 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5935 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5936 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5941 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5942 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5943 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5948 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5949 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5950 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5955 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5956 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5957 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5962 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5963 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5964 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5969 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5970 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5971 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5976 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5977 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5978 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5983 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5984 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5985 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5990 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5991 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5992 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5997 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5998 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5999 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6004 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6005 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6006 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6011 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6012 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6013 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6018 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6019 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6020 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6025 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6026 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6027 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6032 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6033 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6034 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6039 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6040 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6041 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6046 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6047 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6048 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6053 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6054 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6055 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6060 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6061 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6062 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6067 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6068 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6069 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6074 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6075 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6076 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6081 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6082 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6083 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6088 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6089 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6090 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6095 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6096 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6097 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6102 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6103 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6104 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6109 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6110 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6111 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6116 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6117 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6118 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6123 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6124 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6125 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6130 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6131 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6132 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6137 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6138 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6139 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6144 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6145 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6146 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6151 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6152 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6153 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6158 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6159 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6160 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6165 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6166 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6167 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6172 static const struct chan_info_nphy_radio2057_rev5
6173 chan_info_nphyrev8_2057_rev5
[] = {
6175 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6176 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6177 0x043a, 0x043f, 0x0443},
6179 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6180 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6181 0x0438, 0x043d, 0x0441},
6183 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6184 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6185 0x0436, 0x043a, 0x043f},
6187 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6188 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6189 0x0434, 0x0438, 0x043d},
6191 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6192 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6193 0x0431, 0x0436, 0x043a},
6195 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6196 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6197 0x042f, 0x0434, 0x0438},
6199 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6200 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6201 0x042d, 0x0431, 0x0436},
6203 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6204 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6205 0x042b, 0x042f, 0x0434},
6207 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6208 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6209 0x0429, 0x042d, 0x0431},
6211 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6212 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6213 0x0427, 0x042b, 0x042f},
6215 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6216 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6217 0x0424, 0x0429, 0x042d},
6219 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6220 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6221 0x0422, 0x0427, 0x042b},
6223 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6224 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6225 0x0420, 0x0424, 0x0429},
6227 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6228 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6229 0x041b, 0x041f, 0x0424}
6232 static const struct chan_info_nphy_radio2057_rev5
6233 chan_info_nphyrev9_2057_rev5v1
[] = {
6235 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6236 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6237 0x043a, 0x043f, 0x0443},
6239 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6240 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6241 0x0438, 0x043d, 0x0441},
6243 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6244 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6245 0x0436, 0x043a, 0x043f},
6247 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6248 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6249 0x0434, 0x0438, 0x043d},
6251 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6252 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6253 0x0431, 0x0436, 0x043a},
6255 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6256 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6257 0x042f, 0x0434, 0x0438},
6259 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6260 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6261 0x042d, 0x0431, 0x0436},
6263 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6264 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6265 0x042b, 0x042f, 0x0434},
6267 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6268 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6269 0x0429, 0x042d, 0x0431},
6271 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6272 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6273 0x0427, 0x042b, 0x042f},
6275 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6276 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6277 0x0424, 0x0429, 0x042d},
6279 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6280 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6281 0x0422, 0x0427, 0x042b},
6283 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6284 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6285 0x0420, 0x0424, 0x0429},
6287 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6288 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6289 0x041b, 0x041f, 0x0424}
6292 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7
[] = {
6294 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6295 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6296 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6300 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6301 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6302 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6306 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6307 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6308 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6312 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6313 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6314 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6318 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6319 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6320 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6324 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6325 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6326 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6330 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6332 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6336 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6337 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6338 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6342 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6343 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6344 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6348 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6349 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6350 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6354 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6355 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6356 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6360 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6361 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6362 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6366 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6367 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6368 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6372 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6373 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6374 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6378 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6379 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6380 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6384 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6385 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6386 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6390 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6391 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6392 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6396 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6397 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6398 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6402 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6403 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6404 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6408 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6409 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6410 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6414 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6415 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6416 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6420 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6421 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6422 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6426 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6427 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6428 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6432 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6433 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6434 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6438 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6439 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6440 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6444 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6445 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6446 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6450 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6451 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6452 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6456 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6457 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6458 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6462 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6463 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6464 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6468 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6469 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6470 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6474 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6475 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6476 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6480 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6481 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6482 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6486 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6487 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6488 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6492 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6493 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6494 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6498 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6499 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6500 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6504 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6505 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6506 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6510 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6511 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6512 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6516 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6517 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6518 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6522 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6523 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6524 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6528 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6529 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6530 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6534 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6535 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6536 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6540 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6541 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6542 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6546 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6547 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6548 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6552 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6553 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6554 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6558 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6559 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6560 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6564 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6565 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6566 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6570 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6571 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6572 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6576 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6577 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6578 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6582 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6583 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6584 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6588 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6589 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6590 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6594 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6595 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6596 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6600 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6601 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6602 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6606 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6607 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6608 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6612 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6613 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6614 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6618 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6619 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6620 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6624 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6625 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6626 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6630 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6631 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6632 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6636 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6637 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6638 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6642 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6643 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6644 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6648 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6649 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6650 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6654 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6655 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6656 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6660 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6661 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6662 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6666 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6667 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6668 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6672 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6673 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6674 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6678 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6679 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6680 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6684 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6685 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6686 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6690 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6691 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6692 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6696 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6697 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6698 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6702 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6703 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6704 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6708 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6709 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6710 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6714 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6715 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6716 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6720 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6721 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6722 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6726 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6727 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6728 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6732 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6733 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6734 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6738 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6739 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6740 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6744 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6745 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6746 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6750 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6751 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6752 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6756 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6757 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6758 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6762 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6763 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6764 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6768 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6769 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6770 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6774 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6775 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6776 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6780 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6781 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6782 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6786 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6787 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6788 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6792 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6793 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6794 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6798 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6799 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6800 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6804 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6805 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6806 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6810 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6811 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6812 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6816 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6817 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6818 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6822 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6823 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6824 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6828 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6829 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6830 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6834 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6835 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6836 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6840 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6841 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6842 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6846 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6847 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6848 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6852 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6853 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6854 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6858 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6859 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6860 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6864 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6865 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6866 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6870 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6871 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6872 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6876 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6877 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6878 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6882 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6883 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6884 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6888 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6889 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6890 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6894 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6895 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6896 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6900 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6901 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6902 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6906 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6907 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6908 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6912 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6913 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6914 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6918 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6919 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6920 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6924 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6925 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6926 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6930 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6931 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6932 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6936 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6937 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6938 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6942 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6943 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6944 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6948 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6949 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6950 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6954 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6955 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6956 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6960 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6961 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6962 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6966 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6967 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6968 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6972 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6973 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6974 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6978 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6979 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6980 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6984 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6985 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6986 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6990 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6991 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6992 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6996 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6997 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6998 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7002 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7003 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7004 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7008 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7009 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7010 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7014 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7015 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7016 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7020 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7021 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7022 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7026 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7027 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7028 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7033 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8
[] = {
7035 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7036 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7037 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7041 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7042 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7043 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7047 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7048 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7049 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7053 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7054 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7055 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7059 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7060 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7061 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7065 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7066 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7067 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7071 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7072 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7073 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7077 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7078 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7079 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7083 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7084 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7085 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7089 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7090 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7091 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7095 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7096 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7097 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7101 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7102 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7103 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7107 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7108 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7109 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7113 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7114 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7115 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7119 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7120 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7121 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7125 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7126 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7127 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7131 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7132 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7133 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7137 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7138 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7139 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7143 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7144 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7145 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7149 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7150 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7151 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7155 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7156 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7157 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7161 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7162 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7163 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7167 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7168 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7169 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7173 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7174 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7175 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7179 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7180 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7181 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7185 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7186 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7187 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7191 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7192 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7193 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7197 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7198 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7199 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7203 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7204 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7205 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7209 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7210 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7211 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7215 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7216 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7217 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7221 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7222 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7223 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7227 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7228 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7229 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7233 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7234 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7235 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7239 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7240 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7241 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7245 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7246 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7247 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7251 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7252 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7253 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7257 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7258 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7259 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7263 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7264 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7265 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7269 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7270 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7271 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7275 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7276 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7277 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7281 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7282 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7283 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7287 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7288 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7289 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7293 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7294 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7295 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7299 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7300 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7301 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7305 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7306 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7307 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7311 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7312 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7313 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7317 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7318 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7319 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7323 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7324 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7325 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7329 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7330 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7331 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7335 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7336 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7337 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7341 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7342 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7343 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7347 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7348 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7349 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7353 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7354 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7355 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7359 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7360 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7361 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7365 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7366 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7367 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7371 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7372 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7373 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7377 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7378 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7379 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7383 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7384 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7385 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7389 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7390 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7391 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7395 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7396 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7397 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7401 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7402 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7403 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7407 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7408 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7409 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7413 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7414 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7415 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7419 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7420 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7421 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7425 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7426 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7427 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7431 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7432 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7433 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7437 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7438 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7439 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7443 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7444 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7445 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7449 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7450 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7451 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7455 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7456 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7457 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7461 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7462 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7463 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7467 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7468 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7469 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7473 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7474 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7475 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7479 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7480 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7481 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7485 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7486 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7487 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7491 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7492 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7493 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7497 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7498 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7499 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7503 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7504 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7505 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7509 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7510 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7511 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7515 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7516 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7517 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7521 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7522 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7523 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7527 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7528 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7529 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7533 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7534 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7535 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7539 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7540 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7541 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7545 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7546 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7547 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7551 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7552 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7553 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7557 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7558 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7559 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7563 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7564 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7565 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7569 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7570 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7571 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7575 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7576 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7577 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7581 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7582 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7583 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7587 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7588 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7589 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7593 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7594 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7595 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7599 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7600 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7601 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7605 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7606 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7607 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7611 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7612 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7613 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7617 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7618 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7619 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7623 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7624 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7625 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7629 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7630 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7631 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7635 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7636 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7637 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7641 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7642 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7643 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7647 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7648 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7649 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7653 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7654 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7655 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7659 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7660 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7661 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7665 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7666 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7667 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7671 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7672 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7673 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7677 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7678 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7679 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7683 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7684 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7685 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7689 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7690 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7691 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7695 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7696 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7697 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7701 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7702 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7703 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7707 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7708 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7709 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7713 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7714 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7715 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7719 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7720 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7721 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7725 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7726 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7727 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7731 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7732 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7733 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7737 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7738 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7739 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7743 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7744 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7745 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7749 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7750 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7751 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7755 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7756 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7757 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7761 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7762 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7763 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7768 static struct radio_regs regs_2055
[] = {
7769 {0x02, 0x80, 0x80, 0, 0},
7771 {0x04, 0x27, 0x27, 0, 0},
7773 {0x06, 0x27, 0x27, 0, 0},
7774 {0x07, 0x7f, 0x7f, 1, 1},
7775 {0x08, 0x7, 0x7, 1, 1},
7776 {0x09, 0x7f, 0x7f, 1, 1},
7777 {0x0A, 0x7, 0x7, 1, 1},
7778 {0x0B, 0x15, 0x15, 0, 0},
7779 {0x0C, 0x15, 0x15, 0, 0},
7780 {0x0D, 0x4f, 0x4f, 1, 1},
7781 {0x0E, 0x5, 0x5, 1, 1},
7782 {0x0F, 0x4f, 0x4f, 1, 1},
7783 {0x10, 0x5, 0x5, 1, 1},
7784 {0x11, 0xd0, 0xd0, 0, 0},
7785 {0x12, 0x2, 0x2, 0, 0},
7787 {0x14, 0x40, 0x40, 0, 0},
7796 {0x1D, 0xc0, 0xc0, 0, 0},
7797 {0x1E, 0xff, 0xff, 0, 0},
7798 {0x1F, 0xc0, 0xc0, 0, 0},
7799 {0x20, 0xff, 0xff, 0, 0},
7800 {0x21, 0xc0, 0xc0, 0, 0},
7802 {0x23, 0x2c, 0x2c, 0, 0},
7812 {0x2D, 0xa4, 0xa4, 0, 0},
7813 {0x2E, 0x38, 0x38, 0, 0},
7815 {0x30, 0x4, 0x4, 1, 1},
7817 {0x32, 0xa, 0xa, 0, 0},
7818 {0x33, 0x87, 0x87, 0, 0},
7819 {0x34, 0x9, 0x9, 0, 0},
7820 {0x35, 0x70, 0x70, 0, 0},
7821 {0x36, 0x11, 0x11, 0, 0},
7822 {0x37, 0x18, 0x18, 1, 1},
7823 {0x38, 0x6, 0x6, 0, 0},
7824 {0x39, 0x4, 0x4, 1, 1},
7825 {0x3A, 0x6, 0x6, 0, 0},
7826 {0x3B, 0x9e, 0x9e, 0, 0},
7827 {0x3C, 0x9, 0x9, 0, 0},
7828 {0x3D, 0xc8, 0xc8, 1, 1},
7829 {0x3E, 0x88, 0x88, 0, 0},
7833 {0x42, 0x1, 0x1, 0, 0},
7834 {0x43, 0x2, 0x2, 0, 0},
7835 {0x44, 0x96, 0x96, 0, 0},
7836 {0x45, 0x3e, 0x3e, 0, 0},
7837 {0x46, 0x3e, 0x3e, 0, 0},
7838 {0x47, 0x13, 0x13, 0, 0},
7839 {0x48, 0x2, 0x2, 0, 0},
7840 {0x49, 0x15, 0x15, 0, 0},
7841 {0x4A, 0x7, 0x7, 0, 0},
7847 {0x50, 0x8, 0x8, 0, 0},
7848 {0x51, 0x8, 0x8, 0, 0},
7849 {0x52, 0x6, 0x6, 0, 0},
7850 {0x53, 0x84, 0x84, 1, 1},
7851 {0x54, 0xc3, 0xc3, 0, 0},
7852 {0x55, 0x8f, 0x8f, 0, 0},
7853 {0x56, 0xff, 0xff, 0, 0},
7854 {0x57, 0xff, 0xff, 0, 0},
7855 {0x58, 0x88, 0x88, 0, 0},
7856 {0x59, 0x88, 0x88, 0, 0},
7858 {0x5B, 0xcc, 0xcc, 0, 0},
7859 {0x5C, 0x6, 0x6, 0, 0},
7860 {0x5D, 0x80, 0x80, 0, 0},
7861 {0x5E, 0x80, 0x80, 0, 0},
7862 {0x5F, 0xf8, 0xf8, 0, 0},
7863 {0x60, 0x88, 0x88, 0, 0},
7864 {0x61, 0x88, 0x88, 0, 0},
7865 {0x62, 0x88, 0x8, 1, 1},
7866 {0x63, 0x88, 0x88, 0, 0},
7868 {0x65, 0x1, 0x1, 1, 1},
7869 {0x66, 0x8a, 0x8a, 0, 0},
7870 {0x67, 0x8, 0x8, 0, 0},
7871 {0x68, 0x83, 0x83, 0, 0},
7872 {0x69, 0x6, 0x6, 0, 0},
7873 {0x6A, 0xa0, 0xa0, 0, 0},
7874 {0x6B, 0xa, 0xa, 0, 0},
7875 {0x6C, 0x87, 0x87, 1, 1},
7876 {0x6D, 0x2a, 0x2a, 0, 0},
7877 {0x6E, 0x2a, 0x2a, 0, 0},
7878 {0x6F, 0x2a, 0x2a, 0, 0},
7879 {0x70, 0x2a, 0x2a, 0, 0},
7880 {0x71, 0x18, 0x18, 0, 0},
7881 {0x72, 0x6a, 0x6a, 1, 1},
7882 {0x73, 0xab, 0xab, 1, 1},
7883 {0x74, 0x13, 0x13, 1, 1},
7884 {0x75, 0xc1, 0xc1, 1, 1},
7885 {0x76, 0xaa, 0xaa, 1, 1},
7886 {0x77, 0x87, 0x87, 1, 1},
7888 {0x79, 0x6, 0x6, 0, 0},
7889 {0x7A, 0x7, 0x7, 0, 0},
7890 {0x7B, 0x7, 0x7, 0, 0},
7891 {0x7C, 0x15, 0x15, 0, 0},
7892 {0x7D, 0x55, 0x55, 0, 0},
7893 {0x7E, 0x97, 0x97, 1, 1},
7894 {0x7F, 0x8, 0x8, 0, 0},
7895 {0x80, 0x14, 0x14, 1, 1},
7896 {0x81, 0x33, 0x33, 0, 0},
7897 {0x82, 0x88, 0x88, 0, 0},
7898 {0x83, 0x6, 0x6, 0, 0},
7899 {0x84, 0x3, 0x3, 1, 1},
7900 {0x85, 0xa, 0xa, 0, 0},
7901 {0x86, 0x3, 0x3, 1, 1},
7902 {0x87, 0x2a, 0x2a, 0, 0},
7903 {0x88, 0xa4, 0xa4, 0, 0},
7904 {0x89, 0x18, 0x18, 0, 0},
7905 {0x8A, 0x28, 0x28, 0, 0},
7907 {0x8C, 0x4a, 0x4a, 0, 0},
7909 {0x8E, 0xf8, 0xf8, 0, 0},
7910 {0x8F, 0x88, 0x88, 0, 0},
7911 {0x90, 0x88, 0x88, 0, 0},
7912 {0x91, 0x88, 0x8, 1, 1},
7913 {0x92, 0x88, 0x88, 0, 0},
7915 {0x94, 0x1, 0x1, 1, 1},
7916 {0x95, 0x8a, 0x8a, 0, 0},
7917 {0x96, 0x8, 0x8, 0, 0},
7918 {0x97, 0x83, 0x83, 0, 0},
7919 {0x98, 0x6, 0x6, 0, 0},
7920 {0x99, 0xa0, 0xa0, 0, 0},
7921 {0x9A, 0xa, 0xa, 0, 0},
7922 {0x9B, 0x87, 0x87, 1, 1},
7923 {0x9C, 0x2a, 0x2a, 0, 0},
7924 {0x9D, 0x2a, 0x2a, 0, 0},
7925 {0x9E, 0x2a, 0x2a, 0, 0},
7926 {0x9F, 0x2a, 0x2a, 0, 0},
7927 {0xA0, 0x18, 0x18, 0, 0},
7928 {0xA1, 0x6a, 0x6a, 1, 1},
7929 {0xA2, 0xab, 0xab, 1, 1},
7930 {0xA3, 0x13, 0x13, 1, 1},
7931 {0xA4, 0xc1, 0xc1, 1, 1},
7932 {0xA5, 0xaa, 0xaa, 1, 1},
7933 {0xA6, 0x87, 0x87, 1, 1},
7935 {0xA8, 0x6, 0x6, 0, 0},
7936 {0xA9, 0x7, 0x7, 0, 0},
7937 {0xAA, 0x7, 0x7, 0, 0},
7938 {0xAB, 0x15, 0x15, 0, 0},
7939 {0xAC, 0x55, 0x55, 0, 0},
7940 {0xAD, 0x97, 0x97, 1, 1},
7941 {0xAE, 0x8, 0x8, 0, 0},
7942 {0xAF, 0x14, 0x14, 1, 1},
7943 {0xB0, 0x33, 0x33, 0, 0},
7944 {0xB1, 0x88, 0x88, 0, 0},
7945 {0xB2, 0x6, 0x6, 0, 0},
7946 {0xB3, 0x3, 0x3, 1, 1},
7947 {0xB4, 0xa, 0xa, 0, 0},
7948 {0xB5, 0x3, 0x3, 1, 1},
7949 {0xB6, 0x2a, 0x2a, 0, 0},
7950 {0xB7, 0xa4, 0xa4, 0, 0},
7951 {0xB8, 0x18, 0x18, 0, 0},
7952 {0xB9, 0x28, 0x28, 0, 0},
7954 {0xBB, 0x4a, 0x4a, 0, 0},
7956 {0xBD, 0x71, 0x71, 0, 0},
7957 {0xBE, 0x72, 0x72, 0, 0},
7958 {0xBF, 0x73, 0x73, 0, 0},
7959 {0xC0, 0x74, 0x74, 0, 0},
7960 {0xC1, 0x75, 0x75, 0, 0},
7961 {0xC2, 0x76, 0x76, 0, 0},
7962 {0xC3, 0x77, 0x77, 0, 0},
7963 {0xC4, 0x78, 0x78, 0, 0},
7964 {0xC5, 0x79, 0x79, 0, 0},
7965 {0xC6, 0x7a, 0x7a, 0, 0},
7973 {0xCE, 0x6, 0x6, 0, 0},
7976 {0xD1, 0x18, 0x18, 0, 0},
7977 {0xD2, 0x88, 0x88, 0, 0},
7985 {0xDA, 0x6, 0x6, 0, 0},
7988 {0xDD, 0x18, 0x18, 0, 0},
7989 {0xDE, 0x88, 0x88, 0, 0},
7994 {0xFFFF, 0, 0, 0, 0},
7997 static struct radio_regs regs_SYN_2056
[] = {
8005 {0x09, 0x1, 0x1, 0, 0},
8030 {0x22, 0x60, 0x60, 0, 0},
8031 {0x23, 0x6, 0x6, 0, 0},
8032 {0x24, 0xc, 0xc, 0, 0},
8036 {0x28, 0x1, 0x1, 0, 0},
8042 {0x2E, 0xd, 0xd, 0, 0},
8043 {0x2F, 0x1f, 0x1f, 0, 0},
8044 {0x30, 0x15, 0x15, 0, 0},
8045 {0x31, 0xf, 0xf, 0, 0},
8056 {0x3C, 0x13, 0x13, 0, 0},
8057 {0x3D, 0xf, 0xf, 0, 0},
8058 {0x3E, 0x18, 0x18, 0, 0},
8061 {0x41, 0x20, 0x20, 0, 0},
8062 {0x42, 0x20, 0x20, 0, 0},
8064 {0x44, 0x77, 0x77, 0, 0},
8065 {0x45, 0x7, 0x7, 0, 0},
8066 {0x46, 0x1, 0x1, 0, 0},
8067 {0x47, 0x4, 0x4, 0, 0},
8068 {0x48, 0xf, 0xf, 0, 0},
8069 {0x49, 0x30, 0x30, 0, 0},
8070 {0x4A, 0x32, 0x32, 0, 0},
8071 {0x4B, 0xd, 0xd, 0, 0},
8072 {0x4C, 0xd, 0xd, 0, 0},
8073 {0x4D, 0x4, 0x4, 0, 0},
8074 {0x4E, 0x6, 0x6, 0, 0},
8075 {0x4F, 0x1, 0x1, 0, 0},
8076 {0x50, 0x1c, 0x1c, 0, 0},
8077 {0x51, 0x2, 0x2, 0, 0},
8078 {0x52, 0x2, 0x2, 0, 0},
8079 {0x53, 0xf7, 0xf7, 1, 1},
8080 {0x54, 0xb4, 0xb4, 0, 0},
8081 {0x55, 0xd2, 0xd2, 0, 0},
8084 {0x58, 0x4, 0x4, 0, 0},
8085 {0x59, 0x96, 0x96, 0, 0},
8086 {0x5A, 0x3e, 0x3e, 0, 0},
8087 {0x5B, 0x3e, 0x3e, 0, 0},
8088 {0x5C, 0x13, 0x13, 0, 0},
8089 {0x5D, 0x2, 0x2, 0, 0},
8091 {0x5F, 0x7, 0x7, 0, 0},
8092 {0x60, 0x7, 0x7, 1, 1},
8093 {0x61, 0x8, 0x8, 0, 0},
8094 {0x62, 0x3, 0x3, 0, 0},
8100 {0x68, 0x40, 0x40, 0, 0},
8105 {0x6D, 0x1, 0x1, 0, 0},
8108 {0x70, 0x60, 0x60, 0, 0},
8109 {0x71, 0x66, 0x66, 0, 0},
8110 {0x72, 0xc, 0xc, 0, 0},
8111 {0x73, 0x66, 0x66, 0, 0},
8112 {0x74, 0x8f, 0x8f, 1, 1},
8114 {0x76, 0xcc, 0xcc, 0, 0},
8115 {0x77, 0x1, 0x1, 0, 0},
8116 {0x78, 0x66, 0x66, 0, 0},
8117 {0x79, 0x66, 0x66, 0, 0},
8129 {0x85, 0xff, 0xff, 0, 0},
8155 {0x9F, 0x6, 0x6, 0, 0},
8156 {0xA0, 0x66, 0x66, 0, 0},
8157 {0xA1, 0x66, 0x66, 0, 0},
8158 {0xA2, 0x66, 0x66, 0, 0},
8159 {0xA3, 0x66, 0x66, 0, 0},
8160 {0xA4, 0x66, 0x66, 0, 0},
8161 {0xA5, 0x66, 0x66, 0, 0},
8162 {0xA6, 0x66, 0x66, 0, 0},
8163 {0xA7, 0x66, 0x66, 0, 0},
8164 {0xA8, 0x66, 0x66, 0, 0},
8165 {0xA9, 0x66, 0x66, 0, 0},
8166 {0xAA, 0x66, 0x66, 0, 0},
8167 {0xAB, 0x66, 0x66, 0, 0},
8168 {0xAC, 0x66, 0x66, 0, 0},
8169 {0xAD, 0x66, 0x66, 0, 0},
8170 {0xAE, 0x66, 0x66, 0, 0},
8171 {0xAF, 0x66, 0x66, 0, 0},
8172 {0xB0, 0x66, 0x66, 0, 0},
8173 {0xB1, 0x66, 0x66, 0, 0},
8174 {0xB2, 0x66, 0x66, 0, 0},
8175 {0xB3, 0xa, 0xa, 0, 0},
8179 {0xFFFF, 0, 0, 0, 0}
8182 static struct radio_regs regs_TX_2056
[] = {
8214 {0x21, 0x88, 0x88, 0, 0},
8215 {0x22, 0x88, 0x88, 0, 0},
8216 {0x23, 0x88, 0x88, 0, 0},
8217 {0x24, 0x88, 0x88, 0, 0},
8218 {0x25, 0xc, 0xc, 0, 0},
8220 {0x27, 0x3, 0x3, 0, 0},
8222 {0x29, 0x3, 0x3, 0, 0},
8223 {0x2A, 0x37, 0x37, 0, 0},
8224 {0x2B, 0x3, 0x3, 0, 0},
8227 {0x2E, 0x1, 0x1, 0, 0},
8228 {0x2F, 0x1, 0x1, 0, 0},
8232 {0x33, 0x11, 0x11, 0, 0},
8233 {0x34, 0x11, 0x11, 0, 0},
8236 {0x37, 0x3, 0x3, 0, 0},
8237 {0x38, 0xf, 0xf, 0, 0},
8239 {0x3A, 0x2d, 0x2d, 0, 0},
8241 {0x3C, 0x6e, 0x6e, 0, 0},
8242 {0x3D, 0xf0, 0xf0, 1, 1},
8246 {0x41, 0x3, 0x3, 0, 0},
8247 {0x42, 0x3, 0x3, 0, 0},
8249 {0x44, 0x1e, 0x1e, 0, 0},
8251 {0x46, 0x6e, 0x6e, 0, 0},
8252 {0x47, 0xf0, 0xf0, 1, 1},
8254 {0x49, 0x2, 0x2, 0, 0},
8255 {0x4A, 0xff, 0xff, 1, 1},
8256 {0x4B, 0xc, 0xc, 0, 0},
8258 {0x4D, 0x38, 0x38, 0, 0},
8259 {0x4E, 0x70, 0x70, 1, 1},
8260 {0x4F, 0x2, 0x2, 0, 0},
8261 {0x50, 0x88, 0x88, 0, 0},
8262 {0x51, 0xc, 0xc, 0, 0},
8264 {0x53, 0x8, 0x8, 0, 0},
8265 {0x54, 0x70, 0x70, 1, 1},
8266 {0x55, 0x2, 0x2, 0, 0},
8267 {0x56, 0xff, 0xff, 1, 1},
8269 {0x58, 0x83, 0x83, 0, 0},
8270 {0x59, 0x77, 0x77, 1, 1},
8272 {0x5B, 0x2, 0x2, 0, 0},
8273 {0x5C, 0x88, 0x88, 0, 0},
8275 {0x5E, 0x8, 0x8, 0, 0},
8276 {0x5F, 0x77, 0x77, 1, 1},
8277 {0x60, 0x1, 0x1, 0, 0},
8279 {0x62, 0x7, 0x7, 0, 0},
8281 {0x64, 0x7, 0x7, 0, 0},
8284 {0x67, 0x74, 0x74, 1, 1},
8286 {0x69, 0xa, 0xa, 0, 0},
8294 {0x71, 0x2, 0x2, 0, 0},
8297 {0x74, 0xe, 0xe, 0, 0},
8298 {0x75, 0xe, 0xe, 0, 0},
8299 {0x76, 0xe, 0xe, 0, 0},
8300 {0x77, 0x13, 0x13, 0, 0},
8301 {0x78, 0x13, 0x13, 0, 0},
8302 {0x79, 0x1b, 0x1b, 0, 0},
8303 {0x7A, 0x1b, 0x1b, 0, 0},
8304 {0x7B, 0x55, 0x55, 0, 0},
8305 {0x7C, 0x5b, 0x5b, 0, 0},
8328 {0xFFFF, 0, 0, 0, 0}
8331 static struct radio_regs regs_RX_2056
[] = {
8362 {0x20, 0x3, 0x3, 0, 0},
8365 {0x23, 0x90, 0x90, 0, 0},
8366 {0x24, 0x55, 0x55, 0, 0},
8367 {0x25, 0x15, 0x15, 0, 0},
8368 {0x26, 0x5, 0x5, 0, 0},
8369 {0x27, 0x15, 0x15, 0, 0},
8370 {0x28, 0x5, 0x5, 0, 0},
8371 {0x29, 0x20, 0x20, 0, 0},
8372 {0x2A, 0x11, 0x11, 0, 0},
8373 {0x2B, 0x90, 0x90, 0, 0},
8375 {0x2D, 0x88, 0x88, 0, 0},
8376 {0x2E, 0x32, 0x32, 0, 0},
8377 {0x2F, 0x77, 0x77, 0, 0},
8378 {0x30, 0x17, 0x17, 1, 1},
8379 {0x31, 0xff, 0xff, 1, 1},
8380 {0x32, 0x20, 0x20, 0, 0},
8382 {0x34, 0x88, 0x88, 0, 0},
8383 {0x35, 0x32, 0x32, 0, 0},
8384 {0x36, 0x77, 0x77, 0, 0},
8385 {0x37, 0x17, 0x17, 1, 1},
8386 {0x38, 0xf0, 0xf0, 1, 1},
8387 {0x39, 0x20, 0x20, 0, 0},
8388 {0x3A, 0x8, 0x8, 0, 0},
8389 {0x3B, 0x99, 0x99, 0, 0},
8391 {0x3D, 0x44, 0x44, 1, 1},
8393 {0x3F, 0x44, 0x44, 0, 0},
8394 {0x40, 0xf, 0xf, 1, 1},
8395 {0x41, 0x6, 0x6, 0, 0},
8396 {0x42, 0x4, 0x4, 0, 0},
8397 {0x43, 0x50, 0x50, 1, 1},
8398 {0x44, 0x8, 0x8, 0, 0},
8399 {0x45, 0x99, 0x99, 0, 0},
8401 {0x47, 0x11, 0x11, 0, 0},
8403 {0x49, 0x44, 0x44, 0, 0},
8404 {0x4A, 0x7, 0x7, 0, 0},
8405 {0x4B, 0x6, 0x6, 0, 0},
8406 {0x4C, 0x4, 0x4, 0, 0},
8409 {0x4F, 0x66, 0x66, 0, 0},
8410 {0x50, 0x66, 0x66, 0, 0},
8411 {0x51, 0x57, 0x57, 0, 0},
8412 {0x52, 0x57, 0x57, 0, 0},
8413 {0x53, 0x44, 0x44, 0, 0},
8416 {0x56, 0x8, 0x8, 0, 0},
8417 {0x57, 0x8, 0x8, 0, 0},
8418 {0x58, 0x7, 0x7, 0, 0},
8419 {0x59, 0x22, 0x22, 0, 0},
8420 {0x5A, 0x22, 0x22, 0, 0},
8421 {0x5B, 0x2, 0x2, 0, 0},
8422 {0x5C, 0x23, 0x23, 0, 0},
8423 {0x5D, 0x7, 0x7, 0, 0},
8424 {0x5E, 0x55, 0x55, 0, 0},
8425 {0x5F, 0x23, 0x23, 0, 0},
8426 {0x60, 0x41, 0x41, 0, 0},
8427 {0x61, 0x1, 0x1, 0, 0},
8428 {0x62, 0xa, 0xa, 0, 0},
8437 {0x6B, 0xc, 0xc, 0, 0},
8444 {0x72, 0x22, 0x22, 0, 0},
8445 {0x73, 0x22, 0x22, 0, 0},
8446 {0x74, 0x2, 0x2, 0, 0},
8447 {0x75, 0xa, 0xa, 0, 0},
8448 {0x76, 0x1, 0x1, 0, 0},
8449 {0x77, 0x22, 0x22, 0, 0},
8450 {0x78, 0x30, 0x30, 0, 0},
8479 {0xFFFF, 0, 0, 0, 0}
8482 static struct radio_regs regs_SYN_2056_A1
[] = {
8490 {0x09, 0x1, 0x1, 0, 0},
8515 {0x22, 0x60, 0x60, 0, 0},
8516 {0x23, 0x6, 0x6, 0, 0},
8517 {0x24, 0xc, 0xc, 0, 0},
8521 {0x28, 0x1, 0x1, 0, 0},
8527 {0x2E, 0xd, 0xd, 0, 0},
8528 {0x2F, 0x1f, 0x1f, 0, 0},
8529 {0x30, 0x15, 0x15, 0, 0},
8530 {0x31, 0xf, 0xf, 0, 0},
8541 {0x3C, 0x13, 0x13, 0, 0},
8542 {0x3D, 0xf, 0xf, 0, 0},
8543 {0x3E, 0x18, 0x18, 0, 0},
8546 {0x41, 0x20, 0x20, 0, 0},
8547 {0x42, 0x20, 0x20, 0, 0},
8549 {0x44, 0x77, 0x77, 0, 0},
8550 {0x45, 0x7, 0x7, 0, 0},
8551 {0x46, 0x1, 0x1, 0, 0},
8552 {0x47, 0x4, 0x4, 0, 0},
8553 {0x48, 0xf, 0xf, 0, 0},
8554 {0x49, 0x30, 0x30, 0, 0},
8555 {0x4A, 0x32, 0x32, 0, 0},
8556 {0x4B, 0xd, 0xd, 0, 0},
8557 {0x4C, 0xd, 0xd, 0, 0},
8558 {0x4D, 0x4, 0x4, 0, 0},
8559 {0x4E, 0x6, 0x6, 0, 0},
8560 {0x4F, 0x1, 0x1, 0, 0},
8561 {0x50, 0x1c, 0x1c, 0, 0},
8562 {0x51, 0x2, 0x2, 0, 0},
8563 {0x52, 0x2, 0x2, 0, 0},
8564 {0x53, 0xf7, 0xf7, 1, 1},
8565 {0x54, 0xb4, 0xb4, 0, 0},
8566 {0x55, 0xd2, 0xd2, 0, 0},
8569 {0x58, 0x4, 0x4, 0, 0},
8570 {0x59, 0x96, 0x96, 0, 0},
8571 {0x5A, 0x3e, 0x3e, 0, 0},
8572 {0x5B, 0x3e, 0x3e, 0, 0},
8573 {0x5C, 0x13, 0x13, 0, 0},
8574 {0x5D, 0x2, 0x2, 0, 0},
8576 {0x5F, 0x7, 0x7, 0, 0},
8577 {0x60, 0x7, 0x7, 1, 1},
8578 {0x61, 0x8, 0x8, 0, 0},
8579 {0x62, 0x3, 0x3, 0, 0},
8585 {0x68, 0x40, 0x40, 0, 0},
8590 {0x6D, 0x1, 0x1, 0, 0},
8593 {0x70, 0x60, 0x60, 0, 0},
8594 {0x71, 0x66, 0x66, 0, 0},
8595 {0x72, 0xc, 0xc, 0, 0},
8596 {0x73, 0x66, 0x66, 0, 0},
8597 {0x74, 0x8f, 0x8f, 1, 1},
8599 {0x76, 0xcc, 0xcc, 0, 0},
8600 {0x77, 0x1, 0x1, 0, 0},
8601 {0x78, 0x66, 0x66, 0, 0},
8602 {0x79, 0x66, 0x66, 0, 0},
8614 {0x85, 0xff, 0xff, 0, 0},
8640 {0x9F, 0x6, 0x6, 0, 0},
8641 {0xA0, 0x66, 0x66, 0, 0},
8642 {0xA1, 0x66, 0x66, 0, 0},
8643 {0xA2, 0x66, 0x66, 0, 0},
8644 {0xA3, 0x66, 0x66, 0, 0},
8645 {0xA4, 0x66, 0x66, 0, 0},
8646 {0xA5, 0x66, 0x66, 0, 0},
8647 {0xA6, 0x66, 0x66, 0, 0},
8648 {0xA7, 0x66, 0x66, 0, 0},
8649 {0xA8, 0x66, 0x66, 0, 0},
8650 {0xA9, 0x66, 0x66, 0, 0},
8651 {0xAA, 0x66, 0x66, 0, 0},
8652 {0xAB, 0x66, 0x66, 0, 0},
8653 {0xAC, 0x66, 0x66, 0, 0},
8654 {0xAD, 0x66, 0x66, 0, 0},
8655 {0xAE, 0x66, 0x66, 0, 0},
8656 {0xAF, 0x66, 0x66, 0, 0},
8657 {0xB0, 0x66, 0x66, 0, 0},
8658 {0xB1, 0x66, 0x66, 0, 0},
8659 {0xB2, 0x66, 0x66, 0, 0},
8660 {0xB3, 0xa, 0xa, 0, 0},
8664 {0xFFFF, 0, 0, 0, 0}
8667 static struct radio_regs regs_TX_2056_A1
[] = {
8699 {0x21, 0x88, 0x88, 0, 0},
8700 {0x22, 0x88, 0x88, 0, 0},
8701 {0x23, 0x88, 0x88, 0, 0},
8702 {0x24, 0x88, 0x88, 0, 0},
8703 {0x25, 0xc, 0xc, 0, 0},
8705 {0x27, 0x3, 0x3, 0, 0},
8707 {0x29, 0x3, 0x3, 0, 0},
8708 {0x2A, 0x37, 0x37, 0, 0},
8709 {0x2B, 0x3, 0x3, 0, 0},
8712 {0x2E, 0x1, 0x1, 0, 0},
8713 {0x2F, 0x1, 0x1, 0, 0},
8717 {0x33, 0x11, 0x11, 0, 0},
8718 {0x34, 0x11, 0x11, 0, 0},
8721 {0x37, 0x3, 0x3, 0, 0},
8722 {0x38, 0xf, 0xf, 0, 0},
8724 {0x3A, 0x2d, 0x2d, 0, 0},
8726 {0x3C, 0x6e, 0x6e, 0, 0},
8727 {0x3D, 0xf0, 0xf0, 1, 1},
8731 {0x41, 0x3, 0x3, 0, 0},
8732 {0x42, 0x3, 0x3, 0, 0},
8734 {0x44, 0x1e, 0x1e, 0, 0},
8736 {0x46, 0x6e, 0x6e, 0, 0},
8737 {0x47, 0xf0, 0xf0, 1, 1},
8739 {0x49, 0x2, 0x2, 0, 0},
8740 {0x4A, 0xff, 0xff, 1, 1},
8741 {0x4B, 0xc, 0xc, 0, 0},
8743 {0x4D, 0x38, 0x38, 0, 0},
8744 {0x4E, 0x70, 0x70, 1, 1},
8745 {0x4F, 0x2, 0x2, 0, 0},
8746 {0x50, 0x88, 0x88, 0, 0},
8747 {0x51, 0xc, 0xc, 0, 0},
8749 {0x53, 0x8, 0x8, 0, 0},
8750 {0x54, 0x70, 0x70, 1, 1},
8751 {0x55, 0x2, 0x2, 0, 0},
8752 {0x56, 0xff, 0xff, 1, 1},
8754 {0x58, 0x83, 0x83, 0, 0},
8755 {0x59, 0x77, 0x77, 1, 1},
8757 {0x5B, 0x2, 0x2, 0, 0},
8758 {0x5C, 0x88, 0x88, 0, 0},
8760 {0x5E, 0x8, 0x8, 0, 0},
8761 {0x5F, 0x77, 0x77, 1, 1},
8762 {0x60, 0x1, 0x1, 0, 0},
8764 {0x62, 0x7, 0x7, 0, 0},
8766 {0x64, 0x7, 0x7, 0, 0},
8769 {0x67, 0x72, 0x72, 1, 1},
8771 {0x69, 0xa, 0xa, 0, 0},
8779 {0x71, 0x2, 0x2, 0, 0},
8782 {0x74, 0xe, 0xe, 0, 0},
8783 {0x75, 0xe, 0xe, 0, 0},
8784 {0x76, 0xe, 0xe, 0, 0},
8785 {0x77, 0x13, 0x13, 0, 0},
8786 {0x78, 0x13, 0x13, 0, 0},
8787 {0x79, 0x1b, 0x1b, 0, 0},
8788 {0x7A, 0x1b, 0x1b, 0, 0},
8789 {0x7B, 0x55, 0x55, 0, 0},
8790 {0x7C, 0x5b, 0x5b, 0, 0},
8813 {0xFFFF, 0, 0, 0, 0}
8816 static struct radio_regs regs_RX_2056_A1
[] = {
8847 {0x20, 0x3, 0x3, 0, 0},
8850 {0x23, 0x90, 0x90, 0, 0},
8851 {0x24, 0x55, 0x55, 0, 0},
8852 {0x25, 0x15, 0x15, 0, 0},
8853 {0x26, 0x5, 0x5, 0, 0},
8854 {0x27, 0x15, 0x15, 0, 0},
8855 {0x28, 0x5, 0x5, 0, 0},
8856 {0x29, 0x20, 0x20, 0, 0},
8857 {0x2A, 0x11, 0x11, 0, 0},
8858 {0x2B, 0x90, 0x90, 0, 0},
8860 {0x2D, 0x88, 0x88, 0, 0},
8861 {0x2E, 0x32, 0x32, 0, 0},
8862 {0x2F, 0x77, 0x77, 0, 0},
8863 {0x30, 0x17, 0x17, 1, 1},
8864 {0x31, 0xff, 0xff, 1, 1},
8865 {0x32, 0x20, 0x20, 0, 0},
8867 {0x34, 0x88, 0x88, 0, 0},
8868 {0x35, 0x32, 0x32, 0, 0},
8869 {0x36, 0x77, 0x77, 0, 0},
8870 {0x37, 0x17, 0x17, 1, 1},
8871 {0x38, 0xf0, 0xf0, 1, 1},
8872 {0x39, 0x20, 0x20, 0, 0},
8873 {0x3A, 0x8, 0x8, 0, 0},
8874 {0x3B, 0x55, 0x55, 1, 1},
8876 {0x3D, 0x44, 0x44, 1, 1},
8878 {0x3F, 0x44, 0x44, 0, 0},
8879 {0x40, 0xf, 0xf, 1, 1},
8880 {0x41, 0x6, 0x6, 0, 0},
8881 {0x42, 0x4, 0x4, 0, 0},
8882 {0x43, 0x50, 0x50, 1, 1},
8883 {0x44, 0x8, 0x8, 0, 0},
8884 {0x45, 0x55, 0x55, 1, 1},
8886 {0x47, 0x11, 0x11, 0, 0},
8888 {0x49, 0x44, 0x44, 0, 0},
8889 {0x4A, 0x7, 0x7, 0, 0},
8890 {0x4B, 0x6, 0x6, 0, 0},
8891 {0x4C, 0x4, 0x4, 0, 0},
8894 {0x4F, 0x26, 0x26, 1, 1},
8895 {0x50, 0x26, 0x26, 1, 1},
8896 {0x51, 0xf, 0xf, 1, 1},
8897 {0x52, 0xf, 0xf, 1, 1},
8898 {0x53, 0x44, 0x44, 0, 0},
8901 {0x56, 0x8, 0x8, 0, 0},
8902 {0x57, 0x8, 0x8, 0, 0},
8903 {0x58, 0x7, 0x7, 0, 0},
8904 {0x59, 0x22, 0x22, 0, 0},
8905 {0x5A, 0x22, 0x22, 0, 0},
8906 {0x5B, 0x2, 0x2, 0, 0},
8907 {0x5C, 0x2f, 0x2f, 1, 1},
8908 {0x5D, 0x7, 0x7, 0, 0},
8909 {0x5E, 0x55, 0x55, 0, 0},
8910 {0x5F, 0x23, 0x23, 0, 0},
8911 {0x60, 0x41, 0x41, 0, 0},
8912 {0x61, 0x1, 0x1, 0, 0},
8913 {0x62, 0xa, 0xa, 0, 0},
8922 {0x6B, 0xc, 0xc, 0, 0},
8929 {0x72, 0x22, 0x22, 0, 0},
8930 {0x73, 0x22, 0x22, 0, 0},
8932 {0x75, 0xa, 0xa, 0, 0},
8933 {0x76, 0x1, 0x1, 0, 0},
8934 {0x77, 0x22, 0x22, 0, 0},
8935 {0x78, 0x30, 0x30, 0, 0},
8964 {0xFFFF, 0, 0, 0, 0}
8967 static struct radio_regs regs_SYN_2056_rev5
[] = {
8975 {0x09, 0x1, 0x1, 0, 0},
9000 {0x22, 0x60, 0x60, 0, 0},
9001 {0x23, 0x6, 0x6, 0, 0},
9002 {0x24, 0xc, 0xc, 0, 0},
9006 {0x28, 0x1, 0x1, 0, 0},
9013 {0x2F, 0x1f, 0x1f, 0, 0},
9014 {0x30, 0x15, 0x15, 0, 0},
9015 {0x31, 0xf, 0xf, 0, 0},
9026 {0x3C, 0x13, 0x13, 0, 0},
9027 {0x3D, 0xf, 0xf, 0, 0},
9028 {0x3E, 0x18, 0x18, 0, 0},
9031 {0x41, 0x20, 0x20, 0, 0},
9032 {0x42, 0x20, 0x20, 0, 0},
9034 {0x44, 0x77, 0x77, 0, 0},
9035 {0x45, 0x7, 0x7, 0, 0},
9036 {0x46, 0x1, 0x1, 0, 0},
9037 {0x47, 0x4, 0x4, 0, 0},
9038 {0x48, 0xf, 0xf, 0, 0},
9039 {0x49, 0x30, 0x30, 0, 0},
9040 {0x4A, 0x32, 0x32, 0, 0},
9041 {0x4B, 0xd, 0xd, 0, 0},
9042 {0x4C, 0xd, 0xd, 0, 0},
9043 {0x4D, 0x4, 0x4, 0, 0},
9044 {0x4E, 0x6, 0x6, 0, 0},
9045 {0x4F, 0x1, 0x1, 0, 0},
9046 {0x50, 0x1c, 0x1c, 0, 0},
9047 {0x51, 0x2, 0x2, 0, 0},
9048 {0x52, 0x2, 0x2, 0, 0},
9049 {0x53, 0xf7, 0xf7, 1, 1},
9050 {0x54, 0xb4, 0xb4, 0, 0},
9051 {0x55, 0xd2, 0xd2, 0, 0},
9054 {0x58, 0x4, 0x4, 0, 0},
9055 {0x59, 0x96, 0x96, 0, 0},
9056 {0x5A, 0x3e, 0x3e, 0, 0},
9057 {0x5B, 0x3e, 0x3e, 0, 0},
9058 {0x5C, 0x13, 0x13, 0, 0},
9059 {0x5D, 0x2, 0x2, 0, 0},
9061 {0x5F, 0x7, 0x7, 0, 0},
9062 {0x60, 0x7, 0x7, 1, 1},
9063 {0x61, 0x8, 0x8, 0, 0},
9064 {0x62, 0x3, 0x3, 0, 0},
9070 {0x68, 0x40, 0x40, 0, 0},
9075 {0x6D, 0x1, 0x1, 0, 0},
9078 {0x70, 0x60, 0x60, 0, 0},
9079 {0x71, 0x66, 0x66, 0, 0},
9080 {0x72, 0xc, 0xc, 0, 0},
9081 {0x73, 0x66, 0x66, 0, 0},
9082 {0x74, 0x8f, 0x8f, 1, 1},
9084 {0x76, 0xcc, 0xcc, 0, 0},
9085 {0x77, 0x1, 0x1, 0, 0},
9086 {0x78, 0x66, 0x66, 0, 0},
9087 {0x79, 0x66, 0x66, 0, 0},
9099 {0x85, 0xff, 0xff, 0, 0},
9125 {0x9F, 0x6, 0x6, 0, 0},
9126 {0xA0, 0x66, 0x66, 0, 0},
9127 {0xA1, 0x66, 0x66, 0, 0},
9128 {0xA2, 0x66, 0x66, 0, 0},
9129 {0xA3, 0x66, 0x66, 0, 0},
9130 {0xA4, 0x66, 0x66, 0, 0},
9131 {0xA5, 0x66, 0x66, 0, 0},
9132 {0xA6, 0x66, 0x66, 0, 0},
9133 {0xA7, 0x66, 0x66, 0, 0},
9134 {0xA8, 0x66, 0x66, 0, 0},
9135 {0xA9, 0x66, 0x66, 0, 0},
9136 {0xAA, 0x66, 0x66, 0, 0},
9137 {0xAB, 0x66, 0x66, 0, 0},
9138 {0xAC, 0x66, 0x66, 0, 0},
9139 {0xAD, 0x66, 0x66, 0, 0},
9140 {0xAE, 0x66, 0x66, 0, 0},
9141 {0xAF, 0x66, 0x66, 0, 0},
9142 {0xB0, 0x66, 0x66, 0, 0},
9143 {0xB1, 0x66, 0x66, 0, 0},
9144 {0xB2, 0x66, 0x66, 0, 0},
9145 {0xB3, 0xa, 0xa, 0, 0},
9149 {0xFFFF, 0, 0, 0, 0}
9152 static struct radio_regs regs_TX_2056_rev5
[] = {
9184 {0x21, 0x88, 0x88, 0, 0},
9185 {0x22, 0x88, 0x88, 0, 0},
9186 {0x23, 0x88, 0x88, 0, 0},
9187 {0x24, 0x88, 0x88, 0, 0},
9188 {0x25, 0xc, 0xc, 0, 0},
9190 {0x27, 0x3, 0x3, 0, 0},
9192 {0x29, 0x3, 0x3, 0, 0},
9193 {0x2A, 0x37, 0x37, 0, 0},
9194 {0x2B, 0x3, 0x3, 0, 0},
9197 {0x2E, 0x1, 0x1, 0, 0},
9198 {0x2F, 0x1, 0x1, 0, 0},
9202 {0x33, 0x11, 0x11, 0, 0},
9203 {0x34, 0x11, 0x11, 0, 0},
9206 {0x37, 0x3, 0x3, 0, 0},
9207 {0x38, 0xf, 0xf, 0, 0},
9209 {0x3A, 0x2d, 0x2d, 0, 0},
9211 {0x3C, 0x6e, 0x6e, 0, 0},
9212 {0x3D, 0xf0, 0xf0, 1, 1},
9216 {0x41, 0x3, 0x3, 0, 0},
9217 {0x42, 0x3, 0x3, 0, 0},
9219 {0x44, 0x1e, 0x1e, 0, 0},
9221 {0x46, 0x6e, 0x6e, 0, 0},
9222 {0x47, 0xf0, 0xf0, 1, 1},
9224 {0x49, 0x2, 0x2, 0, 0},
9225 {0x4A, 0xff, 0xff, 1, 1},
9226 {0x4B, 0xc, 0xc, 0, 0},
9228 {0x4D, 0x38, 0x38, 0, 0},
9229 {0x4E, 0x70, 0x70, 1, 1},
9230 {0x4F, 0x2, 0x2, 0, 0},
9231 {0x50, 0x88, 0x88, 0, 0},
9232 {0x51, 0xc, 0xc, 0, 0},
9234 {0x53, 0x8, 0x8, 0, 0},
9235 {0x54, 0x70, 0x70, 1, 1},
9236 {0x55, 0x2, 0x2, 0, 0},
9237 {0x56, 0xff, 0xff, 1, 1},
9239 {0x58, 0x83, 0x83, 0, 0},
9240 {0x59, 0x77, 0x77, 1, 1},
9242 {0x5B, 0x2, 0x2, 0, 0},
9243 {0x5C, 0x88, 0x88, 0, 0},
9245 {0x5E, 0x8, 0x8, 0, 0},
9246 {0x5F, 0x77, 0x77, 1, 1},
9247 {0x60, 0x1, 0x1, 0, 0},
9249 {0x62, 0x7, 0x7, 0, 0},
9251 {0x64, 0x7, 0x7, 0, 0},
9256 {0x69, 0xa, 0xa, 0, 0},
9264 {0x71, 0x2, 0x2, 0, 0},
9267 {0x74, 0xe, 0xe, 0, 0},
9268 {0x75, 0xe, 0xe, 0, 0},
9269 {0x76, 0xe, 0xe, 0, 0},
9270 {0x77, 0x13, 0x13, 0, 0},
9271 {0x78, 0x13, 0x13, 0, 0},
9272 {0x79, 0x1b, 0x1b, 0, 0},
9273 {0x7A, 0x1b, 0x1b, 0, 0},
9274 {0x7B, 0x55, 0x55, 0, 0},
9275 {0x7C, 0x5b, 0x5b, 0, 0},
9298 {0x93, 0x70, 0x70, 0, 0},
9299 {0x94, 0x70, 0x70, 0, 0},
9300 {0x95, 0x71, 0x71, 1, 1},
9301 {0x96, 0x71, 0x71, 1, 1},
9302 {0x97, 0x72, 0x72, 1, 1},
9303 {0x98, 0x73, 0x73, 1, 1},
9304 {0x99, 0x74, 0x74, 1, 1},
9305 {0x9A, 0x75, 0x75, 1, 1},
9306 {0xFFFF, 0, 0, 0, 0}
9309 static struct radio_regs regs_RX_2056_rev5
[] = {
9340 {0x20, 0x3, 0x3, 0, 0},
9343 {0x23, 0x90, 0x90, 0, 0},
9344 {0x24, 0x55, 0x55, 0, 0},
9345 {0x25, 0x15, 0x15, 0, 0},
9346 {0x26, 0x5, 0x5, 0, 0},
9347 {0x27, 0x15, 0x15, 0, 0},
9348 {0x28, 0x5, 0x5, 0, 0},
9349 {0x29, 0x20, 0x20, 0, 0},
9350 {0x2A, 0x11, 0x11, 0, 0},
9351 {0x2B, 0x90, 0x90, 0, 0},
9353 {0x2D, 0x88, 0x88, 0, 0},
9354 {0x2E, 0x32, 0x32, 0, 0},
9355 {0x2F, 0x77, 0x77, 0, 0},
9356 {0x30, 0x17, 0x17, 1, 1},
9357 {0x31, 0xff, 0xff, 1, 1},
9358 {0x32, 0x20, 0x20, 0, 0},
9360 {0x34, 0x88, 0x88, 0, 0},
9361 {0x35, 0x32, 0x32, 0, 0},
9362 {0x36, 0x77, 0x77, 0, 0},
9363 {0x37, 0x17, 0x17, 1, 1},
9364 {0x38, 0xf0, 0xf0, 1, 1},
9365 {0x39, 0x20, 0x20, 0, 0},
9366 {0x3A, 0x8, 0x8, 0, 0},
9367 {0x3B, 0x55, 0x55, 1, 1},
9369 {0x3D, 0x88, 0x88, 1, 1},
9372 {0x40, 0x7, 0x7, 1, 1},
9373 {0x41, 0x6, 0x6, 0, 0},
9374 {0x42, 0x4, 0x4, 0, 0},
9376 {0x44, 0x8, 0x8, 0, 0},
9377 {0x45, 0x55, 0x55, 1, 1},
9379 {0x47, 0x11, 0x11, 0, 0},
9382 {0x4A, 0x7, 0x7, 0, 0},
9383 {0x4B, 0x6, 0x6, 0, 0},
9384 {0x4C, 0x4, 0x4, 0, 0},
9387 {0x4F, 0x26, 0x26, 1, 1},
9388 {0x50, 0x26, 0x26, 1, 1},
9389 {0x51, 0xf, 0xf, 1, 1},
9390 {0x52, 0xf, 0xf, 1, 1},
9391 {0x53, 0x44, 0x44, 0, 0},
9394 {0x56, 0x8, 0x8, 0, 0},
9395 {0x57, 0x8, 0x8, 0, 0},
9396 {0x58, 0x7, 0x7, 0, 0},
9397 {0x59, 0x22, 0x22, 0, 0},
9398 {0x5A, 0x22, 0x22, 0, 0},
9399 {0x5B, 0x2, 0x2, 0, 0},
9400 {0x5C, 0x4, 0x4, 1, 1},
9401 {0x5D, 0x7, 0x7, 0, 0},
9402 {0x5E, 0x55, 0x55, 0, 0},
9403 {0x5F, 0x23, 0x23, 0, 0},
9404 {0x60, 0x41, 0x41, 0, 0},
9405 {0x61, 0x1, 0x1, 0, 0},
9406 {0x62, 0xa, 0xa, 0, 0},
9415 {0x6B, 0xc, 0xc, 0, 0},
9422 {0x72, 0x22, 0x22, 0, 0},
9423 {0x73, 0x22, 0x22, 0, 0},
9425 {0x75, 0xa, 0xa, 0, 0},
9426 {0x76, 0x1, 0x1, 0, 0},
9427 {0x77, 0x22, 0x22, 0, 0},
9428 {0x78, 0x30, 0x30, 0, 0},
9457 {0xFFFF, 0, 0, 0, 0}
9460 static struct radio_regs regs_SYN_2056_rev6
[] = {
9468 {0x09, 0x1, 0x1, 0, 0},
9493 {0x22, 0x60, 0x60, 0, 0},
9494 {0x23, 0x6, 0x6, 0, 0},
9495 {0x24, 0xc, 0xc, 0, 0},
9499 {0x28, 0x1, 0x1, 0, 0},
9506 {0x2F, 0x1f, 0x1f, 0, 0},
9507 {0x30, 0x15, 0x15, 0, 0},
9508 {0x31, 0xf, 0xf, 0, 0},
9519 {0x3C, 0x13, 0x13, 0, 0},
9520 {0x3D, 0xf, 0xf, 0, 0},
9521 {0x3E, 0x18, 0x18, 0, 0},
9524 {0x41, 0x20, 0x20, 0, 0},
9525 {0x42, 0x20, 0x20, 0, 0},
9527 {0x44, 0x77, 0x77, 0, 0},
9528 {0x45, 0x7, 0x7, 0, 0},
9529 {0x46, 0x1, 0x1, 0, 0},
9530 {0x47, 0x4, 0x4, 0, 0},
9531 {0x48, 0xf, 0xf, 0, 0},
9532 {0x49, 0x30, 0x30, 0, 0},
9533 {0x4A, 0x32, 0x32, 0, 0},
9534 {0x4B, 0xd, 0xd, 0, 0},
9535 {0x4C, 0xd, 0xd, 0, 0},
9536 {0x4D, 0x4, 0x4, 0, 0},
9537 {0x4E, 0x6, 0x6, 0, 0},
9538 {0x4F, 0x1, 0x1, 0, 0},
9539 {0x50, 0x1c, 0x1c, 0, 0},
9540 {0x51, 0x2, 0x2, 0, 0},
9541 {0x52, 0x2, 0x2, 0, 0},
9542 {0x53, 0xf7, 0xf7, 1, 1},
9543 {0x54, 0xb4, 0xb4, 0, 0},
9544 {0x55, 0xd2, 0xd2, 0, 0},
9547 {0x58, 0x4, 0x4, 0, 0},
9548 {0x59, 0x96, 0x96, 0, 0},
9549 {0x5A, 0x3e, 0x3e, 0, 0},
9550 {0x5B, 0x3e, 0x3e, 0, 0},
9551 {0x5C, 0x13, 0x13, 0, 0},
9552 {0x5D, 0x2, 0x2, 0, 0},
9554 {0x5F, 0x7, 0x7, 0, 0},
9555 {0x60, 0x7, 0x7, 1, 1},
9556 {0x61, 0x8, 0x8, 0, 0},
9557 {0x62, 0x3, 0x3, 0, 0},
9563 {0x68, 0x40, 0x40, 0, 0},
9568 {0x6D, 0x1, 0x1, 0, 0},
9571 {0x70, 0x60, 0x60, 0, 0},
9572 {0x71, 0x66, 0x66, 0, 0},
9573 {0x72, 0xc, 0xc, 0, 0},
9574 {0x73, 0x66, 0x66, 0, 0},
9575 {0x74, 0x8f, 0x8f, 1, 1},
9577 {0x76, 0xcc, 0xcc, 0, 0},
9578 {0x77, 0x1, 0x1, 0, 0},
9579 {0x78, 0x66, 0x66, 0, 0},
9580 {0x79, 0x66, 0x66, 0, 0},
9592 {0x85, 0xff, 0xff, 0, 0},
9618 {0x9F, 0x6, 0x6, 0, 0},
9619 {0xA0, 0x66, 0x66, 0, 0},
9620 {0xA1, 0x66, 0x66, 0, 0},
9621 {0xA2, 0x66, 0x66, 0, 0},
9622 {0xA3, 0x66, 0x66, 0, 0},
9623 {0xA4, 0x66, 0x66, 0, 0},
9624 {0xA5, 0x66, 0x66, 0, 0},
9625 {0xA6, 0x66, 0x66, 0, 0},
9626 {0xA7, 0x66, 0x66, 0, 0},
9627 {0xA8, 0x66, 0x66, 0, 0},
9628 {0xA9, 0x66, 0x66, 0, 0},
9629 {0xAA, 0x66, 0x66, 0, 0},
9630 {0xAB, 0x66, 0x66, 0, 0},
9631 {0xAC, 0x66, 0x66, 0, 0},
9632 {0xAD, 0x66, 0x66, 0, 0},
9633 {0xAE, 0x66, 0x66, 0, 0},
9634 {0xAF, 0x66, 0x66, 0, 0},
9635 {0xB0, 0x66, 0x66, 0, 0},
9636 {0xB1, 0x66, 0x66, 0, 0},
9637 {0xB2, 0x66, 0x66, 0, 0},
9638 {0xB3, 0xa, 0xa, 0, 0},
9642 {0xFFFF, 0, 0, 0, 0}
9645 static struct radio_regs regs_TX_2056_rev6
[] = {
9677 {0x21, 0x88, 0x88, 0, 0},
9678 {0x22, 0x88, 0x88, 0, 0},
9679 {0x23, 0x88, 0x88, 0, 0},
9680 {0x24, 0x88, 0x88, 0, 0},
9681 {0x25, 0xc, 0xc, 0, 0},
9683 {0x27, 0x3, 0x3, 0, 0},
9685 {0x29, 0x3, 0x3, 0, 0},
9686 {0x2A, 0x37, 0x37, 0, 0},
9687 {0x2B, 0x3, 0x3, 0, 0},
9690 {0x2E, 0x1, 0x1, 0, 0},
9691 {0x2F, 0x1, 0x1, 0, 0},
9695 {0x33, 0x11, 0x11, 0, 0},
9696 {0x34, 0xee, 0xee, 1, 1},
9699 {0x37, 0x3, 0x3, 0, 0},
9700 {0x38, 0x50, 0x50, 1, 1},
9702 {0x3A, 0x50, 0x50, 1, 1},
9704 {0x3C, 0x6e, 0x6e, 0, 0},
9705 {0x3D, 0xf0, 0xf0, 1, 1},
9709 {0x41, 0x3, 0x3, 0, 0},
9710 {0x42, 0x3, 0x3, 0, 0},
9712 {0x44, 0x1e, 0x1e, 0, 0},
9714 {0x46, 0x6e, 0x6e, 0, 0},
9715 {0x47, 0xf0, 0xf0, 1, 1},
9717 {0x49, 0x2, 0x2, 0, 0},
9718 {0x4A, 0xff, 0xff, 1, 1},
9719 {0x4B, 0xc, 0xc, 0, 0},
9721 {0x4D, 0x38, 0x38, 0, 0},
9722 {0x4E, 0x70, 0x70, 1, 1},
9723 {0x4F, 0x2, 0x2, 0, 0},
9724 {0x50, 0x88, 0x88, 0, 0},
9725 {0x51, 0xc, 0xc, 0, 0},
9727 {0x53, 0x8, 0x8, 0, 0},
9728 {0x54, 0x70, 0x70, 1, 1},
9729 {0x55, 0x2, 0x2, 0, 0},
9730 {0x56, 0xff, 0xff, 1, 1},
9732 {0x58, 0x83, 0x83, 0, 0},
9733 {0x59, 0x77, 0x77, 1, 1},
9735 {0x5B, 0x2, 0x2, 0, 0},
9736 {0x5C, 0x88, 0x88, 0, 0},
9738 {0x5E, 0x8, 0x8, 0, 0},
9739 {0x5F, 0x77, 0x77, 1, 1},
9740 {0x60, 0x1, 0x1, 0, 0},
9742 {0x62, 0x7, 0x7, 0, 0},
9744 {0x64, 0x7, 0x7, 0, 0},
9749 {0x69, 0xa, 0xa, 0, 0},
9757 {0x71, 0x2, 0x2, 0, 0},
9760 {0x74, 0xe, 0xe, 0, 0},
9761 {0x75, 0xe, 0xe, 0, 0},
9762 {0x76, 0xe, 0xe, 0, 0},
9763 {0x77, 0x13, 0x13, 0, 0},
9764 {0x78, 0x13, 0x13, 0, 0},
9765 {0x79, 0x1b, 0x1b, 0, 0},
9766 {0x7A, 0x1b, 0x1b, 0, 0},
9767 {0x7B, 0x55, 0x55, 0, 0},
9768 {0x7C, 0x5b, 0x5b, 0, 0},
9769 {0x7D, 0x30, 0x30, 1, 1},
9791 {0x93, 0x70, 0x70, 0, 0},
9792 {0x94, 0x70, 0x70, 0, 0},
9793 {0x95, 0x70, 0x70, 0, 0},
9794 {0x96, 0x70, 0x70, 0, 0},
9795 {0x97, 0x70, 0x70, 0, 0},
9796 {0x98, 0x70, 0x70, 0, 0},
9797 {0x99, 0x70, 0x70, 0, 0},
9798 {0x9A, 0x70, 0x70, 0, 0},
9799 {0xFFFF, 0, 0, 0, 0}
9802 static struct radio_regs regs_RX_2056_rev6
[] = {
9833 {0x20, 0x3, 0x3, 0, 0},
9836 {0x23, 0x90, 0x90, 0, 0},
9837 {0x24, 0x55, 0x55, 0, 0},
9838 {0x25, 0x15, 0x15, 0, 0},
9839 {0x26, 0x5, 0x5, 0, 0},
9840 {0x27, 0x15, 0x15, 0, 0},
9841 {0x28, 0x5, 0x5, 0, 0},
9842 {0x29, 0x20, 0x20, 0, 0},
9843 {0x2A, 0x11, 0x11, 0, 0},
9844 {0x2B, 0x90, 0x90, 0, 0},
9846 {0x2D, 0x88, 0x88, 0, 0},
9847 {0x2E, 0x32, 0x32, 0, 0},
9848 {0x2F, 0x77, 0x77, 0, 0},
9849 {0x30, 0x17, 0x17, 1, 1},
9850 {0x31, 0xff, 0xff, 1, 1},
9851 {0x32, 0x20, 0x20, 0, 0},
9853 {0x34, 0x88, 0x88, 0, 0},
9854 {0x35, 0x32, 0x32, 0, 0},
9855 {0x36, 0x77, 0x77, 0, 0},
9856 {0x37, 0x17, 0x17, 1, 1},
9857 {0x38, 0xf0, 0xf0, 1, 1},
9858 {0x39, 0x20, 0x20, 0, 0},
9859 {0x3A, 0x8, 0x8, 0, 0},
9860 {0x3B, 0x55, 0x55, 1, 1},
9862 {0x3D, 0x88, 0x88, 1, 1},
9864 {0x3F, 0x44, 0x44, 0, 0},
9865 {0x40, 0x7, 0x7, 1, 1},
9866 {0x41, 0x6, 0x6, 0, 0},
9867 {0x42, 0x4, 0x4, 0, 0},
9869 {0x44, 0x8, 0x8, 0, 0},
9870 {0x45, 0x55, 0x55, 1, 1},
9872 {0x47, 0x11, 0x11, 0, 0},
9874 {0x49, 0x44, 0x44, 0, 0},
9875 {0x4A, 0x7, 0x7, 0, 0},
9876 {0x4B, 0x6, 0x6, 0, 0},
9877 {0x4C, 0x4, 0x4, 0, 0},
9880 {0x4F, 0x26, 0x26, 1, 1},
9881 {0x50, 0x26, 0x26, 1, 1},
9882 {0x51, 0xf, 0xf, 1, 1},
9883 {0x52, 0xf, 0xf, 1, 1},
9884 {0x53, 0x44, 0x44, 0, 0},
9887 {0x56, 0x8, 0x8, 0, 0},
9888 {0x57, 0x8, 0x8, 0, 0},
9889 {0x58, 0x7, 0x7, 0, 0},
9890 {0x59, 0x22, 0x22, 0, 0},
9891 {0x5A, 0x22, 0x22, 0, 0},
9892 {0x5B, 0x2, 0x2, 0, 0},
9893 {0x5C, 0x4, 0x4, 1, 1},
9894 {0x5D, 0x7, 0x7, 0, 0},
9895 {0x5E, 0x55, 0x55, 0, 0},
9896 {0x5F, 0x23, 0x23, 0, 0},
9897 {0x60, 0x41, 0x41, 0, 0},
9898 {0x61, 0x1, 0x1, 0, 0},
9899 {0x62, 0xa, 0xa, 0, 0},
9908 {0x6B, 0xc, 0xc, 0, 0},
9915 {0x72, 0x22, 0x22, 0, 0},
9916 {0x73, 0x22, 0x22, 0, 0},
9918 {0x75, 0xa, 0xa, 0, 0},
9919 {0x76, 0x1, 0x1, 0, 0},
9920 {0x77, 0x22, 0x22, 0, 0},
9921 {0x78, 0x30, 0x30, 0, 0},
9926 {0x7D, 0x5, 0x5, 1, 1},
9950 {0xFFFF, 0, 0, 0, 0}
9953 static struct radio_regs regs_SYN_2056_rev7
[] = {
9961 {0x09, 0x1, 0x1, 0, 0},
9986 {0x22, 0x60, 0x60, 0, 0},
9987 {0x23, 0x6, 0x6, 0, 0},
9988 {0x24, 0xc, 0xc, 0, 0},
9992 {0x28, 0x1, 0x1, 0, 0},
9999 {0x2F, 0x1f, 0x1f, 0, 0},
10000 {0x30, 0x15, 0x15, 0, 0},
10001 {0x31, 0xf, 0xf, 0, 0},
10002 {0x32, 0, 0, 0, 0},
10003 {0x33, 0, 0, 0, 0},
10004 {0x34, 0, 0, 0, 0},
10005 {0x35, 0, 0, 0, 0},
10006 {0x36, 0, 0, 0, 0},
10007 {0x37, 0, 0, 0, 0},
10008 {0x38, 0, 0, 0, 0},
10009 {0x39, 0, 0, 0, 0},
10010 {0x3A, 0, 0, 0, 0},
10011 {0x3B, 0, 0, 0, 0},
10012 {0x3C, 0x13, 0x13, 0, 0},
10013 {0x3D, 0xf, 0xf, 0, 0},
10014 {0x3E, 0x18, 0x18, 0, 0},
10015 {0x3F, 0, 0, 0, 0},
10016 {0x40, 0, 0, 0, 0},
10017 {0x41, 0x20, 0x20, 0, 0},
10018 {0x42, 0x20, 0x20, 0, 0},
10019 {0x43, 0, 0, 0, 0},
10020 {0x44, 0x77, 0x77, 0, 0},
10021 {0x45, 0x7, 0x7, 0, 0},
10022 {0x46, 0x1, 0x1, 0, 0},
10023 {0x47, 0x4, 0x4, 0, 0},
10024 {0x48, 0xf, 0xf, 0, 0},
10025 {0x49, 0x30, 0x30, 0, 0},
10026 {0x4A, 0x32, 0x32, 0, 0},
10027 {0x4B, 0xd, 0xd, 0, 0},
10028 {0x4C, 0xd, 0xd, 0, 0},
10029 {0x4D, 0x4, 0x4, 0, 0},
10030 {0x4E, 0x6, 0x6, 0, 0},
10031 {0x4F, 0x1, 0x1, 0, 0},
10032 {0x50, 0x1c, 0x1c, 0, 0},
10033 {0x51, 0x2, 0x2, 0, 0},
10034 {0x52, 0x2, 0x2, 0, 0},
10035 {0x53, 0xf7, 0xf7, 1, 1},
10036 {0x54, 0xb4, 0xb4, 0, 0},
10037 {0x55, 0xd2, 0xd2, 0, 0},
10038 {0x56, 0, 0, 0, 0},
10039 {0x57, 0, 0, 0, 0},
10040 {0x58, 0x4, 0x4, 0, 0},
10041 {0x59, 0x96, 0x96, 0, 0},
10042 {0x5A, 0x3e, 0x3e, 0, 0},
10043 {0x5B, 0x3e, 0x3e, 0, 0},
10044 {0x5C, 0x13, 0x13, 0, 0},
10045 {0x5D, 0x2, 0x2, 0, 0},
10046 {0x5E, 0, 0, 0, 0},
10047 {0x5F, 0x7, 0x7, 0, 0},
10048 {0x60, 0x7, 0x7, 1, 1},
10049 {0x61, 0x8, 0x8, 0, 0},
10050 {0x62, 0x3, 0x3, 0, 0},
10051 {0x63, 0, 0, 0, 0},
10052 {0x64, 0, 0, 0, 0},
10053 {0x65, 0, 0, 0, 0},
10054 {0x66, 0, 0, 0, 0},
10055 {0x67, 0, 0, 0, 0},
10056 {0x68, 0x40, 0x40, 0, 0},
10057 {0x69, 0, 0, 0, 0},
10058 {0x6A, 0, 0, 0, 0},
10059 {0x6B, 0, 0, 0, 0},
10060 {0x6C, 0, 0, 0, 0},
10061 {0x6D, 0x1, 0x1, 0, 0},
10062 {0x6E, 0, 0, 0, 0},
10063 {0x6F, 0, 0, 0, 0},
10064 {0x70, 0x60, 0x60, 0, 0},
10065 {0x71, 0x66, 0x66, 0, 0},
10066 {0x72, 0xc, 0xc, 0, 0},
10067 {0x73, 0x66, 0x66, 0, 0},
10068 {0x74, 0x8f, 0x8f, 1, 1},
10069 {0x75, 0, 0, 0, 0},
10070 {0x76, 0xcc, 0xcc, 0, 0},
10071 {0x77, 0x1, 0x1, 0, 0},
10072 {0x78, 0x66, 0x66, 0, 0},
10073 {0x79, 0x66, 0x66, 0, 0},
10074 {0x7A, 0, 0, 0, 0},
10075 {0x7B, 0, 0, 0, 0},
10076 {0x7C, 0, 0, 0, 0},
10077 {0x7D, 0, 0, 0, 0},
10078 {0x7E, 0, 0, 0, 0},
10079 {0x7F, 0, 0, 0, 0},
10080 {0x80, 0, 0, 0, 0},
10081 {0x81, 0, 0, 0, 0},
10082 {0x82, 0, 0, 0, 0},
10083 {0x83, 0, 0, 0, 0},
10084 {0x84, 0, 0, 0, 0},
10085 {0x85, 0xff, 0xff, 0, 0},
10086 {0x86, 0, 0, 0, 0},
10087 {0x87, 0, 0, 0, 0},
10088 {0x88, 0, 0, 0, 0},
10089 {0x89, 0, 0, 0, 0},
10090 {0x8A, 0, 0, 0, 0},
10091 {0x8B, 0, 0, 0, 0},
10092 {0x8C, 0, 0, 0, 0},
10093 {0x8D, 0, 0, 0, 0},
10094 {0x8E, 0, 0, 0, 0},
10095 {0x8F, 0, 0, 0, 0},
10096 {0x90, 0, 0, 0, 0},
10097 {0x91, 0, 0, 0, 0},
10098 {0x92, 0, 0, 0, 0},
10099 {0x93, 0, 0, 0, 0},
10100 {0x94, 0, 0, 0, 0},
10101 {0x95, 0, 0, 0, 0},
10102 {0x96, 0, 0, 0, 0},
10103 {0x97, 0, 0, 0, 0},
10104 {0x98, 0, 0, 0, 0},
10105 {0x99, 0, 0, 0, 0},
10106 {0x9A, 0, 0, 0, 0},
10107 {0x9B, 0, 0, 0, 0},
10108 {0x9C, 0, 0, 0, 0},
10109 {0x9D, 0, 0, 0, 0},
10110 {0x9E, 0, 0, 0, 0},
10111 {0x9F, 0x6, 0x6, 0, 0},
10112 {0xA0, 0x66, 0x66, 0, 0},
10113 {0xA1, 0x66, 0x66, 0, 0},
10114 {0xA2, 0x66, 0x66, 0, 0},
10115 {0xA3, 0x66, 0x66, 0, 0},
10116 {0xA4, 0x66, 0x66, 0, 0},
10117 {0xA5, 0x66, 0x66, 0, 0},
10118 {0xA6, 0x66, 0x66, 0, 0},
10119 {0xA7, 0x66, 0x66, 0, 0},
10120 {0xA8, 0x66, 0x66, 0, 0},
10121 {0xA9, 0x66, 0x66, 0, 0},
10122 {0xAA, 0x66, 0x66, 0, 0},
10123 {0xAB, 0x66, 0x66, 0, 0},
10124 {0xAC, 0x66, 0x66, 0, 0},
10125 {0xAD, 0x66, 0x66, 0, 0},
10126 {0xAE, 0x66, 0x66, 0, 0},
10127 {0xAF, 0x66, 0x66, 0, 0},
10128 {0xB0, 0x66, 0x66, 0, 0},
10129 {0xB1, 0x66, 0x66, 0, 0},
10130 {0xB2, 0x66, 0x66, 0, 0},
10131 {0xB3, 0xa, 0xa, 0, 0},
10132 {0xB4, 0, 0, 0, 0},
10133 {0xB5, 0, 0, 0, 0},
10134 {0xB6, 0, 0, 0, 0},
10135 {0xFFFF, 0, 0, 0, 0},
10138 static struct radio_regs regs_TX_2056_rev7
[] = {
10139 {0x02, 0, 0, 0, 0},
10140 {0x03, 0, 0, 0, 0},
10141 {0x04, 0, 0, 0, 0},
10142 {0x05, 0, 0, 0, 0},
10143 {0x06, 0, 0, 0, 0},
10144 {0x07, 0, 0, 0, 0},
10145 {0x08, 0, 0, 0, 0},
10146 {0x09, 0, 0, 0, 0},
10147 {0x0A, 0, 0, 0, 0},
10148 {0x0B, 0, 0, 0, 0},
10149 {0x0C, 0, 0, 0, 0},
10150 {0x0D, 0, 0, 0, 0},
10151 {0x0E, 0, 0, 0, 0},
10152 {0x0F, 0, 0, 0, 0},
10153 {0x10, 0, 0, 0, 0},
10154 {0x11, 0, 0, 0, 0},
10155 {0x12, 0, 0, 0, 0},
10156 {0x13, 0, 0, 0, 0},
10157 {0x14, 0, 0, 0, 0},
10158 {0x15, 0, 0, 0, 0},
10159 {0x16, 0, 0, 0, 0},
10160 {0x17, 0, 0, 0, 0},
10161 {0x18, 0, 0, 0, 0},
10162 {0x19, 0, 0, 0, 0},
10163 {0x1A, 0, 0, 0, 0},
10164 {0x1B, 0, 0, 0, 0},
10165 {0x1C, 0, 0, 0, 0},
10166 {0x1D, 0, 0, 0, 0},
10167 {0x1E, 0, 0, 0, 0},
10168 {0x1F, 0, 0, 0, 0},
10169 {0x20, 0, 0, 0, 0},
10170 {0x21, 0x88, 0x88, 0, 0},
10171 {0x22, 0x88, 0x88, 0, 0},
10172 {0x23, 0x88, 0x88, 0, 0},
10173 {0x24, 0x88, 0x88, 0, 0},
10174 {0x25, 0xc, 0xc, 0, 0},
10175 {0x26, 0, 0, 0, 0},
10176 {0x27, 0x3, 0x3, 0, 0},
10177 {0x28, 0, 0, 0, 0},
10178 {0x29, 0x3, 0x3, 0, 0},
10179 {0x2A, 0x37, 0x37, 0, 0},
10180 {0x2B, 0x3, 0x3, 0, 0},
10181 {0x2C, 0, 0, 0, 0},
10182 {0x2D, 0, 0, 0, 0},
10183 {0x2E, 0x1, 0x1, 0, 0},
10184 {0x2F, 0x1, 0x1, 0, 0},
10185 {0x30, 0, 0, 0, 0},
10186 {0x31, 0, 0, 0, 0},
10187 {0x32, 0, 0, 0, 0},
10188 {0x33, 0x11, 0x11, 0, 0},
10189 {0x34, 0xee, 0xee, 1, 1},
10190 {0x35, 0, 0, 0, 0},
10191 {0x36, 0, 0, 0, 0},
10192 {0x37, 0x3, 0x3, 0, 0},
10193 {0x38, 0x50, 0x50, 1, 1},
10194 {0x39, 0, 0, 0, 0},
10195 {0x3A, 0x50, 0x50, 1, 1},
10196 {0x3B, 0, 0, 0, 0},
10197 {0x3C, 0x6e, 0x6e, 0, 0},
10198 {0x3D, 0xf0, 0xf0, 1, 1},
10199 {0x3E, 0, 0, 0, 0},
10200 {0x3F, 0, 0, 0, 0},
10201 {0x40, 0, 0, 0, 0},
10202 {0x41, 0x3, 0x3, 0, 0},
10203 {0x42, 0x3, 0x3, 0, 0},
10204 {0x43, 0, 0, 0, 0},
10205 {0x44, 0x1e, 0x1e, 0, 0},
10206 {0x45, 0, 0, 0, 0},
10207 {0x46, 0x6e, 0x6e, 0, 0},
10208 {0x47, 0xf0, 0xf0, 1, 1},
10209 {0x48, 0, 0, 0, 0},
10210 {0x49, 0x2, 0x2, 0, 0},
10211 {0x4A, 0xff, 0xff, 1, 1},
10212 {0x4B, 0xc, 0xc, 0, 0},
10213 {0x4C, 0, 0, 0, 0},
10214 {0x4D, 0x38, 0x38, 0, 0},
10215 {0x4E, 0x70, 0x70, 1, 1},
10216 {0x4F, 0x2, 0x2, 0, 0},
10217 {0x50, 0x88, 0x88, 0, 0},
10218 {0x51, 0xc, 0xc, 0, 0},
10219 {0x52, 0, 0, 0, 0},
10220 {0x53, 0x8, 0x8, 0, 0},
10221 {0x54, 0x70, 0x70, 1, 1},
10222 {0x55, 0x2, 0x2, 0, 0},
10223 {0x56, 0xff, 0xff, 1, 1},
10224 {0x57, 0, 0, 0, 0},
10225 {0x58, 0x83, 0x83, 0, 0},
10226 {0x59, 0x77, 0x77, 1, 1},
10227 {0x5A, 0, 0, 0, 0},
10228 {0x5B, 0x2, 0x2, 0, 0},
10229 {0x5C, 0x88, 0x88, 0, 0},
10230 {0x5D, 0, 0, 0, 0},
10231 {0x5E, 0x8, 0x8, 0, 0},
10232 {0x5F, 0x77, 0x77, 1, 1},
10233 {0x60, 0x1, 0x1, 0, 0},
10234 {0x61, 0, 0, 0, 0},
10235 {0x62, 0x7, 0x7, 0, 0},
10236 {0x63, 0, 0, 0, 0},
10237 {0x64, 0x7, 0x7, 0, 0},
10238 {0x65, 0, 0, 0, 0},
10239 {0x66, 0, 0, 0, 0},
10240 {0x67, 0, 0, 1, 1},
10241 {0x68, 0, 0, 0, 0},
10242 {0x69, 0xa, 0xa, 0, 0},
10243 {0x6A, 0, 0, 0, 0},
10244 {0x6B, 0, 0, 0, 0},
10245 {0x6C, 0, 0, 0, 0},
10246 {0x6D, 0, 0, 0, 0},
10247 {0x6E, 0, 0, 0, 0},
10248 {0x6F, 0, 0, 0, 0},
10249 {0x70, 0, 0, 0, 0},
10250 {0x71, 0x2, 0x2, 0, 0},
10251 {0x72, 0, 0, 0, 0},
10252 {0x73, 0, 0, 0, 0},
10253 {0x74, 0xe, 0xe, 0, 0},
10254 {0x75, 0xe, 0xe, 0, 0},
10255 {0x76, 0xe, 0xe, 0, 0},
10256 {0x77, 0x13, 0x13, 0, 0},
10257 {0x78, 0x13, 0x13, 0, 0},
10258 {0x79, 0x1b, 0x1b, 0, 0},
10259 {0x7A, 0x1b, 0x1b, 0, 0},
10260 {0x7B, 0x55, 0x55, 0, 0},
10261 {0x7C, 0x5b, 0x5b, 0, 0},
10262 {0x7D, 0x30, 0x30, 1, 1},
10263 {0x7E, 0, 0, 0, 0},
10264 {0x7F, 0, 0, 0, 0},
10265 {0x80, 0, 0, 0, 0},
10266 {0x81, 0, 0, 0, 0},
10267 {0x82, 0, 0, 0, 0},
10268 {0x83, 0, 0, 0, 0},
10269 {0x84, 0, 0, 0, 0},
10270 {0x85, 0, 0, 0, 0},
10271 {0x86, 0, 0, 0, 0},
10272 {0x87, 0, 0, 0, 0},
10273 {0x88, 0, 0, 0, 0},
10274 {0x89, 0, 0, 0, 0},
10275 {0x8A, 0, 0, 0, 0},
10276 {0x8B, 0, 0, 0, 0},
10277 {0x8C, 0, 0, 0, 0},
10278 {0x8D, 0, 0, 0, 0},
10279 {0x8E, 0, 0, 0, 0},
10280 {0x8F, 0, 0, 0, 0},
10281 {0x90, 0, 0, 0, 0},
10282 {0x91, 0, 0, 0, 0},
10283 {0x92, 0, 0, 0, 0},
10284 {0x93, 0x70, 0x70, 0, 0},
10285 {0x94, 0x70, 0x70, 0, 0},
10286 {0x95, 0x71, 0x71, 1, 1},
10287 {0x96, 0x71, 0x71, 1, 1},
10288 {0x97, 0x72, 0x72, 1, 1},
10289 {0x98, 0x73, 0x73, 1, 1},
10290 {0x99, 0x74, 0x74, 1, 1},
10291 {0x9A, 0x75, 0x75, 1, 1},
10292 {0xFFFF, 0, 0, 0, 0},
10295 static struct radio_regs regs_RX_2056_rev7
[] = {
10296 {0x02, 0, 0, 0, 0},
10297 {0x03, 0, 0, 0, 0},
10298 {0x04, 0, 0, 0, 0},
10299 {0x05, 0, 0, 0, 0},
10300 {0x06, 0, 0, 0, 0},
10301 {0x07, 0, 0, 0, 0},
10302 {0x08, 0, 0, 0, 0},
10303 {0x09, 0, 0, 0, 0},
10304 {0x0A, 0, 0, 0, 0},
10305 {0x0B, 0, 0, 0, 0},
10306 {0x0C, 0, 0, 0, 0},
10307 {0x0D, 0, 0, 0, 0},
10308 {0x0E, 0, 0, 0, 0},
10309 {0x0F, 0, 0, 0, 0},
10310 {0x10, 0, 0, 0, 0},
10311 {0x11, 0, 0, 0, 0},
10312 {0x12, 0, 0, 0, 0},
10313 {0x13, 0, 0, 0, 0},
10314 {0x14, 0, 0, 0, 0},
10315 {0x15, 0, 0, 0, 0},
10316 {0x16, 0, 0, 0, 0},
10317 {0x17, 0, 0, 0, 0},
10318 {0x18, 0, 0, 0, 0},
10319 {0x19, 0, 0, 0, 0},
10320 {0x1A, 0, 0, 0, 0},
10321 {0x1B, 0, 0, 0, 0},
10322 {0x1C, 0, 0, 0, 0},
10323 {0x1D, 0, 0, 0, 0},
10324 {0x1E, 0, 0, 0, 0},
10325 {0x1F, 0, 0, 0, 0},
10326 {0x20, 0x3, 0x3, 0, 0},
10327 {0x21, 0, 0, 0, 0},
10328 {0x22, 0, 0, 0, 0},
10329 {0x23, 0x90, 0x90, 0, 0},
10330 {0x24, 0x55, 0x55, 0, 0},
10331 {0x25, 0x15, 0x15, 0, 0},
10332 {0x26, 0x5, 0x5, 0, 0},
10333 {0x27, 0x15, 0x15, 0, 0},
10334 {0x28, 0x5, 0x5, 0, 0},
10335 {0x29, 0x20, 0x20, 0, 0},
10336 {0x2A, 0x11, 0x11, 0, 0},
10337 {0x2B, 0x90, 0x90, 0, 0},
10338 {0x2C, 0, 0, 0, 0},
10339 {0x2D, 0x88, 0x88, 0, 0},
10340 {0x2E, 0x32, 0x32, 0, 0},
10341 {0x2F, 0x77, 0x77, 0, 0},
10342 {0x30, 0x17, 0x17, 1, 1},
10343 {0x31, 0xff, 0xff, 1, 1},
10344 {0x32, 0x20, 0x20, 0, 0},
10345 {0x33, 0, 0, 0, 0},
10346 {0x34, 0x88, 0x88, 0, 0},
10347 {0x35, 0x32, 0x32, 0, 0},
10348 {0x36, 0x77, 0x77, 0, 0},
10349 {0x37, 0x17, 0x17, 1, 1},
10350 {0x38, 0xf0, 0xf0, 1, 1},
10351 {0x39, 0x20, 0x20, 0, 0},
10352 {0x3A, 0x8, 0x8, 0, 0},
10353 {0x3B, 0x55, 0x55, 1, 1},
10354 {0x3C, 0, 0, 0, 0},
10355 {0x3D, 0x88, 0x88, 1, 1},
10356 {0x3E, 0, 0, 0, 0},
10357 {0x3F, 0, 0, 1, 1},
10358 {0x40, 0x7, 0x7, 1, 1},
10359 {0x41, 0x6, 0x6, 0, 0},
10360 {0x42, 0x4, 0x4, 0, 0},
10361 {0x43, 0, 0, 0, 0},
10362 {0x44, 0x8, 0x8, 0, 0},
10363 {0x45, 0x55, 0x55, 1, 1},
10364 {0x46, 0, 0, 0, 0},
10365 {0x47, 0x11, 0x11, 0, 0},
10366 {0x48, 0, 0, 0, 0},
10367 {0x49, 0, 0, 1, 1},
10368 {0x4A, 0x7, 0x7, 0, 0},
10369 {0x4B, 0x6, 0x6, 0, 0},
10370 {0x4C, 0x4, 0x4, 0, 0},
10371 {0x4D, 0, 0, 0, 0},
10372 {0x4E, 0, 0, 0, 0},
10373 {0x4F, 0x26, 0x26, 1, 1},
10374 {0x50, 0x26, 0x26, 1, 1},
10375 {0x51, 0xf, 0xf, 1, 1},
10376 {0x52, 0xf, 0xf, 1, 1},
10377 {0x53, 0x44, 0x44, 0, 0},
10378 {0x54, 0, 0, 0, 0},
10379 {0x55, 0, 0, 0, 0},
10380 {0x56, 0x8, 0x8, 0, 0},
10381 {0x57, 0x8, 0x8, 0, 0},
10382 {0x58, 0x7, 0x7, 0, 0},
10383 {0x59, 0x22, 0x22, 0, 0},
10384 {0x5A, 0x22, 0x22, 0, 0},
10385 {0x5B, 0x2, 0x2, 0, 0},
10386 {0x5C, 0x4, 0x4, 1, 1},
10387 {0x5D, 0x7, 0x7, 0, 0},
10388 {0x5E, 0x55, 0x55, 0, 0},
10389 {0x5F, 0x23, 0x23, 0, 0},
10390 {0x60, 0x41, 0x41, 0, 0},
10391 {0x61, 0x1, 0x1, 0, 0},
10392 {0x62, 0xa, 0xa, 0, 0},
10393 {0x63, 0, 0, 0, 0},
10394 {0x64, 0, 0, 0, 0},
10395 {0x65, 0, 0, 0, 0},
10396 {0x66, 0, 0, 0, 0},
10397 {0x67, 0, 0, 0, 0},
10398 {0x68, 0, 0, 0, 0},
10399 {0x69, 0, 0, 0, 0},
10400 {0x6A, 0, 0, 0, 0},
10401 {0x6B, 0xc, 0xc, 0, 0},
10402 {0x6C, 0, 0, 0, 0},
10403 {0x6D, 0, 0, 0, 0},
10404 {0x6E, 0, 0, 0, 0},
10405 {0x6F, 0, 0, 0, 0},
10406 {0x70, 0, 0, 0, 0},
10407 {0x71, 0, 0, 0, 0},
10408 {0x72, 0x22, 0x22, 0, 0},
10409 {0x73, 0x22, 0x22, 0, 0},
10410 {0x74, 0, 0, 1, 1},
10411 {0x75, 0xa, 0xa, 0, 0},
10412 {0x76, 0x1, 0x1, 0, 0},
10413 {0x77, 0x22, 0x22, 0, 0},
10414 {0x78, 0x30, 0x30, 0, 0},
10415 {0x79, 0, 0, 0, 0},
10416 {0x7A, 0, 0, 0, 0},
10417 {0x7B, 0, 0, 0, 0},
10418 {0x7C, 0, 0, 0, 0},
10419 {0x7D, 0, 0, 0, 0},
10420 {0x7E, 0, 0, 0, 0},
10421 {0x7F, 0, 0, 0, 0},
10422 {0x80, 0, 0, 0, 0},
10423 {0x81, 0, 0, 0, 0},
10424 {0x82, 0, 0, 0, 0},
10425 {0x83, 0, 0, 0, 0},
10426 {0x84, 0, 0, 0, 0},
10427 {0x85, 0, 0, 0, 0},
10428 {0x86, 0, 0, 0, 0},
10429 {0x87, 0, 0, 0, 0},
10430 {0x88, 0, 0, 0, 0},
10431 {0x89, 0, 0, 0, 0},
10432 {0x8A, 0, 0, 0, 0},
10433 {0x8B, 0, 0, 0, 0},
10434 {0x8C, 0, 0, 0, 0},
10435 {0x8D, 0, 0, 0, 0},
10436 {0x8E, 0, 0, 0, 0},
10437 {0x8F, 0, 0, 0, 0},
10438 {0x90, 0, 0, 0, 0},
10439 {0x91, 0, 0, 0, 0},
10440 {0x92, 0, 0, 0, 0},
10441 {0x93, 0, 0, 0, 0},
10442 {0x94, 0, 0, 0, 0},
10443 {0xFFFF, 0, 0, 0, 0},
10446 static struct radio_regs regs_SYN_2056_rev8
[] = {
10447 {0x02, 0, 0, 0, 0},
10448 {0x03, 0, 0, 0, 0},
10449 {0x04, 0, 0, 0, 0},
10450 {0x05, 0, 0, 0, 0},
10451 {0x06, 0, 0, 0, 0},
10452 {0x07, 0, 0, 0, 0},
10453 {0x08, 0, 0, 0, 0},
10454 {0x09, 0x1, 0x1, 0, 0},
10455 {0x0A, 0, 0, 0, 0},
10456 {0x0B, 0, 0, 0, 0},
10457 {0x0C, 0, 0, 0, 0},
10458 {0x0D, 0, 0, 0, 0},
10459 {0x0E, 0, 0, 0, 0},
10460 {0x0F, 0, 0, 0, 0},
10461 {0x10, 0, 0, 0, 0},
10462 {0x11, 0, 0, 0, 0},
10463 {0x12, 0, 0, 0, 0},
10464 {0x13, 0, 0, 0, 0},
10465 {0x14, 0, 0, 0, 0},
10466 {0x15, 0, 0, 0, 0},
10467 {0x16, 0, 0, 0, 0},
10468 {0x17, 0, 0, 0, 0},
10469 {0x18, 0, 0, 0, 0},
10470 {0x19, 0, 0, 0, 0},
10471 {0x1A, 0, 0, 0, 0},
10472 {0x1B, 0, 0, 0, 0},
10473 {0x1C, 0, 0, 0, 0},
10474 {0x1D, 0, 0, 0, 0},
10475 {0x1E, 0, 0, 0, 0},
10476 {0x1F, 0, 0, 0, 0},
10477 {0x20, 0, 0, 0, 0},
10478 {0x21, 0, 0, 0, 0},
10479 {0x22, 0x60, 0x60, 0, 0},
10480 {0x23, 0x6, 0x6, 0, 0},
10481 {0x24, 0xc, 0xc, 0, 0},
10482 {0x25, 0, 0, 0, 0},
10483 {0x26, 0, 0, 0, 0},
10484 {0x27, 0, 0, 0, 0},
10485 {0x28, 0x1, 0x1, 0, 0},
10486 {0x29, 0, 0, 0, 0},
10487 {0x2A, 0, 0, 0, 0},
10488 {0x2B, 0, 0, 0, 0},
10489 {0x2C, 0, 0, 0, 0},
10490 {0x2D, 0, 0, 0, 0},
10491 {0x2E, 0, 0, 0, 0},
10492 {0x2F, 0x1f, 0x1f, 0, 0},
10493 {0x30, 0x15, 0x15, 0, 0},
10494 {0x31, 0xf, 0xf, 0, 0},
10495 {0x32, 0, 0, 0, 0},
10496 {0x33, 0, 0, 0, 0},
10497 {0x34, 0, 0, 0, 0},
10498 {0x35, 0, 0, 0, 0},
10499 {0x36, 0, 0, 0, 0},
10500 {0x37, 0, 0, 0, 0},
10501 {0x38, 0, 0, 0, 0},
10502 {0x39, 0, 0, 0, 0},
10503 {0x3A, 0, 0, 0, 0},
10504 {0x3B, 0, 0, 0, 0},
10505 {0x3C, 0x13, 0x13, 0, 0},
10506 {0x3D, 0xf, 0xf, 0, 0},
10507 {0x3E, 0x18, 0x18, 0, 0},
10508 {0x3F, 0, 0, 0, 0},
10509 {0x40, 0, 0, 0, 0},
10510 {0x41, 0x20, 0x20, 0, 0},
10511 {0x42, 0x20, 0x20, 0, 0},
10512 {0x43, 0, 0, 0, 0},
10513 {0x44, 0x77, 0x77, 0, 0},
10514 {0x45, 0x7, 0x7, 0, 0},
10515 {0x46, 0x1, 0x1, 0, 0},
10516 {0x47, 0x4, 0x4, 0, 0},
10517 {0x48, 0xf, 0xf, 0, 0},
10518 {0x49, 0x30, 0x30, 0, 0},
10519 {0x4A, 0x32, 0x32, 0, 0},
10520 {0x4B, 0xd, 0xd, 0, 0},
10521 {0x4C, 0xd, 0xd, 0, 0},
10522 {0x4D, 0x4, 0x4, 0, 0},
10523 {0x4E, 0x6, 0x6, 0, 0},
10524 {0x4F, 0x1, 0x1, 0, 0},
10525 {0x50, 0x1c, 0x1c, 0, 0},
10526 {0x51, 0x2, 0x2, 0, 0},
10527 {0x52, 0x2, 0x2, 0, 0},
10528 {0x53, 0xf7, 0xf7, 1, 1},
10529 {0x54, 0xb4, 0xb4, 0, 0},
10530 {0x55, 0xd2, 0xd2, 0, 0},
10531 {0x56, 0, 0, 0, 0},
10532 {0x57, 0, 0, 0, 0},
10533 {0x58, 0x4, 0x4, 0, 0},
10534 {0x59, 0x96, 0x96, 0, 0},
10535 {0x5A, 0x3e, 0x3e, 0, 0},
10536 {0x5B, 0x3e, 0x3e, 0, 0},
10537 {0x5C, 0x13, 0x13, 0, 0},
10538 {0x5D, 0x2, 0x2, 0, 0},
10539 {0x5E, 0, 0, 0, 0},
10540 {0x5F, 0x7, 0x7, 0, 0},
10541 {0x60, 0x7, 0x7, 1, 1},
10542 {0x61, 0x8, 0x8, 0, 0},
10543 {0x62, 0x3, 0x3, 0, 0},
10544 {0x63, 0, 0, 0, 0},
10545 {0x64, 0, 0, 0, 0},
10546 {0x65, 0, 0, 0, 0},
10547 {0x66, 0, 0, 0, 0},
10548 {0x67, 0, 0, 0, 0},
10549 {0x68, 0x40, 0x40, 0, 0},
10550 {0x69, 0, 0, 0, 0},
10551 {0x6A, 0, 0, 0, 0},
10552 {0x6B, 0, 0, 0, 0},
10553 {0x6C, 0, 0, 0, 0},
10554 {0x6D, 0x1, 0x1, 0, 0},
10555 {0x6E, 0, 0, 0, 0},
10556 {0x6F, 0, 0, 0, 0},
10557 {0x70, 0x60, 0x60, 0, 0},
10558 {0x71, 0x66, 0x66, 0, 0},
10559 {0x72, 0xc, 0xc, 0, 0},
10560 {0x73, 0x66, 0x66, 0, 0},
10561 {0x74, 0x8f, 0x8f, 1, 1},
10562 {0x75, 0, 0, 0, 0},
10563 {0x76, 0xcc, 0xcc, 0, 0},
10564 {0x77, 0x1, 0x1, 0, 0},
10565 {0x78, 0x66, 0x66, 0, 0},
10566 {0x79, 0x66, 0x66, 0, 0},
10567 {0x7A, 0, 0, 0, 0},
10568 {0x7B, 0, 0, 0, 0},
10569 {0x7C, 0, 0, 0, 0},
10570 {0x7D, 0, 0, 0, 0},
10571 {0x7E, 0, 0, 0, 0},
10572 {0x7F, 0, 0, 0, 0},
10573 {0x80, 0, 0, 0, 0},
10574 {0x81, 0, 0, 0, 0},
10575 {0x82, 0, 0, 0, 0},
10576 {0x83, 0, 0, 0, 0},
10577 {0x84, 0, 0, 0, 0},
10578 {0x85, 0xff, 0xff, 0, 0},
10579 {0x86, 0, 0, 0, 0},
10580 {0x87, 0, 0, 0, 0},
10581 {0x88, 0, 0, 0, 0},
10582 {0x89, 0, 0, 0, 0},
10583 {0x8A, 0, 0, 0, 0},
10584 {0x8B, 0, 0, 0, 0},
10585 {0x8C, 0, 0, 0, 0},
10586 {0x8D, 0, 0, 0, 0},
10587 {0x8E, 0, 0, 0, 0},
10588 {0x8F, 0, 0, 0, 0},
10589 {0x90, 0, 0, 0, 0},
10590 {0x91, 0, 0, 0, 0},
10591 {0x92, 0, 0, 0, 0},
10592 {0x93, 0, 0, 0, 0},
10593 {0x94, 0, 0, 0, 0},
10594 {0x95, 0, 0, 0, 0},
10595 {0x96, 0, 0, 0, 0},
10596 {0x97, 0, 0, 0, 0},
10597 {0x98, 0, 0, 0, 0},
10598 {0x99, 0, 0, 0, 0},
10599 {0x9A, 0, 0, 0, 0},
10600 {0x9B, 0, 0, 0, 0},
10601 {0x9C, 0, 0, 0, 0},
10602 {0x9D, 0, 0, 0, 0},
10603 {0x9E, 0, 0, 0, 0},
10604 {0x9F, 0x6, 0x6, 0, 0},
10605 {0xA0, 0x66, 0x66, 0, 0},
10606 {0xA1, 0x66, 0x66, 0, 0},
10607 {0xA2, 0x66, 0x66, 0, 0},
10608 {0xA3, 0x66, 0x66, 0, 0},
10609 {0xA4, 0x66, 0x66, 0, 0},
10610 {0xA5, 0x66, 0x66, 0, 0},
10611 {0xA6, 0x66, 0x66, 0, 0},
10612 {0xA7, 0x66, 0x66, 0, 0},
10613 {0xA8, 0x66, 0x66, 0, 0},
10614 {0xA9, 0x66, 0x66, 0, 0},
10615 {0xAA, 0x66, 0x66, 0, 0},
10616 {0xAB, 0x66, 0x66, 0, 0},
10617 {0xAC, 0x66, 0x66, 0, 0},
10618 {0xAD, 0x66, 0x66, 0, 0},
10619 {0xAE, 0x66, 0x66, 0, 0},
10620 {0xAF, 0x66, 0x66, 0, 0},
10621 {0xB0, 0x66, 0x66, 0, 0},
10622 {0xB1, 0x66, 0x66, 0, 0},
10623 {0xB2, 0x66, 0x66, 0, 0},
10624 {0xB3, 0xa, 0xa, 0, 0},
10625 {0xB4, 0, 0, 0, 0},
10626 {0xB5, 0, 0, 0, 0},
10627 {0xB6, 0, 0, 0, 0},
10628 {0xFFFF, 0, 0, 0, 0},
10631 static struct radio_regs regs_TX_2056_rev8
[] = {
10632 {0x02, 0, 0, 0, 0},
10633 {0x03, 0, 0, 0, 0},
10634 {0x04, 0, 0, 0, 0},
10635 {0x05, 0, 0, 0, 0},
10636 {0x06, 0, 0, 0, 0},
10637 {0x07, 0, 0, 0, 0},
10638 {0x08, 0, 0, 0, 0},
10639 {0x09, 0, 0, 0, 0},
10640 {0x0A, 0, 0, 0, 0},
10641 {0x0B, 0, 0, 0, 0},
10642 {0x0C, 0, 0, 0, 0},
10643 {0x0D, 0, 0, 0, 0},
10644 {0x0E, 0, 0, 0, 0},
10645 {0x0F, 0, 0, 0, 0},
10646 {0x10, 0, 0, 0, 0},
10647 {0x11, 0, 0, 0, 0},
10648 {0x12, 0, 0, 0, 0},
10649 {0x13, 0, 0, 0, 0},
10650 {0x14, 0, 0, 0, 0},
10651 {0x15, 0, 0, 0, 0},
10652 {0x16, 0, 0, 0, 0},
10653 {0x17, 0, 0, 0, 0},
10654 {0x18, 0, 0, 0, 0},
10655 {0x19, 0, 0, 0, 0},
10656 {0x1A, 0, 0, 0, 0},
10657 {0x1B, 0, 0, 0, 0},
10658 {0x1C, 0, 0, 0, 0},
10659 {0x1D, 0, 0, 0, 0},
10660 {0x1E, 0, 0, 0, 0},
10661 {0x1F, 0, 0, 0, 0},
10662 {0x20, 0, 0, 0, 0},
10663 {0x21, 0x88, 0x88, 0, 0},
10664 {0x22, 0x88, 0x88, 0, 0},
10665 {0x23, 0x88, 0x88, 0, 0},
10666 {0x24, 0x88, 0x88, 0, 0},
10667 {0x25, 0xc, 0xc, 0, 0},
10668 {0x26, 0, 0, 0, 0},
10669 {0x27, 0x3, 0x3, 0, 0},
10670 {0x28, 0, 0, 0, 0},
10671 {0x29, 0x3, 0x3, 0, 0},
10672 {0x2A, 0x37, 0x37, 0, 0},
10673 {0x2B, 0x3, 0x3, 0, 0},
10674 {0x2C, 0, 0, 0, 0},
10675 {0x2D, 0, 0, 0, 0},
10676 {0x2E, 0x1, 0x1, 0, 0},
10677 {0x2F, 0x1, 0x1, 0, 0},
10678 {0x30, 0, 0, 0, 0},
10679 {0x31, 0, 0, 0, 0},
10680 {0x32, 0, 0, 0, 0},
10681 {0x33, 0x11, 0x11, 0, 0},
10682 {0x34, 0xee, 0xee, 1, 1},
10683 {0x35, 0, 0, 0, 0},
10684 {0x36, 0, 0, 0, 0},
10685 {0x37, 0x3, 0x3, 0, 0},
10686 {0x38, 0x50, 0x50, 1, 1},
10687 {0x39, 0, 0, 0, 0},
10688 {0x3A, 0x50, 0x50, 1, 1},
10689 {0x3B, 0, 0, 0, 0},
10690 {0x3C, 0x6e, 0x6e, 0, 0},
10691 {0x3D, 0xf0, 0xf0, 1, 1},
10692 {0x3E, 0, 0, 0, 0},
10693 {0x3F, 0, 0, 0, 0},
10694 {0x40, 0, 0, 0, 0},
10695 {0x41, 0x3, 0x3, 0, 0},
10696 {0x42, 0x3, 0x3, 0, 0},
10697 {0x43, 0, 0, 0, 0},
10698 {0x44, 0x1e, 0x1e, 0, 0},
10699 {0x45, 0, 0, 0, 0},
10700 {0x46, 0x6e, 0x6e, 0, 0},
10701 {0x47, 0xf0, 0xf0, 1, 1},
10702 {0x48, 0, 0, 0, 0},
10703 {0x49, 0x2, 0x2, 0, 0},
10704 {0x4A, 0xff, 0xff, 1, 1},
10705 {0x4B, 0xc, 0xc, 0, 0},
10706 {0x4C, 0, 0, 0, 0},
10707 {0x4D, 0x38, 0x38, 0, 0},
10708 {0x4E, 0x70, 0x70, 1, 1},
10709 {0x4F, 0x2, 0x2, 0, 0},
10710 {0x50, 0x88, 0x88, 0, 0},
10711 {0x51, 0xc, 0xc, 0, 0},
10712 {0x52, 0, 0, 0, 0},
10713 {0x53, 0x8, 0x8, 0, 0},
10714 {0x54, 0x70, 0x70, 1, 1},
10715 {0x55, 0x2, 0x2, 0, 0},
10716 {0x56, 0xff, 0xff, 1, 1},
10717 {0x57, 0, 0, 0, 0},
10718 {0x58, 0x83, 0x83, 0, 0},
10719 {0x59, 0x77, 0x77, 1, 1},
10720 {0x5A, 0, 0, 0, 0},
10721 {0x5B, 0x2, 0x2, 0, 0},
10722 {0x5C, 0x88, 0x88, 0, 0},
10723 {0x5D, 0, 0, 0, 0},
10724 {0x5E, 0x8, 0x8, 0, 0},
10725 {0x5F, 0x77, 0x77, 1, 1},
10726 {0x60, 0x1, 0x1, 0, 0},
10727 {0x61, 0, 0, 0, 0},
10728 {0x62, 0x7, 0x7, 0, 0},
10729 {0x63, 0, 0, 0, 0},
10730 {0x64, 0x7, 0x7, 0, 0},
10731 {0x65, 0, 0, 0, 0},
10732 {0x66, 0, 0, 0, 0},
10733 {0x67, 0, 0, 1, 1},
10734 {0x68, 0, 0, 0, 0},
10735 {0x69, 0xa, 0xa, 0, 0},
10736 {0x6A, 0, 0, 0, 0},
10737 {0x6B, 0, 0, 0, 0},
10738 {0x6C, 0, 0, 0, 0},
10739 {0x6D, 0, 0, 0, 0},
10740 {0x6E, 0, 0, 0, 0},
10741 {0x6F, 0, 0, 0, 0},
10742 {0x70, 0, 0, 0, 0},
10743 {0x71, 0x2, 0x2, 0, 0},
10744 {0x72, 0, 0, 0, 0},
10745 {0x73, 0, 0, 0, 0},
10746 {0x74, 0xe, 0xe, 0, 0},
10747 {0x75, 0xe, 0xe, 0, 0},
10748 {0x76, 0xe, 0xe, 0, 0},
10749 {0x77, 0x13, 0x13, 0, 0},
10750 {0x78, 0x13, 0x13, 0, 0},
10751 {0x79, 0x1b, 0x1b, 0, 0},
10752 {0x7A, 0x1b, 0x1b, 0, 0},
10753 {0x7B, 0x55, 0x55, 0, 0},
10754 {0x7C, 0x5b, 0x5b, 0, 0},
10755 {0x7D, 0x30, 0x30, 1, 1},
10756 {0x7E, 0, 0, 0, 0},
10757 {0x7F, 0, 0, 0, 0},
10758 {0x80, 0, 0, 0, 0},
10759 {0x81, 0, 0, 0, 0},
10760 {0x82, 0, 0, 0, 0},
10761 {0x83, 0, 0, 0, 0},
10762 {0x84, 0, 0, 0, 0},
10763 {0x85, 0, 0, 0, 0},
10764 {0x86, 0, 0, 0, 0},
10765 {0x87, 0, 0, 0, 0},
10766 {0x88, 0, 0, 0, 0},
10767 {0x89, 0, 0, 0, 0},
10768 {0x8A, 0, 0, 0, 0},
10769 {0x8B, 0, 0, 0, 0},
10770 {0x8C, 0, 0, 0, 0},
10771 {0x8D, 0, 0, 0, 0},
10772 {0x8E, 0, 0, 0, 0},
10773 {0x8F, 0, 0, 0, 0},
10774 {0x90, 0, 0, 0, 0},
10775 {0x91, 0, 0, 0, 0},
10776 {0x92, 0, 0, 0, 0},
10777 {0x93, 0x70, 0x70, 0, 0},
10778 {0x94, 0x70, 0x70, 0, 0},
10779 {0x95, 0x70, 0x70, 0, 0},
10780 {0x96, 0x70, 0x70, 0, 0},
10781 {0x97, 0x70, 0x70, 0, 0},
10782 {0x98, 0x70, 0x70, 0, 0},
10783 {0x99, 0x70, 0x70, 0, 0},
10784 {0x9A, 0x70, 0x70, 0, 0},
10785 {0xFFFF, 0, 0, 0, 0},
10788 static struct radio_regs regs_RX_2056_rev8
[] = {
10789 {0x02, 0, 0, 0, 0},
10790 {0x03, 0, 0, 0, 0},
10791 {0x04, 0, 0, 0, 0},
10792 {0x05, 0, 0, 0, 0},
10793 {0x06, 0, 0, 0, 0},
10794 {0x07, 0, 0, 0, 0},
10795 {0x08, 0, 0, 0, 0},
10796 {0x09, 0, 0, 0, 0},
10797 {0x0A, 0, 0, 0, 0},
10798 {0x0B, 0, 0, 0, 0},
10799 {0x0C, 0, 0, 0, 0},
10800 {0x0D, 0, 0, 0, 0},
10801 {0x0E, 0, 0, 0, 0},
10802 {0x0F, 0, 0, 0, 0},
10803 {0x10, 0, 0, 0, 0},
10804 {0x11, 0, 0, 0, 0},
10805 {0x12, 0, 0, 0, 0},
10806 {0x13, 0, 0, 0, 0},
10807 {0x14, 0, 0, 0, 0},
10808 {0x15, 0, 0, 0, 0},
10809 {0x16, 0, 0, 0, 0},
10810 {0x17, 0, 0, 0, 0},
10811 {0x18, 0, 0, 0, 0},
10812 {0x19, 0, 0, 0, 0},
10813 {0x1A, 0, 0, 0, 0},
10814 {0x1B, 0, 0, 0, 0},
10815 {0x1C, 0, 0, 0, 0},
10816 {0x1D, 0, 0, 0, 0},
10817 {0x1E, 0, 0, 0, 0},
10818 {0x1F, 0, 0, 0, 0},
10819 {0x20, 0x3, 0x3, 0, 0},
10820 {0x21, 0, 0, 0, 0},
10821 {0x22, 0, 0, 0, 0},
10822 {0x23, 0x90, 0x90, 0, 0},
10823 {0x24, 0x55, 0x55, 0, 0},
10824 {0x25, 0x15, 0x15, 0, 0},
10825 {0x26, 0x5, 0x5, 0, 0},
10826 {0x27, 0x15, 0x15, 0, 0},
10827 {0x28, 0x5, 0x5, 0, 0},
10828 {0x29, 0x20, 0x20, 0, 0},
10829 {0x2A, 0x11, 0x11, 0, 0},
10830 {0x2B, 0x90, 0x90, 0, 0},
10831 {0x2C, 0, 0, 0, 0},
10832 {0x2D, 0x88, 0x88, 0, 0},
10833 {0x2E, 0x32, 0x32, 0, 0},
10834 {0x2F, 0x77, 0x77, 0, 0},
10835 {0x30, 0x17, 0x17, 1, 1},
10836 {0x31, 0xff, 0xff, 1, 1},
10837 {0x32, 0x20, 0x20, 0, 0},
10838 {0x33, 0, 0, 0, 0},
10839 {0x34, 0x88, 0x88, 0, 0},
10840 {0x35, 0x32, 0x32, 0, 0},
10841 {0x36, 0x77, 0x77, 0, 0},
10842 {0x37, 0x17, 0x17, 1, 1},
10843 {0x38, 0xf0, 0xf0, 1, 1},
10844 {0x39, 0x20, 0x20, 0, 0},
10845 {0x3A, 0x8, 0x8, 0, 0},
10846 {0x3B, 0x55, 0x55, 1, 1},
10847 {0x3C, 0, 0, 0, 0},
10848 {0x3D, 0x88, 0x88, 1, 1},
10849 {0x3E, 0, 0, 0, 0},
10850 {0x3F, 0x44, 0x44, 0, 0},
10851 {0x40, 0x7, 0x7, 1, 1},
10852 {0x41, 0x6, 0x6, 0, 0},
10853 {0x42, 0x4, 0x4, 0, 0},
10854 {0x43, 0, 0, 0, 0},
10855 {0x44, 0x8, 0x8, 0, 0},
10856 {0x45, 0x55, 0x55, 1, 1},
10857 {0x46, 0, 0, 0, 0},
10858 {0x47, 0x11, 0x11, 0, 0},
10859 {0x48, 0, 0, 0, 0},
10860 {0x49, 0x44, 0x44, 0, 0},
10861 {0x4A, 0x7, 0x7, 0, 0},
10862 {0x4B, 0x6, 0x6, 0, 0},
10863 {0x4C, 0x4, 0x4, 0, 0},
10864 {0x4D, 0, 0, 0, 0},
10865 {0x4E, 0, 0, 0, 0},
10866 {0x4F, 0x26, 0x26, 1, 1},
10867 {0x50, 0x26, 0x26, 1, 1},
10868 {0x51, 0xf, 0xf, 1, 1},
10869 {0x52, 0xf, 0xf, 1, 1},
10870 {0x53, 0x44, 0x44, 0, 0},
10871 {0x54, 0, 0, 0, 0},
10872 {0x55, 0, 0, 0, 0},
10873 {0x56, 0x8, 0x8, 0, 0},
10874 {0x57, 0x8, 0x8, 0, 0},
10875 {0x58, 0x7, 0x7, 0, 0},
10876 {0x59, 0x22, 0x22, 0, 0},
10877 {0x5A, 0x22, 0x22, 0, 0},
10878 {0x5B, 0x2, 0x2, 0, 0},
10879 {0x5C, 0x4, 0x4, 1, 1},
10880 {0x5D, 0x7, 0x7, 0, 0},
10881 {0x5E, 0x55, 0x55, 0, 0},
10882 {0x5F, 0x23, 0x23, 0, 0},
10883 {0x60, 0x41, 0x41, 0, 0},
10884 {0x61, 0x1, 0x1, 0, 0},
10885 {0x62, 0xa, 0xa, 0, 0},
10886 {0x63, 0, 0, 0, 0},
10887 {0x64, 0, 0, 0, 0},
10888 {0x65, 0, 0, 0, 0},
10889 {0x66, 0, 0, 0, 0},
10890 {0x67, 0, 0, 0, 0},
10891 {0x68, 0, 0, 0, 0},
10892 {0x69, 0, 0, 0, 0},
10893 {0x6A, 0, 0, 0, 0},
10894 {0x6B, 0xc, 0xc, 0, 0},
10895 {0x6C, 0, 0, 0, 0},
10896 {0x6D, 0, 0, 0, 0},
10897 {0x6E, 0, 0, 0, 0},
10898 {0x6F, 0, 0, 0, 0},
10899 {0x70, 0, 0, 0, 0},
10900 {0x71, 0, 0, 0, 0},
10901 {0x72, 0x22, 0x22, 0, 0},
10902 {0x73, 0x22, 0x22, 0, 0},
10903 {0x74, 0, 0, 1, 1},
10904 {0x75, 0xa, 0xa, 0, 0},
10905 {0x76, 0x1, 0x1, 0, 0},
10906 {0x77, 0x22, 0x22, 0, 0},
10907 {0x78, 0x30, 0x30, 0, 0},
10908 {0x79, 0, 0, 0, 0},
10909 {0x7A, 0, 0, 0, 0},
10910 {0x7B, 0, 0, 0, 0},
10911 {0x7C, 0, 0, 0, 0},
10912 {0x7D, 0x5, 0x5, 1, 1},
10913 {0x7E, 0, 0, 0, 0},
10914 {0x7F, 0, 0, 0, 0},
10915 {0x80, 0, 0, 0, 0},
10916 {0x81, 0, 0, 0, 0},
10917 {0x82, 0, 0, 0, 0},
10918 {0x83, 0, 0, 0, 0},
10919 {0x84, 0, 0, 0, 0},
10920 {0x85, 0, 0, 0, 0},
10921 {0x86, 0, 0, 0, 0},
10922 {0x87, 0, 0, 0, 0},
10923 {0x88, 0, 0, 0, 0},
10924 {0x89, 0, 0, 0, 0},
10925 {0x8A, 0, 0, 0, 0},
10926 {0x8B, 0, 0, 0, 0},
10927 {0x8C, 0, 0, 0, 0},
10928 {0x8D, 0, 0, 0, 0},
10929 {0x8E, 0, 0, 0, 0},
10930 {0x8F, 0, 0, 0, 0},
10931 {0x90, 0, 0, 0, 0},
10932 {0x91, 0, 0, 0, 0},
10933 {0x92, 0, 0, 0, 0},
10934 {0x93, 0, 0, 0, 0},
10935 {0x94, 0, 0, 0, 0},
10936 {0xFFFF, 0, 0, 0, 0},
10939 static const struct radio_regs regs_SYN_2056_rev11
[] = {
10940 {0x02, 0, 0, 0, 0},
10941 {0x03, 0, 0, 0, 0},
10942 {0x04, 0, 0, 0, 0},
10943 {0x05, 0, 0, 0, 0},
10944 {0x06, 0, 0, 0, 0},
10945 {0x07, 0, 0, 0, 0},
10946 {0x08, 0, 0, 0, 0},
10947 {0x09, 0x1, 0x1, 0, 0},
10948 {0x0A, 0, 0, 0, 0},
10949 {0x0B, 0, 0, 0, 0},
10950 {0x0C, 0, 0, 0, 0},
10951 {0x0D, 0, 0, 0, 0},
10952 {0x0E, 0, 0, 0, 0},
10953 {0x0F, 0, 0, 0, 0},
10954 {0x10, 0, 0, 0, 0},
10955 {0x11, 0, 0, 0, 0},
10956 {0x12, 0, 0, 0, 0},
10957 {0x13, 0, 0, 0, 0},
10958 {0x14, 0, 0, 0, 0},
10959 {0x15, 0, 0, 0, 0},
10960 {0x16, 0, 0, 0, 0},
10961 {0x17, 0, 0, 0, 0},
10962 {0x18, 0, 0, 0, 0},
10963 {0x19, 0, 0, 0, 0},
10964 {0x1A, 0, 0, 0, 0},
10965 {0x1B, 0, 0, 0, 0},
10966 {0x1C, 0, 0, 0, 0},
10967 {0x1D, 0, 0, 0, 0},
10968 {0x1E, 0, 0, 0, 0},
10969 {0x1F, 0, 0, 0, 0},
10970 {0x20, 0, 0, 0, 0},
10971 {0x21, 0, 0, 0, 0},
10972 {0x22, 0x60, 0x60, 0, 0},
10973 {0x23, 0x6, 0x6, 0, 0},
10974 {0x24, 0xc, 0xc, 0, 0},
10975 {0x25, 0, 0, 0, 0},
10976 {0x26, 0, 0, 0, 0},
10977 {0x27, 0, 0, 0, 0},
10978 {0x28, 0x1, 0x1, 0, 0},
10979 {0x29, 0, 0, 0, 0},
10980 {0x2A, 0, 0, 0, 0},
10981 {0x2B, 0, 0, 0, 0},
10982 {0x2C, 0, 0, 0, 0},
10983 {0x2D, 0, 0, 0, 0},
10984 {0x2E, 0, 0, 0, 0},
10985 {0x2F, 0x1f, 0x1f, 0, 0},
10986 {0x30, 0x15, 0x15, 0, 0},
10987 {0x31, 0xf, 0xf, 0, 0},
10988 {0x32, 0, 0, 0, 0},
10989 {0x33, 0, 0, 0, 0},
10990 {0x34, 0, 0, 0, 0},
10991 {0x35, 0, 0, 0, 0},
10992 {0x36, 0, 0, 0, 0},
10993 {0x37, 0, 0, 0, 0},
10994 {0x38, 0, 0, 0, 0},
10995 {0x39, 0, 0, 0, 0},
10996 {0x3A, 0, 0, 0, 0},
10997 {0x3B, 0, 0, 0, 0},
10998 {0x3C, 0x13, 0x13, 0, 0},
10999 {0x3D, 0xf, 0xf, 0, 0},
11000 {0x3E, 0x18, 0x18, 0, 0},
11001 {0x3F, 0, 0, 0, 0},
11002 {0x40, 0, 0, 0, 0},
11003 {0x41, 0x20, 0x20, 0, 0},
11004 {0x42, 0x20, 0x20, 0, 0},
11005 {0x43, 0, 0, 0, 0},
11006 {0x44, 0x77, 0x77, 0, 0},
11007 {0x45, 0x7, 0x7, 0, 0},
11008 {0x46, 0x1, 0x1, 0, 0},
11009 {0x47, 0x6, 0x6, 1, 1},
11010 {0x48, 0xf, 0xf, 0, 0},
11011 {0x49, 0x3f, 0x3f, 1, 1},
11012 {0x4A, 0x32, 0x32, 0, 0},
11013 {0x4B, 0x6, 0x6, 1, 1},
11014 {0x4C, 0x6, 0x6, 1, 1},
11015 {0x4D, 0x4, 0x4, 0, 0},
11016 {0x4E, 0x2b, 0x2b, 1, 1},
11017 {0x4F, 0x1, 0x1, 0, 0},
11018 {0x50, 0x1c, 0x1c, 0, 0},
11019 {0x51, 0x2, 0x2, 0, 0},
11020 {0x52, 0x2, 0x2, 0, 0},
11021 {0x53, 0xf7, 0xf7, 1, 1},
11022 {0x54, 0xb4, 0xb4, 0, 0},
11023 {0x55, 0xd2, 0xd2, 0, 0},
11024 {0x56, 0, 0, 0, 0},
11025 {0x57, 0, 0, 0, 0},
11026 {0x58, 0x4, 0x4, 0, 0},
11027 {0x59, 0x96, 0x96, 0, 0},
11028 {0x5A, 0x3e, 0x3e, 0, 0},
11029 {0x5B, 0x3e, 0x3e, 0, 0},
11030 {0x5C, 0x13, 0x13, 0, 0},
11031 {0x5D, 0x2, 0x2, 0, 0},
11032 {0x5E, 0, 0, 0, 0},
11033 {0x5F, 0x7, 0x7, 0, 0},
11034 {0x60, 0x7, 0x7, 1, 1},
11035 {0x61, 0x8, 0x8, 0, 0},
11036 {0x62, 0x3, 0x3, 0, 0},
11037 {0x63, 0, 0, 0, 0},
11038 {0x64, 0, 0, 0, 0},
11039 {0x65, 0, 0, 0, 0},
11040 {0x66, 0, 0, 0, 0},
11041 {0x67, 0, 0, 0, 0},
11042 {0x68, 0x40, 0x40, 0, 0},
11043 {0x69, 0, 0, 0, 0},
11044 {0x6A, 0, 0, 0, 0},
11045 {0x6B, 0, 0, 0, 0},
11046 {0x6C, 0, 0, 0, 0},
11047 {0x6D, 0x1, 0x1, 0, 0},
11048 {0x6E, 0, 0, 0, 0},
11049 {0x6F, 0, 0, 0, 0},
11050 {0x70, 0x60, 0x60, 0, 0},
11051 {0x71, 0x66, 0x66, 0, 0},
11052 {0x72, 0xc, 0xc, 0, 0},
11053 {0x73, 0x66, 0x66, 0, 0},
11054 {0x74, 0x8f, 0x8f, 1, 1},
11055 {0x75, 0, 0, 0, 0},
11056 {0x76, 0xcc, 0xcc, 0, 0},
11057 {0x77, 0x1, 0x1, 0, 0},
11058 {0x78, 0x66, 0x66, 0, 0},
11059 {0x79, 0x66, 0x66, 0, 0},
11060 {0x7A, 0, 0, 0, 0},
11061 {0x7B, 0, 0, 0, 0},
11062 {0x7C, 0, 0, 0, 0},
11063 {0x7D, 0, 0, 0, 0},
11064 {0x7E, 0, 0, 0, 0},
11065 {0x7F, 0, 0, 0, 0},
11066 {0x80, 0, 0, 0, 0},
11067 {0x81, 0, 0, 0, 0},
11068 {0x82, 0, 0, 0, 0},
11069 {0x83, 0, 0, 0, 0},
11070 {0x84, 0, 0, 0, 0},
11071 {0x85, 0xff, 0xff, 0, 0},
11072 {0x86, 0, 0, 0, 0},
11073 {0x87, 0, 0, 0, 0},
11074 {0x88, 0, 0, 0, 0},
11075 {0x89, 0, 0, 0, 0},
11076 {0x8A, 0, 0, 0, 0},
11077 {0x8B, 0, 0, 0, 0},
11078 {0x8C, 0, 0, 0, 0},
11079 {0x8D, 0, 0, 0, 0},
11080 {0x8E, 0, 0, 0, 0},
11081 {0x8F, 0, 0, 0, 0},
11082 {0x90, 0, 0, 0, 0},
11083 {0x91, 0, 0, 0, 0},
11084 {0x92, 0, 0, 0, 0},
11085 {0x93, 0, 0, 0, 0},
11086 {0x94, 0, 0, 0, 0},
11087 {0x95, 0, 0, 0, 0},
11088 {0x96, 0, 0, 0, 0},
11089 {0x97, 0, 0, 0, 0},
11090 {0x98, 0, 0, 0, 0},
11091 {0x99, 0, 0, 0, 0},
11092 {0x9A, 0, 0, 0, 0},
11093 {0x9B, 0, 0, 0, 0},
11094 {0x9C, 0, 0, 0, 0},
11095 {0x9D, 0, 0, 0, 0},
11096 {0x9E, 0, 0, 0, 0},
11097 {0x9F, 0x6, 0x6, 0, 0},
11098 {0xA0, 0x66, 0x66, 0, 0},
11099 {0xA1, 0x66, 0x66, 0, 0},
11100 {0xA2, 0x66, 0x66, 0, 0},
11101 {0xA3, 0x66, 0x66, 0, 0},
11102 {0xA4, 0x66, 0x66, 0, 0},
11103 {0xA5, 0x66, 0x66, 0, 0},
11104 {0xA6, 0x66, 0x66, 0, 0},
11105 {0xA7, 0x66, 0x66, 0, 0},
11106 {0xA8, 0x66, 0x66, 0, 0},
11107 {0xA9, 0x66, 0x66, 0, 0},
11108 {0xAA, 0x66, 0x66, 0, 0},
11109 {0xAB, 0x66, 0x66, 0, 0},
11110 {0xAC, 0x66, 0x66, 0, 0},
11111 {0xAD, 0x66, 0x66, 0, 0},
11112 {0xAE, 0x66, 0x66, 0, 0},
11113 {0xAF, 0x66, 0x66, 0, 0},
11114 {0xB0, 0x66, 0x66, 0, 0},
11115 {0xB1, 0x66, 0x66, 0, 0},
11116 {0xB2, 0x66, 0x66, 0, 0},
11117 {0xB3, 0xa, 0xa, 0, 0},
11118 {0xB4, 0, 0, 0, 0},
11119 {0xB5, 0, 0, 0, 0},
11120 {0xB6, 0, 0, 0, 0},
11121 {0xFFFF, 0, 0, 0, 0},
11124 static const struct radio_regs regs_TX_2056_rev11
[] = {
11125 {0x02, 0, 0, 0, 0},
11126 {0x03, 0, 0, 0, 0},
11127 {0x04, 0, 0, 0, 0},
11128 {0x05, 0, 0, 0, 0},
11129 {0x06, 0, 0, 0, 0},
11130 {0x07, 0, 0, 0, 0},
11131 {0x08, 0, 0, 0, 0},
11132 {0x09, 0, 0, 0, 0},
11133 {0x0A, 0, 0, 0, 0},
11134 {0x0B, 0, 0, 0, 0},
11135 {0x0C, 0, 0, 0, 0},
11136 {0x0D, 0, 0, 0, 0},
11137 {0x0E, 0, 0, 0, 0},
11138 {0x0F, 0, 0, 0, 0},
11139 {0x10, 0, 0, 0, 0},
11140 {0x11, 0, 0, 0, 0},
11141 {0x12, 0, 0, 0, 0},
11142 {0x13, 0, 0, 0, 0},
11143 {0x14, 0, 0, 0, 0},
11144 {0x15, 0, 0, 0, 0},
11145 {0x16, 0, 0, 0, 0},
11146 {0x17, 0, 0, 0, 0},
11147 {0x18, 0, 0, 0, 0},
11148 {0x19, 0, 0, 0, 0},
11149 {0x1A, 0, 0, 0, 0},
11150 {0x1B, 0, 0, 0, 0},
11151 {0x1C, 0, 0, 0, 0},
11152 {0x1D, 0, 0, 0, 0},
11153 {0x1E, 0, 0, 0, 0},
11154 {0x1F, 0, 0, 0, 0},
11155 {0x20, 0, 0, 0, 0},
11156 {0x21, 0x88, 0x88, 0, 0},
11157 {0x22, 0x88, 0x88, 0, 0},
11158 {0x23, 0x88, 0x88, 0, 0},
11159 {0x24, 0x88, 0x88, 0, 0},
11160 {0x25, 0xc, 0xc, 0, 0},
11161 {0x26, 0, 0, 0, 0},
11162 {0x27, 0x3, 0x3, 0, 0},
11163 {0x28, 0, 0, 0, 0},
11164 {0x29, 0x3, 0x3, 0, 0},
11165 {0x2A, 0x37, 0x37, 0, 0},
11166 {0x2B, 0x3, 0x3, 0, 0},
11167 {0x2C, 0, 0, 0, 0},
11168 {0x2D, 0, 0, 0, 0},
11169 {0x2E, 0x1, 0x1, 0, 0},
11170 {0x2F, 0x1, 0x1, 0, 0},
11171 {0x30, 0, 0, 0, 0},
11172 {0x31, 0, 0, 0, 0},
11173 {0x32, 0, 0, 0, 0},
11174 {0x33, 0x11, 0x11, 0, 0},
11175 {0x34, 0xee, 0xee, 1, 1},
11176 {0x35, 0, 0, 0, 0},
11177 {0x36, 0, 0, 0, 0},
11178 {0x37, 0x3, 0x3, 0, 0},
11179 {0x38, 0x50, 0x50, 1, 1},
11180 {0x39, 0, 0, 0, 0},
11181 {0x3A, 0x50, 0x50, 1, 1},
11182 {0x3B, 0, 0, 0, 0},
11183 {0x3C, 0x6e, 0x6e, 0, 0},
11184 {0x3D, 0xf0, 0xf0, 1, 1},
11185 {0x3E, 0, 0, 0, 0},
11186 {0x3F, 0, 0, 0, 0},
11187 {0x40, 0, 0, 0, 0},
11188 {0x41, 0x3, 0x3, 0, 0},
11189 {0x42, 0x3, 0x3, 0, 0},
11190 {0x43, 0, 0, 0, 0},
11191 {0x44, 0x1e, 0x1e, 0, 0},
11192 {0x45, 0, 0, 0, 0},
11193 {0x46, 0x6e, 0x6e, 0, 0},
11194 {0x47, 0xf0, 0xf0, 1, 1},
11195 {0x48, 0, 0, 0, 0},
11196 {0x49, 0x2, 0x2, 0, 0},
11197 {0x4A, 0xff, 0xff, 1, 1},
11198 {0x4B, 0xc, 0xc, 0, 0},
11199 {0x4C, 0, 0, 0, 0},
11200 {0x4D, 0x38, 0x38, 0, 0},
11201 {0x4E, 0x70, 0x70, 1, 1},
11202 {0x4F, 0x2, 0x2, 0, 0},
11203 {0x50, 0x88, 0x88, 0, 0},
11204 {0x51, 0xc, 0xc, 0, 0},
11205 {0x52, 0, 0, 0, 0},
11206 {0x53, 0x8, 0x8, 0, 0},
11207 {0x54, 0x70, 0x70, 1, 1},
11208 {0x55, 0x2, 0x2, 0, 0},
11209 {0x56, 0xff, 0xff, 1, 1},
11210 {0x57, 0, 0, 0, 0},
11211 {0x58, 0x83, 0x83, 0, 0},
11212 {0x59, 0x77, 0x77, 1, 1},
11213 {0x5A, 0, 0, 0, 0},
11214 {0x5B, 0x2, 0x2, 0, 0},
11215 {0x5C, 0x88, 0x88, 0, 0},
11216 {0x5D, 0, 0, 0, 0},
11217 {0x5E, 0x8, 0x8, 0, 0},
11218 {0x5F, 0x77, 0x77, 1, 1},
11219 {0x60, 0x1, 0x1, 0, 0},
11220 {0x61, 0, 0, 0, 0},
11221 {0x62, 0x7, 0x7, 0, 0},
11222 {0x63, 0, 0, 0, 0},
11223 {0x64, 0x7, 0x7, 0, 0},
11224 {0x65, 0, 0, 0, 0},
11225 {0x66, 0, 0, 0, 0},
11226 {0x67, 0, 0, 1, 1},
11227 {0x68, 0, 0, 0, 0},
11228 {0x69, 0xa, 0xa, 0, 0},
11229 {0x6A, 0, 0, 0, 0},
11230 {0x6B, 0, 0, 0, 0},
11231 {0x6C, 0, 0, 0, 0},
11232 {0x6D, 0, 0, 0, 0},
11233 {0x6E, 0, 0, 0, 0},
11234 {0x6F, 0, 0, 0, 0},
11235 {0x70, 0, 0, 0, 0},
11236 {0x71, 0x2, 0x2, 0, 0},
11237 {0x72, 0, 0, 0, 0},
11238 {0x73, 0, 0, 0, 0},
11239 {0x74, 0xe, 0xe, 0, 0},
11240 {0x75, 0xe, 0xe, 0, 0},
11241 {0x76, 0xe, 0xe, 0, 0},
11242 {0x77, 0x13, 0x13, 0, 0},
11243 {0x78, 0x13, 0x13, 0, 0},
11244 {0x79, 0x1b, 0x1b, 0, 0},
11245 {0x7A, 0x1b, 0x1b, 0, 0},
11246 {0x7B, 0x55, 0x55, 0, 0},
11247 {0x7C, 0x5b, 0x5b, 0, 0},
11248 {0x7D, 0x30, 0x30, 1, 1},
11249 {0x7E, 0, 0, 0, 0},
11250 {0x7F, 0, 0, 0, 0},
11251 {0x80, 0, 0, 0, 0},
11252 {0x81, 0, 0, 0, 0},
11253 {0x82, 0, 0, 0, 0},
11254 {0x83, 0, 0, 0, 0},
11255 {0x84, 0, 0, 0, 0},
11256 {0x85, 0, 0, 0, 0},
11257 {0x86, 0, 0, 0, 0},
11258 {0x87, 0, 0, 0, 0},
11259 {0x88, 0, 0, 0, 0},
11260 {0x89, 0, 0, 0, 0},
11261 {0x8A, 0, 0, 0, 0},
11262 {0x8B, 0, 0, 0, 0},
11263 {0x8C, 0, 0, 0, 0},
11264 {0x8D, 0, 0, 0, 0},
11265 {0x8E, 0, 0, 0, 0},
11266 {0x8F, 0, 0, 0, 0},
11267 {0x90, 0, 0, 0, 0},
11268 {0x91, 0, 0, 0, 0},
11269 {0x92, 0, 0, 0, 0},
11270 {0x93, 0x70, 0x70, 0, 0},
11271 {0x94, 0x70, 0x70, 0, 0},
11272 {0x95, 0x70, 0x70, 0, 0},
11273 {0x96, 0x70, 0x70, 0, 0},
11274 {0x97, 0x70, 0x70, 0, 0},
11275 {0x98, 0x70, 0x70, 0, 0},
11276 {0x99, 0x70, 0x70, 0, 0},
11277 {0x9A, 0x70, 0x70, 0, 0},
11278 {0xFFFF, 0, 0, 0, 0},
11281 static const struct radio_regs regs_RX_2056_rev11
[] = {
11282 {0x02, 0, 0, 0, 0},
11283 {0x03, 0, 0, 0, 0},
11284 {0x04, 0, 0, 0, 0},
11285 {0x05, 0, 0, 0, 0},
11286 {0x06, 0, 0, 0, 0},
11287 {0x07, 0, 0, 0, 0},
11288 {0x08, 0, 0, 0, 0},
11289 {0x09, 0, 0, 0, 0},
11290 {0x0A, 0, 0, 0, 0},
11291 {0x0B, 0, 0, 0, 0},
11292 {0x0C, 0, 0, 0, 0},
11293 {0x0D, 0, 0, 0, 0},
11294 {0x0E, 0, 0, 0, 0},
11295 {0x0F, 0, 0, 0, 0},
11296 {0x10, 0, 0, 0, 0},
11297 {0x11, 0, 0, 0, 0},
11298 {0x12, 0, 0, 0, 0},
11299 {0x13, 0, 0, 0, 0},
11300 {0x14, 0, 0, 0, 0},
11301 {0x15, 0, 0, 0, 0},
11302 {0x16, 0, 0, 0, 0},
11303 {0x17, 0, 0, 0, 0},
11304 {0x18, 0, 0, 0, 0},
11305 {0x19, 0, 0, 0, 0},
11306 {0x1A, 0, 0, 0, 0},
11307 {0x1B, 0, 0, 0, 0},
11308 {0x1C, 0, 0, 0, 0},
11309 {0x1D, 0, 0, 0, 0},
11310 {0x1E, 0, 0, 0, 0},
11311 {0x1F, 0, 0, 0, 0},
11312 {0x20, 0x3, 0x3, 0, 0},
11313 {0x21, 0, 0, 0, 0},
11314 {0x22, 0, 0, 0, 0},
11315 {0x23, 0x90, 0x90, 0, 0},
11316 {0x24, 0x55, 0x55, 0, 0},
11317 {0x25, 0x15, 0x15, 0, 0},
11318 {0x26, 0x5, 0x5, 0, 0},
11319 {0x27, 0x15, 0x15, 0, 0},
11320 {0x28, 0x5, 0x5, 0, 0},
11321 {0x29, 0x20, 0x20, 0, 0},
11322 {0x2A, 0x11, 0x11, 0, 0},
11323 {0x2B, 0x90, 0x90, 0, 0},
11324 {0x2C, 0, 0, 0, 0},
11325 {0x2D, 0x88, 0x88, 0, 0},
11326 {0x2E, 0x32, 0x32, 0, 0},
11327 {0x2F, 0x77, 0x77, 0, 0},
11328 {0x30, 0x17, 0x17, 1, 1},
11329 {0x31, 0xff, 0xff, 1, 1},
11330 {0x32, 0x20, 0x20, 0, 0},
11331 {0x33, 0, 0, 0, 0},
11332 {0x34, 0x88, 0x88, 0, 0},
11333 {0x35, 0x32, 0x32, 0, 0},
11334 {0x36, 0x77, 0x77, 0, 0},
11335 {0x37, 0x17, 0x17, 1, 1},
11336 {0x38, 0xf0, 0xf0, 1, 1},
11337 {0x39, 0x20, 0x20, 0, 0},
11338 {0x3A, 0x8, 0x8, 0, 0},
11339 {0x3B, 0x55, 0x55, 1, 1},
11340 {0x3C, 0, 0, 0, 0},
11341 {0x3D, 0x88, 0x88, 1, 1},
11342 {0x3E, 0, 0, 0, 0},
11343 {0x3F, 0x44, 0x44, 0, 0},
11344 {0x40, 0x7, 0x7, 1, 1},
11345 {0x41, 0x6, 0x6, 0, 0},
11346 {0x42, 0x4, 0x4, 0, 0},
11347 {0x43, 0, 0, 0, 0},
11348 {0x44, 0x8, 0x8, 0, 0},
11349 {0x45, 0x55, 0x55, 1, 1},
11350 {0x46, 0, 0, 0, 0},
11351 {0x47, 0x11, 0x11, 0, 0},
11352 {0x48, 0, 0, 0, 0},
11353 {0x49, 0x44, 0x44, 0, 0},
11354 {0x4A, 0x7, 0x7, 0, 0},
11355 {0x4B, 0x6, 0x6, 0, 0},
11356 {0x4C, 0x4, 0x4, 0, 0},
11357 {0x4D, 0, 0, 0, 0},
11358 {0x4E, 0, 0, 0, 0},
11359 {0x4F, 0x26, 0x26, 1, 1},
11360 {0x50, 0x26, 0x26, 1, 1},
11361 {0x51, 0xf, 0xf, 1, 1},
11362 {0x52, 0xf, 0xf, 1, 1},
11363 {0x53, 0x44, 0x44, 0, 0},
11364 {0x54, 0, 0, 0, 0},
11365 {0x55, 0, 0, 0, 0},
11366 {0x56, 0x8, 0x8, 0, 0},
11367 {0x57, 0x8, 0x8, 0, 0},
11368 {0x58, 0x7, 0x7, 0, 0},
11369 {0x59, 0x22, 0x22, 0, 0},
11370 {0x5A, 0x22, 0x22, 0, 0},
11371 {0x5B, 0x2, 0x2, 0, 0},
11372 {0x5C, 0x4, 0x4, 1, 1},
11373 {0x5D, 0x7, 0x7, 0, 0},
11374 {0x5E, 0x55, 0x55, 0, 0},
11375 {0x5F, 0x23, 0x23, 0, 0},
11376 {0x60, 0x41, 0x41, 0, 0},
11377 {0x61, 0x1, 0x1, 0, 0},
11378 {0x62, 0xa, 0xa, 0, 0},
11379 {0x63, 0, 0, 0, 0},
11380 {0x64, 0, 0, 0, 0},
11381 {0x65, 0, 0, 0, 0},
11382 {0x66, 0, 0, 0, 0},
11383 {0x67, 0, 0, 0, 0},
11384 {0x68, 0, 0, 0, 0},
11385 {0x69, 0, 0, 0, 0},
11386 {0x6A, 0, 0, 0, 0},
11387 {0x6B, 0xc, 0xc, 0, 0},
11388 {0x6C, 0, 0, 0, 0},
11389 {0x6D, 0, 0, 0, 0},
11390 {0x6E, 0, 0, 0, 0},
11391 {0x6F, 0, 0, 0, 0},
11392 {0x70, 0, 0, 0, 0},
11393 {0x71, 0, 0, 0, 0},
11394 {0x72, 0x22, 0x22, 0, 0},
11395 {0x73, 0x22, 0x22, 0, 0},
11396 {0x74, 0, 0, 1, 1},
11397 {0x75, 0xa, 0xa, 0, 0},
11398 {0x76, 0x1, 0x1, 0, 0},
11399 {0x77, 0x22, 0x22, 0, 0},
11400 {0x78, 0x30, 0x30, 0, 0},
11401 {0x79, 0, 0, 0, 0},
11402 {0x7A, 0, 0, 0, 0},
11403 {0x7B, 0, 0, 0, 0},
11404 {0x7C, 0, 0, 0, 0},
11405 {0x7D, 0x5, 0x5, 1, 1},
11406 {0x7E, 0, 0, 0, 0},
11407 {0x7F, 0, 0, 0, 0},
11408 {0x80, 0, 0, 0, 0},
11409 {0x81, 0, 0, 0, 0},
11410 {0x82, 0, 0, 0, 0},
11411 {0x83, 0, 0, 0, 0},
11412 {0x84, 0, 0, 0, 0},
11413 {0x85, 0, 0, 0, 0},
11414 {0x86, 0, 0, 0, 0},
11415 {0x87, 0, 0, 0, 0},
11416 {0x88, 0, 0, 0, 0},
11417 {0x89, 0, 0, 0, 0},
11418 {0x8A, 0, 0, 0, 0},
11419 {0x8B, 0, 0, 0, 0},
11420 {0x8C, 0, 0, 0, 0},
11421 {0x8D, 0, 0, 0, 0},
11422 {0x8E, 0, 0, 0, 0},
11423 {0x8F, 0, 0, 0, 0},
11424 {0x90, 0, 0, 0, 0},
11425 {0x91, 0, 0, 0, 0},
11426 {0x92, 0, 0, 0, 0},
11427 {0x93, 0, 0, 0, 0},
11428 {0x94, 0, 0, 0, 0},
11429 {0xFFFF, 0, 0, 0, 0},
11432 static struct radio_20xx_regs regs_2057_rev4
[] = {
11822 static struct radio_20xx_regs regs_2057_rev5
[] = {
12154 static struct radio_20xx_regs regs_2057_rev5v1
[] = {
12486 static struct radio_20xx_regs regs_2057_rev7
[] = {
12902 static struct radio_20xx_regs regs_2057_rev8
[] = {
13318 static s16 nphy_def_lnagains
[] = { -2, 10, 19, 25 };
13320 static s32 nphy_lnagain_est0
[] = { -315, 40370 };
13321 static s32 nphy_lnagain_est1
[] = { -224, 23242 };
13323 static const u16 tbl_iqcal_gainparams_nphy
[2][NPHY_IQCAL_NUMGAINS
][8] = {
13325 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13326 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13327 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13328 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13329 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13330 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13331 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13332 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13333 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13336 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13337 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13338 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13339 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13340 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13341 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13342 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13343 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13344 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13348 static const u32 nphy_tpc_txgain
[] = {
13349 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13350 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13351 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13352 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13353 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13354 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13355 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13356 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13357 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13358 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13359 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13360 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13361 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13362 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13363 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13364 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13365 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13366 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13367 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13368 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13369 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13370 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13371 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13372 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13373 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13374 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13375 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13376 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13377 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13378 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13379 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13380 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13383 static const u16 nphy_tpc_loscale
[] = {
13384 256, 256, 271, 271, 287, 256, 256, 271,
13385 271, 287, 287, 304, 304, 256, 256, 271,
13386 271, 287, 287, 304, 304, 322, 322, 341,
13387 341, 362, 362, 383, 383, 256, 256, 271,
13388 271, 287, 287, 304, 304, 322, 322, 256,
13389 256, 271, 271, 287, 287, 304, 304, 322,
13390 322, 341, 341, 362, 362, 256, 256, 271,
13391 271, 287, 287, 304, 304, 322, 322, 256,
13392 256, 271, 271, 287, 287, 304, 304, 322,
13393 322, 341, 341, 362, 362, 256, 256, 271,
13394 271, 287, 287, 304, 304, 322, 322, 341,
13395 341, 362, 362, 383, 383, 406, 406, 430,
13396 430, 455, 455, 482, 482, 511, 511, 541,
13397 541, 573, 573, 607, 607, 643, 643, 681,
13398 681, 722, 722, 764, 764, 810, 810, 858,
13399 858, 908, 908, 962, 962, 1019, 1019, 256
13402 static u32 nphy_tpc_txgain_ipa
[] = {
13403 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13404 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13405 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13406 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13407 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13408 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13409 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13410 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13411 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13412 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13413 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13414 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13415 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13416 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13417 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13418 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13419 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13420 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13421 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13422 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13423 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13424 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13425 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13426 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13427 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13428 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13429 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13430 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13431 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13432 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13433 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13434 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13437 static u32 nphy_tpc_txgain_ipa_rev5
[] = {
13438 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13439 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13440 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13441 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13442 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13443 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13444 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13445 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13446 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13447 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13448 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13449 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13450 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13451 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13452 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13453 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13454 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13455 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13456 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13457 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13458 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13459 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13460 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13461 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13462 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13463 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13464 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13465 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13466 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13467 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13468 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13469 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13472 static u32 nphy_tpc_txgain_ipa_rev6
[] = {
13473 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13474 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13475 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13476 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13477 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13478 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13479 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13480 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13481 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13482 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13483 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13484 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13485 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13486 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13487 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13488 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13489 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13490 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13491 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13492 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13493 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13494 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13495 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13496 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13497 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13498 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13499 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13500 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13501 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13502 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13503 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13504 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13507 static u32 nphy_tpc_txgain_ipa_2g_2057rev3
[] = {
13508 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13509 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13510 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13511 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13512 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13513 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13514 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13515 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13516 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13517 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13518 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13519 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13520 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13521 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13522 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13523 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13524 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13525 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13526 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13527 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13528 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13529 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13530 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13531 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13532 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13533 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13534 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13535 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13536 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13537 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13538 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13539 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13542 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6
[] = {
13543 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13544 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13545 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13546 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13547 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13548 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13549 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13550 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13551 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13552 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13553 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13554 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13555 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13556 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13557 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13558 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13559 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13560 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13561 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13562 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13563 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13564 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13565 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13566 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13567 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13568 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13569 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13570 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13571 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13572 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13573 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13574 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13577 static u32 nphy_tpc_txgain_ipa_2g_2057rev5
[] = {
13578 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13579 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13580 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13581 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13582 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13583 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13584 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13585 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13586 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13587 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13588 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13589 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13590 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13591 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13592 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13593 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13594 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13595 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13596 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13597 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13598 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13599 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13609 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13612 static u32 nphy_tpc_txgain_ipa_2g_2057rev7
[] = {
13613 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13614 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13615 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13616 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13617 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13618 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13619 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13620 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13621 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13622 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13623 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13624 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13625 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13626 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13627 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13628 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13629 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13630 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13631 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13632 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13633 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13634 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13635 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13636 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13637 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13638 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13639 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13640 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13641 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13642 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13643 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13644 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13647 static u32 nphy_tpc_txgain_ipa_5g
[] = {
13648 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13649 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13650 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13651 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13652 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13653 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13654 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13655 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13656 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13657 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13658 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13659 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13660 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13661 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13662 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13663 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13664 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13665 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13666 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13667 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13668 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13669 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13670 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13671 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13672 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13673 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13674 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13675 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13676 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13677 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13678 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13679 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13682 static u32 nphy_tpc_txgain_ipa_5g_2057
[] = {
13683 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13684 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13685 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13686 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13687 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13688 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13689 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13690 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13691 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13692 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13693 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13694 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13695 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13696 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13697 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13698 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13699 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13700 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13701 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13702 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13703 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13704 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13705 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13706 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13707 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13708 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13709 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13710 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13711 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13712 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13713 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13714 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13717 static u32 nphy_tpc_txgain_ipa_5g_2057rev7
[] = {
13718 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13719 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13720 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13721 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13722 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13723 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13724 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13725 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13726 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13727 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13728 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13729 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13730 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13731 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13732 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13733 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13734 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13735 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13736 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13737 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13738 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13739 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13740 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13741 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13742 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13743 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13744 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13745 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13746 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13747 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13748 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13749 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13752 static s8 nphy_papd_pga_gain_delta_ipa_2g
[] = {
13753 -114, -108, -98, -91, -84, -78, -70, -62,
13754 -54, -46, -39, -31, -23, -15, -8, 0
13757 static s8 nphy_papd_pga_gain_delta_ipa_5g
[] = {
13758 -100, -95, -89, -83, -77, -70, -63, -56,
13759 -48, -41, -33, -25, -19, -12, -6, 0
13762 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4
[] = {
13763 -159, -113, -86, -72, -62, -54, -48, -43,
13764 -39, -35, -31, -28, -25, -23, -20, -18,
13765 -17, -15, -13, -11, -10, -8, -7, -6,
13766 -5, -4, -3, -3, -2, -1, -1, 0
13769 static s16 nphy_papd_padgain_dlt_2g_2057rev5
[] = {
13770 -109, -109, -82, -68, -58, -50, -44, -39,
13771 -35, -31, -28, -26, -23, -21, -19, -17,
13772 -16, -14, -13, -11, -10, -9, -8, -7,
13773 -5, -5, -4, -3, -2, -1, -1, 0
13776 static s16 nphy_papd_padgain_dlt_2g_2057rev7
[] = {
13777 -122, -122, -95, -80, -69, -61, -54, -49,
13778 -43, -39, -35, -32, -28, -26, -23, -21,
13779 -18, -16, -15, -13, -11, -10, -8, -7,
13780 -6, -5, -4, -3, -2, -1, -1, 0
13783 static s8 nphy_papd_pgagain_dlt_5g_2057
[] = {
13784 -107, -101, -92, -85, -78, -71, -62, -55,
13785 -47, -39, -32, -24, -19, -12, -6, 0
13788 static s8 nphy_papd_pgagain_dlt_5g_2057rev7
[] = {
13789 -110, -104, -95, -88, -81, -74, -66, -58,
13790 -50, -44, -36, -28, -23, -15, -8, 0
13793 static u8 pad_gain_codes_used_2057rev5
[] = {
13794 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13795 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13798 static u8 pad_gain_codes_used_2057rev7
[] = {
13799 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13803 static u8 pad_all_gain_codes_2057
[] = {
13804 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13805 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13806 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13810 static u8 pga_all_gain_codes_2057
[] = {
13811 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13814 static u32 nphy_papd_scaltbl
[] = {
13815 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13816 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13817 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13818 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13819 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13820 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13821 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13822 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13823 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13824 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13825 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13826 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13827 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13828 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13829 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13830 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13833 static u32 nphy_tpc_txgain_rev3
[] = {
13834 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13835 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13836 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13837 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13838 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13839 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13840 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13841 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13842 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13843 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13844 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13845 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13846 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13847 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13848 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13849 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13850 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13851 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13852 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13853 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13854 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13855 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13856 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13857 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13858 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13859 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13860 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13861 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13862 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13863 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13864 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13865 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13868 static u32 nphy_tpc_txgain_HiPwrEPA
[] = {
13869 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13870 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13871 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13872 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13873 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13874 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13875 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13876 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13877 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13878 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13879 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13880 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13881 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13882 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13883 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13884 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13885 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13886 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13887 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13888 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13889 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13890 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13891 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13892 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13893 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13894 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13895 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13896 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13897 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13898 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13899 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13900 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13903 static u32 nphy_tpc_txgain_epa_2057rev3
[] = {
13904 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13905 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13906 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13907 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13908 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13909 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13910 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13911 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13912 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13913 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13914 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13915 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13916 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13917 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13918 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13919 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13920 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13921 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13922 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13923 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13924 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13925 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13926 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13927 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13928 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13929 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13930 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13931 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13932 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13933 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13934 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13935 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13938 static u32 nphy_tpc_txgain_epa_2057rev5
[] = {
13939 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13940 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13941 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13942 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13943 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13944 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13945 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13946 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13947 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13948 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13949 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13950 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13951 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13952 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13953 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13954 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13955 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13956 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13957 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13958 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13959 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13960 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13961 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13962 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13963 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13964 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13965 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13966 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13967 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13968 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13969 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13970 0x10090001, 0x10090001, 0x10090001, 0x10090001
13973 static u32 nphy_tpc_5GHz_txgain_rev3
[] = {
13974 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13975 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13976 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13977 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13978 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13979 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13980 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13981 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13982 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13983 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13984 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13985 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13986 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13987 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13988 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13989 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13990 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13991 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13992 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13993 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13994 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13995 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13996 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13997 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13998 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13999 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
14000 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
14001 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
14002 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
14003 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
14004 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
14005 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
14008 static u32 nphy_tpc_5GHz_txgain_rev4
[] = {
14009 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
14010 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
14011 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14012 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14013 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14014 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14015 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14016 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14017 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14018 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14019 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14020 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14021 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14022 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14023 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14024 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14025 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14026 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14027 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14028 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14029 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14030 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14031 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14032 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14033 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14034 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14035 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14036 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14037 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14038 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14039 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14040 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14043 static u32 nphy_tpc_5GHz_txgain_rev5
[] = {
14044 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14045 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14046 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14047 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14048 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14049 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14050 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14051 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14052 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14053 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14054 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14055 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14056 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14057 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14058 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14059 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14060 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14061 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14062 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14063 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14064 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14065 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14066 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14067 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14068 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14069 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14070 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14071 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14072 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14073 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14074 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14075 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14078 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA
[] = {
14079 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14080 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14081 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14082 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14083 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14084 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14085 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14086 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14087 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14088 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14089 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14090 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14091 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14092 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14093 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14094 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14095 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14096 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14097 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14098 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14099 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14100 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14101 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14102 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14103 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14104 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14105 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14106 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14107 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14108 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14109 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14110 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14113 static u8 ant_sw_ctrl_tbl_rev8_2o3
[] = { 0x14, 0x18 };
14114 static u8 ant_sw_ctrl_tbl_rev8
[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14115 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0
[] = {
14116 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14118 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1
[] = {
14119 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14122 bool wlc_phy_bist_check_phy(struct brcms_phy_pub
*pih
)
14124 struct brcms_phy
*pi
= (struct brcms_phy
*) pih
;
14125 u32 phybist0
, phybist1
, phybist2
, phybist3
, phybist4
;
14127 if (NREV_GE(pi
->pubpi
.phy_rev
, 16))
14130 phybist0
= read_phy_reg(pi
, 0x0e);
14131 phybist1
= read_phy_reg(pi
, 0x0f);
14132 phybist2
= read_phy_reg(pi
, 0xea);
14133 phybist3
= read_phy_reg(pi
, 0xeb);
14134 phybist4
= read_phy_reg(pi
, 0x156);
14136 if ((phybist0
== 0) && (phybist1
== 0x4000) && (phybist2
== 0x1fe0) &&
14137 (phybist3
== 0) && (phybist4
== 0))
14143 static void wlc_phy_bphy_init_nphy(struct brcms_phy
*pi
)
14148 for (addr
= (NPHY_TO_BPHY_OFF
+ BPHY_RSSI_LUT
);
14149 addr
<= (NPHY_TO_BPHY_OFF
+ BPHY_RSSI_LUT_END
); addr
++) {
14150 write_phy_reg(pi
, addr
, val
);
14151 if (addr
== (NPHY_TO_BPHY_OFF
+ 0x97))
14157 write_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_STEP
, 0x668);
14161 wlc_phy_table_write_nphy(struct brcms_phy
*pi
, u32 id
, u32 len
, u32 offset
,
14162 u32 width
, const void *data
)
14164 struct phytbl_info tbl
;
14168 tbl
.tbl_offset
= offset
;
14169 tbl
.tbl_width
= width
;
14170 tbl
.tbl_ptr
= data
;
14171 wlc_phy_write_table_nphy(pi
, &tbl
);
14175 wlc_phy_table_read_nphy(struct brcms_phy
*pi
, u32 id
, u32 len
, u32 offset
,
14176 u32 width
, void *data
)
14178 struct phytbl_info tbl
;
14182 tbl
.tbl_offset
= offset
;
14183 tbl
.tbl_width
= width
;
14184 tbl
.tbl_ptr
= data
;
14185 wlc_phy_read_table_nphy(pi
, &tbl
);
14189 wlc_phy_static_table_download_nphy(struct brcms_phy
*pi
)
14193 if (NREV_GE(pi
->pubpi
.phy_rev
, 16)) {
14194 for (idx
= 0; idx
< mimophytbl_info_sz_rev16
; idx
++)
14195 wlc_phy_write_table_nphy(pi
,
14196 &mimophytbl_info_rev16
[idx
]);
14197 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14198 for (idx
= 0; idx
< mimophytbl_info_sz_rev7
; idx
++)
14199 wlc_phy_write_table_nphy(pi
,
14200 &mimophytbl_info_rev7
[idx
]);
14201 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14202 for (idx
= 0; idx
< mimophytbl_info_sz_rev3
; idx
++)
14203 wlc_phy_write_table_nphy(pi
,
14204 &mimophytbl_info_rev3
[idx
]);
14206 for (idx
= 0; idx
< mimophytbl_info_sz_rev0
; idx
++)
14207 wlc_phy_write_table_nphy(pi
,
14208 &mimophytbl_info_rev0
[idx
]);
14212 static void wlc_phy_tbl_init_nphy(struct brcms_phy
*pi
)
14217 if (pi
->phy_init_por
)
14218 wlc_phy_static_table_download_nphy(pi
);
14220 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14222 antswctrllut
= CHSPEC_IS2G(pi
->radio_chanspec
) ?
14223 pi
->srom_fem2g
.antswctrllut
: pi
->srom_fem5g
.
14226 switch (antswctrllut
) {
14234 wlc_phy_table_write_nphy(
14236 NPHY_TBL_ID_ANTSWCTRLLUT
,
14238 &ant_sw_ctrl_tbl_rev8_2o3
[0]);
14240 wlc_phy_table_write_nphy(
14242 NPHY_TBL_ID_ANTSWCTRLLUT
,
14244 &ant_sw_ctrl_tbl_rev8
14247 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14249 &ant_sw_ctrl_tbl_rev8
[2]);
14250 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14252 &ant_sw_ctrl_tbl_rev8
[4]);
14257 wlc_phy_table_write_nphy(
14258 pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14260 &ant_sw_ctrl_tbl_rev8_2057v7_core0
[0]);
14261 wlc_phy_table_write_nphy(
14262 pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14264 &ant_sw_ctrl_tbl_rev8_2057v7_core0
[2]);
14265 wlc_phy_table_write_nphy(
14266 pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14268 &ant_sw_ctrl_tbl_rev8_2057v7_core0
[4]);
14270 wlc_phy_table_write_nphy(
14271 pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14273 &ant_sw_ctrl_tbl_rev8_2057v7_core1
[0]);
14274 wlc_phy_table_write_nphy(
14275 pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14277 &ant_sw_ctrl_tbl_rev8_2057v7_core1
[2]);
14278 wlc_phy_table_write_nphy(
14279 pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14281 &ant_sw_ctrl_tbl_rev8_2057v7_core1
[4]);
14288 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14289 for (idx
= 0; idx
< mimophytbl_info_sz_rev3_volatile
; idx
++) {
14291 if (idx
== ANT_SWCTRL_TBL_REV3_IDX
) {
14293 CHSPEC_IS2G(pi
->radio_chanspec
) ?
14294 pi
->srom_fem2g
.antswctrllut
:
14295 pi
->srom_fem5g
.antswctrllut
;
14296 switch (antswctrllut
) {
14298 wlc_phy_write_table_nphy(
14300 &mimophytbl_info_rev3_volatile
14304 wlc_phy_write_table_nphy(
14306 &mimophytbl_info_rev3_volatile1
14310 wlc_phy_write_table_nphy(
14312 &mimophytbl_info_rev3_volatile2
14316 wlc_phy_write_table_nphy(
14318 &mimophytbl_info_rev3_volatile3
14325 wlc_phy_write_table_nphy(
14327 &mimophytbl_info_rev3_volatile
[idx
]);
14331 for (idx
= 0; idx
< mimophytbl_info_sz_rev0_volatile
; idx
++)
14332 wlc_phy_write_table_nphy(pi
,
14333 &mimophytbl_info_rev0_volatile
14339 wlc_phy_write_txmacreg_nphy(struct brcms_phy
*pi
, u16 holdoff
, u16 delay
)
14341 write_phy_reg(pi
, 0x77, holdoff
);
14342 write_phy_reg(pi
, 0xb4, delay
);
14345 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy
*pi
, u8 rifs
)
14347 u16 holdoff
, delay
;
14359 wlc_phy_write_txmacreg_nphy(pi
, holdoff
, delay
);
14361 if (pi
->sh
&& (pi
->sh
->_rifs_phy
!= rifs
))
14362 pi
->sh
->_rifs_phy
= rifs
;
14365 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy
*pi
)
14368 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14369 pi
->nphy_txpwrctrl
= PHY_TPC_HW_ON
;
14370 pi
->phy_5g_pwrgain
= true;
14374 pi
->nphy_txpwrctrl
= PHY_TPC_HW_OFF
;
14375 pi
->phy_5g_pwrgain
= false;
14377 if ((pi
->sh
->boardflags2
& BFL2_TXPWRCTRL_EN
) &&
14378 NREV_GE(pi
->pubpi
.phy_rev
, 2) && (pi
->sh
->sromrev
>= 4))
14379 pi
->nphy_txpwrctrl
= PHY_TPC_HW_ON
;
14380 else if ((pi
->sh
->sromrev
>= 4)
14381 && (pi
->sh
->boardflags2
& BFL2_5G_PWRGAIN
))
14382 pi
->phy_5g_pwrgain
= true;
14385 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy
*pi
)
14387 u16 bw40po
, cddpo
, stbcpo
, bwduppo
;
14389 struct ssb_sprom
*sprom
= &pi
->d11core
->bus
->sprom
;
14391 if (pi
->sh
->sromrev
>= 9)
14394 bw40po
= sprom
->bw40po
;
14395 pi
->bw402gpo
= bw40po
& 0xf;
14396 pi
->bw405gpo
= (bw40po
& 0xf0) >> 4;
14397 pi
->bw405glpo
= (bw40po
& 0xf00) >> 8;
14398 pi
->bw405ghpo
= (bw40po
& 0xf000) >> 12;
14400 cddpo
= sprom
->cddpo
;
14401 pi
->cdd2gpo
= cddpo
& 0xf;
14402 pi
->cdd5gpo
= (cddpo
& 0xf0) >> 4;
14403 pi
->cdd5glpo
= (cddpo
& 0xf00) >> 8;
14404 pi
->cdd5ghpo
= (cddpo
& 0xf000) >> 12;
14406 stbcpo
= sprom
->stbcpo
;
14407 pi
->stbc2gpo
= stbcpo
& 0xf;
14408 pi
->stbc5gpo
= (stbcpo
& 0xf0) >> 4;
14409 pi
->stbc5glpo
= (stbcpo
& 0xf00) >> 8;
14410 pi
->stbc5ghpo
= (stbcpo
& 0xf000) >> 12;
14412 bwduppo
= sprom
->bwduppo
;
14413 pi
->bwdup2gpo
= bwduppo
& 0xf;
14414 pi
->bwdup5gpo
= (bwduppo
& 0xf0) >> 4;
14415 pi
->bwdup5glpo
= (bwduppo
& 0xf00) >> 8;
14416 pi
->bwdup5ghpo
= (bwduppo
& 0xf000) >> 12;
14418 for (band_num
= 0; band_num
< (CH_2G_GROUP
+ CH_5G_GROUP
);
14420 switch (band_num
) {
14422 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].max_pwr_2g
=
14423 sprom
->core_pwr_info
[0].maxpwr_2g
;
14424 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].max_pwr_2g
=
14425 sprom
->core_pwr_info
[1].maxpwr_2g
;
14426 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_2g_a1
=
14427 sprom
->core_pwr_info
[0].pa_2g
[0];
14428 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_2g_a1
=
14429 sprom
->core_pwr_info
[1].pa_2g
[0];
14430 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_2g_b0
=
14431 sprom
->core_pwr_info
[0].pa_2g
[1];
14432 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_2g_b0
=
14433 sprom
->core_pwr_info
[1].pa_2g
[1];
14434 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_2g_b1
=
14435 sprom
->core_pwr_info
[0].pa_2g
[2];
14436 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_2g_b1
=
14437 sprom
->core_pwr_info
[1].pa_2g
[2];
14438 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_targ_2g
=
14439 sprom
->core_pwr_info
[0].itssi_2g
;
14440 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_targ_2g
=
14441 sprom
->core_pwr_info
[1].itssi_2g
;
14443 pi
->cck2gpo
= sprom
->cck2gpo
;
14445 pi
->ofdm2gpo
= sprom
->ofdm2gpo
;
14447 pi
->mcs2gpo
[0] = sprom
->mcs2gpo
[0];
14448 pi
->mcs2gpo
[1] = sprom
->mcs2gpo
[1];
14449 pi
->mcs2gpo
[2] = sprom
->mcs2gpo
[2];
14450 pi
->mcs2gpo
[3] = sprom
->mcs2gpo
[3];
14451 pi
->mcs2gpo
[4] = sprom
->mcs2gpo
[4];
14452 pi
->mcs2gpo
[5] = sprom
->mcs2gpo
[5];
14453 pi
->mcs2gpo
[6] = sprom
->mcs2gpo
[6];
14454 pi
->mcs2gpo
[7] = sprom
->mcs2gpo
[7];
14458 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].max_pwr_5gm
=
14459 sprom
->core_pwr_info
[0].maxpwr_5g
;
14460 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].max_pwr_5gm
=
14461 sprom
->core_pwr_info
[1].maxpwr_5g
;
14462 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_5gm_a1
=
14463 sprom
->core_pwr_info
[0].pa_5g
[0];
14464 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_5gm_a1
=
14465 sprom
->core_pwr_info
[1].pa_5g
[0];
14466 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_5gm_b0
=
14467 sprom
->core_pwr_info
[0].pa_5g
[1];
14468 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_5gm_b0
=
14469 sprom
->core_pwr_info
[1].pa_5g
[1];
14470 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_5gm_b1
=
14471 sprom
->core_pwr_info
[0].pa_5g
[2];
14472 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_5gm_b1
=
14473 sprom
->core_pwr_info
[1].pa_5g
[2];
14474 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_targ_5gm
=
14475 sprom
->core_pwr_info
[0].itssi_5g
;
14476 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_targ_5gm
=
14477 sprom
->core_pwr_info
[1].itssi_5g
;
14479 pi
->ofdm5gpo
= sprom
->ofdm5gpo
;
14481 pi
->mcs5gpo
[0] = sprom
->mcs5gpo
[0];
14482 pi
->mcs5gpo
[1] = sprom
->mcs5gpo
[1];
14483 pi
->mcs5gpo
[2] = sprom
->mcs5gpo
[2];
14484 pi
->mcs5gpo
[3] = sprom
->mcs5gpo
[3];
14485 pi
->mcs5gpo
[4] = sprom
->mcs5gpo
[4];
14486 pi
->mcs5gpo
[5] = sprom
->mcs5gpo
[5];
14487 pi
->mcs5gpo
[6] = sprom
->mcs5gpo
[6];
14488 pi
->mcs5gpo
[7] = sprom
->mcs5gpo
[7];
14492 pi
->nphy_pwrctrl_info
[0].max_pwr_5gl
=
14493 sprom
->core_pwr_info
[0].maxpwr_5gl
;
14494 pi
->nphy_pwrctrl_info
[1].max_pwr_5gl
=
14495 sprom
->core_pwr_info
[1].maxpwr_5gl
;
14496 pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_a1
=
14497 sprom
->core_pwr_info
[0].pa_5gl
[0];
14498 pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_a1
=
14499 sprom
->core_pwr_info
[1].pa_5gl
[0];
14500 pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b0
=
14501 sprom
->core_pwr_info
[0].pa_5gl
[1];
14502 pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b0
=
14503 sprom
->core_pwr_info
[1].pa_5gl
[1];
14504 pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b1
=
14505 sprom
->core_pwr_info
[0].pa_5gl
[2];
14506 pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b1
=
14507 sprom
->core_pwr_info
[1].pa_5gl
[2];
14508 pi
->nphy_pwrctrl_info
[0].idle_targ_5gl
= 0;
14509 pi
->nphy_pwrctrl_info
[1].idle_targ_5gl
= 0;
14511 pi
->ofdm5glpo
= sprom
->ofdm5glpo
;
14513 pi
->mcs5glpo
[0] = sprom
->mcs5glpo
[0];
14514 pi
->mcs5glpo
[1] = sprom
->mcs5glpo
[1];
14515 pi
->mcs5glpo
[2] = sprom
->mcs5glpo
[2];
14516 pi
->mcs5glpo
[3] = sprom
->mcs5glpo
[3];
14517 pi
->mcs5glpo
[4] = sprom
->mcs5glpo
[4];
14518 pi
->mcs5glpo
[5] = sprom
->mcs5glpo
[5];
14519 pi
->mcs5glpo
[6] = sprom
->mcs5glpo
[6];
14520 pi
->mcs5glpo
[7] = sprom
->mcs5glpo
[7];
14524 pi
->nphy_pwrctrl_info
[0].max_pwr_5gh
=
14525 sprom
->core_pwr_info
[0].maxpwr_5gh
;
14526 pi
->nphy_pwrctrl_info
[1].max_pwr_5gh
=
14527 sprom
->core_pwr_info
[1].maxpwr_5gh
;
14528 pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_a1
=
14529 sprom
->core_pwr_info
[0].pa_5gh
[0];
14530 pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_a1
=
14531 sprom
->core_pwr_info
[1].pa_5gh
[0];
14532 pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b0
=
14533 sprom
->core_pwr_info
[0].pa_5gh
[1];
14534 pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b0
=
14535 sprom
->core_pwr_info
[1].pa_5gh
[1];
14536 pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b1
=
14537 sprom
->core_pwr_info
[0].pa_5gh
[2];
14538 pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b1
=
14539 sprom
->core_pwr_info
[1].pa_5gh
[2];
14540 pi
->nphy_pwrctrl_info
[0].idle_targ_5gh
= 0;
14541 pi
->nphy_pwrctrl_info
[1].idle_targ_5gh
= 0;
14543 pi
->ofdm5ghpo
= sprom
->ofdm5ghpo
;
14545 pi
->mcs5ghpo
[0] = sprom
->mcs5ghpo
[0];
14546 pi
->mcs5ghpo
[1] = sprom
->mcs5ghpo
[1];
14547 pi
->mcs5ghpo
[2] = sprom
->mcs5ghpo
[2];
14548 pi
->mcs5ghpo
[3] = sprom
->mcs5ghpo
[3];
14549 pi
->mcs5ghpo
[4] = sprom
->mcs5ghpo
[4];
14550 pi
->mcs5ghpo
[5] = sprom
->mcs5ghpo
[5];
14551 pi
->mcs5ghpo
[6] = sprom
->mcs5ghpo
[6];
14552 pi
->mcs5ghpo
[7] = sprom
->mcs5ghpo
[7];
14557 wlc_phy_txpwr_apply_nphy(pi
);
14560 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy
*pi
)
14562 struct ssb_sprom
*sprom
= &pi
->d11core
->bus
->sprom
;
14564 pi
->antswitch
= sprom
->antswitch
;
14565 pi
->aa2g
= sprom
->ant_available_bg
;
14566 pi
->aa5g
= sprom
->ant_available_a
;
14568 pi
->srom_fem2g
.tssipos
= sprom
->fem
.ghz2
.tssipos
;
14569 pi
->srom_fem2g
.extpagain
= sprom
->fem
.ghz2
.extpa_gain
;
14570 pi
->srom_fem2g
.pdetrange
= sprom
->fem
.ghz2
.pdet_range
;
14571 pi
->srom_fem2g
.triso
= sprom
->fem
.ghz2
.tr_iso
;
14572 pi
->srom_fem2g
.antswctrllut
= sprom
->fem
.ghz2
.antswlut
;
14574 pi
->srom_fem5g
.tssipos
= sprom
->fem
.ghz5
.tssipos
;
14575 pi
->srom_fem5g
.extpagain
= sprom
->fem
.ghz5
.extpa_gain
;
14576 pi
->srom_fem5g
.pdetrange
= sprom
->fem
.ghz5
.pdet_range
;
14577 pi
->srom_fem5g
.triso
= sprom
->fem
.ghz5
.tr_iso
;
14578 if (sprom
->fem
.ghz5
.antswlut
)
14579 pi
->srom_fem5g
.antswctrllut
= sprom
->fem
.ghz5
.antswlut
;
14581 pi
->srom_fem5g
.antswctrllut
= sprom
->fem
.ghz2
.antswlut
;
14583 wlc_phy_txpower_ipa_upd(pi
);
14585 pi
->phy_txcore_disable_temp
= sprom
->tempthresh
;
14586 if (pi
->phy_txcore_disable_temp
== 0)
14587 pi
->phy_txcore_disable_temp
= PHY_CHAIN_TX_DISABLE_TEMP
;
14589 pi
->phy_tempsense_offset
= sprom
->tempoffset
;
14590 if (pi
->phy_tempsense_offset
!= 0) {
14591 if (pi
->phy_tempsense_offset
>
14592 (NPHY_SROM_TEMPSHIFT
+ NPHY_SROM_MAXTEMPOFFSET
))
14593 pi
->phy_tempsense_offset
= NPHY_SROM_MAXTEMPOFFSET
;
14594 else if (pi
->phy_tempsense_offset
< (NPHY_SROM_TEMPSHIFT
+
14595 NPHY_SROM_MINTEMPOFFSET
))
14596 pi
->phy_tempsense_offset
= NPHY_SROM_MINTEMPOFFSET
;
14598 pi
->phy_tempsense_offset
-= NPHY_SROM_TEMPSHIFT
;
14601 pi
->phy_txcore_enable_temp
=
14602 pi
->phy_txcore_disable_temp
- PHY_HYSTERESIS_DELTATEMP
;
14604 pi
->phycal_tempdelta
= sprom
->phycal_tempdelta
;
14605 if (pi
->phycal_tempdelta
> NPHY_CAL_MAXTEMPDELTA
)
14606 pi
->phycal_tempdelta
= 0;
14608 wlc_phy_txpwr_srom_read_ppr_nphy(pi
);
14613 bool wlc_phy_attach_nphy(struct brcms_phy
*pi
)
14617 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 6))
14618 pi
->phyhang_avoid
= true;
14620 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
14621 pi
->nphy_gband_spurwar_en
= true;
14622 if (pi
->sh
->boardflags2
& BFL2_SPUR_WAR
)
14623 pi
->nphy_aband_spurwar_en
= true;
14625 if (NREV_GE(pi
->pubpi
.phy_rev
, 6) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
14626 if (pi
->sh
->boardflags2
& BFL2_2G_SPUR_WAR
)
14627 pi
->nphy_gband_spurwar2_en
= true;
14630 pi
->n_preamble_override
= AUTO
;
14631 if (NREV_IS(pi
->pubpi
.phy_rev
, 3) || NREV_IS(pi
->pubpi
.phy_rev
, 4))
14632 pi
->n_preamble_override
= BRCMS_N_PREAMBLE_MIXEDMODE
;
14634 pi
->nphy_txrx_chain
= AUTO
;
14635 pi
->phy_scraminit
= AUTO
;
14637 pi
->nphy_rxcalparams
= 0x010100B5;
14639 pi
->nphy_perical
= PHY_PERICAL_MPHASE
;
14640 pi
->mphase_cal_phase_id
= MPHASE_CAL_STATE_IDLE
;
14641 pi
->mphase_txcal_numcmds
= MPHASE_TXCAL_NUMCMDS
;
14643 pi
->nphy_gain_boost
= true;
14644 pi
->nphy_elna_gain_config
= false;
14645 pi
->radio_is_on
= false;
14647 for (i
= 0; i
< pi
->pubpi
.phy_corenum
; i
++)
14648 pi
->nphy_txpwrindex
[i
].index
= AUTO
;
14650 wlc_phy_txpwrctrl_config_nphy(pi
);
14651 if (pi
->nphy_txpwrctrl
== PHY_TPC_HW_ON
)
14652 pi
->hwpwrctrl_capable
= true;
14654 pi
->pi_fptr
.init
= wlc_phy_init_nphy
;
14655 pi
->pi_fptr
.calinit
= wlc_phy_cal_init_nphy
;
14656 pi
->pi_fptr
.chanset
= wlc_phy_chanspec_set_nphy
;
14657 pi
->pi_fptr
.txpwrrecalc
= wlc_phy_txpower_recalc_target_nphy
;
14659 if (!wlc_phy_txpwr_srom_read_nphy(pi
))
14665 static s32
get_rf_pwr_offset(struct brcms_phy
*pi
, s16 pga_gn
, s16 pad_gn
)
14667 s32 rfpwr_offset
= 0;
14669 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
14670 if ((pi
->pubpi
.radiorev
== 3) ||
14671 (pi
->pubpi
.radiorev
== 4) ||
14672 (pi
->pubpi
.radiorev
== 6))
14673 rfpwr_offset
= (s16
)
14674 nphy_papd_padgain_dlt_2g_2057rev3n4
14676 else if (pi
->pubpi
.radiorev
== 5)
14677 rfpwr_offset
= (s16
)
14678 nphy_papd_padgain_dlt_2g_2057rev5
14680 else if ((pi
->pubpi
.radiorev
== 7)
14681 || (pi
->pubpi
.radiorev
==
14683 rfpwr_offset
= (s16
)
14684 nphy_papd_padgain_dlt_2g_2057rev7
14687 if ((pi
->pubpi
.radiorev
== 3) ||
14688 (pi
->pubpi
.radiorev
== 4) ||
14689 (pi
->pubpi
.radiorev
== 6))
14690 rfpwr_offset
= (s16
)
14691 nphy_papd_pgagain_dlt_5g_2057
14693 else if ((pi
->pubpi
.radiorev
== 7)
14694 || (pi
->pubpi
.radiorev
==
14696 rfpwr_offset
= (s16
)
14697 nphy_papd_pgagain_dlt_5g_2057rev7
14700 return rfpwr_offset
;
14703 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy
*pi
, s32 preamble
)
14705 bool gf_preamble
= false;
14708 if (preamble
== BRCMS_N_PREAMBLE_GF
)
14709 gf_preamble
= true;
14711 val
= read_phy_reg(pi
, 0xed);
14713 val
|= RX_GF_MM_AUTO
;
14714 val
&= ~RX_GF_OR_MM
;
14716 val
|= RX_GF_OR_MM
;
14718 write_phy_reg(pi
, 0xed, val
);
14721 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy
*pi
)
14724 u16 addr_offset
[] = { 0x186, 0x195, 0x2c5};
14726 for (type
= 0; type
< 3; type
++) {
14727 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++)
14728 write_phy_reg(pi
, addr_offset
[type
] + j
,
14729 NPHY_IPA_REV4_txdigi_filtcoeffs
[type
][j
]);
14732 if (pi
->bw
== WL_CHANSPEC_BW_40
) {
14733 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++)
14734 write_phy_reg(pi
, 0x186 + j
,
14735 NPHY_IPA_REV4_txdigi_filtcoeffs
[3][j
]);
14737 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
14738 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++)
14739 write_phy_reg(pi
, 0x186 + j
,
14740 NPHY_IPA_REV4_txdigi_filtcoeffs
[5][j
]);
14743 if (CHSPEC_CHANNEL(pi
->radio_chanspec
) == 14) {
14744 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++)
14745 write_phy_reg(pi
, 0x2c5 + j
,
14746 NPHY_IPA_REV4_txdigi_filtcoeffs
[6][j
]);
14751 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy
*pi
)
14755 if (pi
->bw
== WL_CHANSPEC_BW_40
) {
14756 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++)
14757 write_phy_reg(pi
, 0x195 + j
,
14758 NPHY_IPA_REV4_txdigi_filtcoeffs
[4][j
]);
14760 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++)
14761 write_phy_reg(pi
, 0x186 + j
,
14762 NPHY_IPA_REV4_txdigi_filtcoeffs
[3][j
]);
14767 wlc_phy_set_rfseq_nphy(struct brcms_phy
*pi
, u8 cmd
, u8
*events
, u8
*dlys
,
14770 u32 t1_offset
, t2_offset
;
14773 NREV_GE(pi
->pubpi
.phy_rev
,
14774 3) ? NPHY_REV3_RFSEQ_CMD_END
: NPHY_RFSEQ_CMD_END
;
14777 if (pi
->phyhang_avoid
)
14778 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
14780 t1_offset
= cmd
<< 4;
14781 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, len
, t1_offset
, 8,
14783 t2_offset
= t1_offset
+ 0x080;
14784 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, len
, t2_offset
, 8,
14787 for (ctr
= len
; ctr
< 16; ctr
++) {
14788 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1,
14789 t1_offset
+ ctr
, 8, &end_event
);
14790 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1,
14791 t2_offset
+ ctr
, 8, &end_dly
);
14794 if (pi
->phyhang_avoid
)
14795 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
14798 static u16
wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy
*pi
, u16 offset
)
14800 u16 lpf_bw_ctl_val
= 0;
14801 u16 rx2tx_lpf_rc_lut_offset
= 0;
14804 if (CHSPEC_IS40(pi
->radio_chanspec
))
14805 rx2tx_lpf_rc_lut_offset
= 0x159;
14807 rx2tx_lpf_rc_lut_offset
= 0x154;
14809 rx2tx_lpf_rc_lut_offset
= offset
;
14811 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1,
14812 (u32
) rx2tx_lpf_rc_lut_offset
, 16,
14815 lpf_bw_ctl_val
= lpf_bw_ctl_val
& 0x7;
14817 return lpf_bw_ctl_val
;
14821 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy
*pi
, u16 field
, u16 value
,
14822 u8 core_mask
, u8 off
, u8 override_id
)
14825 u16 addr
= 0, en_addr
= 0, val_addr
= 0, en_mask
= 0, val_mask
= 0;
14828 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14830 for (core_num
= 0; core_num
< 2; core_num
++) {
14831 if (override_id
== NPHY_REV7_RFCTRLOVERRIDE_ID0
) {
14835 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14836 val_addr
= (core_num
== 0) ? 0x7a :
14838 val_mask
= (0x1 << 1);
14842 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14843 val_addr
= (core_num
== 0) ? 0x7a :
14845 val_mask
= (0x1 << 2);
14849 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14850 val_addr
= (core_num
== 0) ? 0x7a :
14852 val_mask
= (0x1 << 4);
14856 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14857 val_addr
= (core_num
== 0) ? 0x7a :
14859 val_mask
= (0x1 << 5);
14863 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14864 val_addr
= (core_num
== 0) ? 0x7a :
14866 val_mask
= (0x1 << 6);
14870 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14871 val_addr
= (core_num
== 0) ? 0x7a :
14873 val_mask
= (0x1 << 7);
14877 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14878 val_addr
= (core_num
== 0) ? 0xf8 :
14880 val_mask
= (0x7 << 4);
14884 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14885 val_addr
= (core_num
== 0) ? 0x7b :
14887 val_mask
= (0xffff << 0);
14891 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14892 val_addr
= (core_num
== 0) ? 0x7c :
14894 val_mask
= (0xffff << 0);
14898 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14899 val_addr
= (core_num
== 0) ? 0x348 :
14901 val_mask
= (0xff << 0);
14905 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
14906 val_addr
= (core_num
== 0) ? 0x348 :
14908 val_mask
= (0xf << 0);
14915 } else if (override_id
==
14916 NPHY_REV7_RFCTRLOVERRIDE_ID1
) {
14920 en_addr
= (core_num
== 0) ? 0x342 :
14922 val_addr
= (core_num
== 0) ? 0x340 :
14924 val_mask
= (0x1 << 1);
14928 en_addr
= (core_num
== 0) ? 0x342 :
14930 val_addr
= (core_num
== 0) ? 0x340 :
14932 val_mask
= (0x1 << 3);
14936 en_addr
= (core_num
== 0) ? 0x342 :
14938 val_addr
= (core_num
== 0) ? 0x340 :
14940 val_mask
= (0x1 << 5);
14944 en_addr
= (core_num
== 0) ? 0x342 :
14946 val_addr
= (core_num
== 0) ? 0x340 :
14948 val_mask
= (0x1 << 4);
14953 en_addr
= (core_num
== 0) ? 0x342 :
14955 val_addr
= (core_num
== 0) ? 0x340 :
14957 val_mask
= (0x1 << 2);
14962 en_addr
= (core_num
== 0) ? 0x342 :
14964 val_addr
= (core_num
== 0) ? 0x340 :
14966 val_mask
= (0x7 << 8);
14970 en_addr
= (core_num
== 0) ? 0x342 :
14972 val_addr
= (core_num
== 0) ? 0x340 :
14974 val_mask
= (0x1 << 14);
14978 en_addr
= (core_num
== 0) ? 0x342 :
14980 val_addr
= (core_num
== 0) ? 0x340 :
14982 val_mask
= (0x1 << 13);
14986 en_addr
= (core_num
== 0) ? 0x342 :
14988 val_addr
= (core_num
== 0) ? 0x340 :
14990 val_mask
= (0x1 << 12);
14994 en_addr
= (core_num
== 0) ? 0x342 :
14996 val_addr
= (core_num
== 0) ? 0x340 :
14998 val_mask
= (0x1 << 11);
15002 en_addr
= (core_num
== 0) ? 0x342 :
15004 val_addr
= (core_num
== 0) ? 0x340 :
15006 val_mask
= (0x1 << 6);
15010 en_addr
= (core_num
== 0) ? 0x342 :
15012 val_addr
= (core_num
== 0) ? 0x340 :
15014 val_mask
= (0x1 << 0);
15021 } else if (override_id
==
15022 NPHY_REV7_RFCTRLOVERRIDE_ID2
) {
15026 en_addr
= (core_num
== 0) ? 0x346 :
15028 val_addr
= (core_num
== 0) ? 0x344 :
15030 val_mask
= (0x1 << 3);
15034 en_addr
= (core_num
== 0) ? 0x346 :
15036 val_addr
= (core_num
== 0) ? 0x344 :
15038 val_mask
= (0x1 << 1);
15042 en_addr
= (core_num
== 0) ? 0x346 :
15044 val_addr
= (core_num
== 0) ? 0x344 :
15046 val_mask
= (0x1 << 0);
15050 en_addr
= (core_num
== 0) ? 0x346 :
15052 val_addr
= (core_num
== 0) ? 0x344 :
15054 val_mask
= (0x1 << 2);
15058 en_addr
= (core_num
== 0) ? 0x346 :
15060 val_addr
= (core_num
== 0) ? 0x344 :
15062 val_mask
= (0x1 << 4);
15072 and_phy_reg(pi
, en_addr
, ~en_mask
);
15073 and_phy_reg(pi
, val_addr
, ~val_mask
);
15076 if ((core_mask
== 0)
15077 || (core_mask
& (1 << core_num
))) {
15078 or_phy_reg(pi
, en_addr
, en_mask
);
15080 if (addr
!= 0xffff)
15081 mod_phy_reg(pi
, val_addr
,
15091 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy
*pi
)
15097 u16 minmax_gain
[2];
15100 if (pi
->phyhang_avoid
)
15101 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
15103 if (pi
->nphy_gain_boost
) {
15104 if ((CHSPEC_IS2G(pi
->radio_chanspec
))) {
15110 curr_channel
= CHSPEC_CHANNEL(pi
->radio_chanspec
);
15113 PHY_HW_ROUND(((nphy_lnagain_est0
[0] *
15115 nphy_lnagain_est0
[1]), 13);
15118 PHY_HW_ROUND(((nphy_lnagain_est1
[0] *
15120 nphy_lnagain_est1
[1]), 13);
15128 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
15129 if (pi
->nphy_elna_gain_config
) {
15131 regval
[0] = nphy_def_lnagains
[2] + gain_delta
[core
];
15132 regval
[1] = nphy_def_lnagains
[3] + gain_delta
[core
];
15133 regval
[2] = nphy_def_lnagains
[3] + gain_delta
[core
];
15134 regval
[3] = nphy_def_lnagains
[3] + gain_delta
[core
];
15136 for (ctr
= 0; ctr
< 4; ctr
++)
15138 nphy_def_lnagains
[ctr
] +
15141 wlc_phy_table_write_nphy(pi
, core
, 4, 8, 16, regval
);
15143 minmax_gain
[core
] =
15144 (u16
) (nphy_def_lnagains
[2] + gain_delta
[core
] + 4);
15147 mod_phy_reg(pi
, 0x1e, (0xff << 0), (minmax_gain
[0] << 0));
15148 mod_phy_reg(pi
, 0x34, (0xff << 0), (minmax_gain
[1] << 0));
15150 if (pi
->phyhang_avoid
)
15151 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
15155 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy
*pi
, u8 core
)
15157 if (core
== PHY_CORE_0
) {
15158 write_phy_reg(pi
, 0x38, 0x4);
15159 if (CHSPEC_IS2G(pi
->radio_chanspec
))
15160 write_phy_reg(pi
, 0x37, 0x0060);
15162 write_phy_reg(pi
, 0x37, 0x1080);
15163 } else if (core
== PHY_CORE_1
) {
15164 write_phy_reg(pi
, 0x2ae, 0x4);
15165 if (CHSPEC_IS2G(pi
->radio_chanspec
))
15166 write_phy_reg(pi
, 0x2ad, 0x0060);
15168 write_phy_reg(pi
, 0x2ad, 0x1080);
15172 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy
*pi
, u8 txchain
)
15174 u8 txchain0
, txchain1
;
15176 txchain0
= txchain
& 0x1;
15177 txchain1
= (txchain
& 0x2) >> 1;
15179 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_0
);
15182 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_1
);
15185 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy
*pi
)
15187 s8 lna1_gain_db
[] = { 8, 13, 17, 22 };
15188 s8 lna2_gain_db
[] = { -2, 7, 11, 15 };
15189 s8 tia_gain_db
[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15190 s8 tia_gainbits
[] = {
15191 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15193 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
15194 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
15196 mod_phy_reg(pi
, 0x289, (0xff << 0), (0x46 << 0));
15198 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x3c << 0));
15199 mod_phy_reg(pi
, 0x280, (0xff << 0), (0x3c << 0));
15201 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x8, 8,
15203 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x8, 8,
15206 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x10, 8,
15208 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x10, 8,
15211 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 10, 0x20, 8,
15213 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 10, 0x20, 8,
15216 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 10, 0x20, 8,
15218 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 10, 0x20, 8,
15221 write_phy_reg(pi
, 0x37, 0x74);
15222 write_phy_reg(pi
, 0x2ad, 0x74);
15223 write_phy_reg(pi
, 0x38, 0x18);
15224 write_phy_reg(pi
, 0x2ae, 0x18);
15226 write_phy_reg(pi
, 0x2b, 0xe8);
15227 write_phy_reg(pi
, 0x41, 0xe8);
15229 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
15231 mod_phy_reg(pi
, 0x300, (0x3f << 0), (0x12 << 0));
15232 mod_phy_reg(pi
, 0x301, (0x3f << 0), (0x12 << 0));
15235 mod_phy_reg(pi
, 0x300, (0x3f << 0), (0x10 << 0));
15236 mod_phy_reg(pi
, 0x301, (0x3f << 0), (0x10 << 0));
15240 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy
*pi
)
15243 s8 lna1G_gain_db_rev7
[] = { 9, 14, 19, 24 };
15244 s8
*lna1_gain_db
= NULL
;
15245 s8
*lna1_gain_db_2
= NULL
;
15246 s8
*lna2_gain_db
= NULL
;
15247 s8 tiaA_gain_db_rev7
[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15249 s8 tiaA_gainbits_rev7
[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15251 u16 rfseqA_init_gain_rev7
[] = { 0x624f, 0x624f };
15252 u16
*rfseq_init_gain
;
15254 u16 clip1hi_gaincode
;
15255 u16 clip1md_gaincode
= 0;
15256 u16 clip1md_gaincode_B
;
15257 u16 clip1lo_gaincode
;
15258 u16 clip1lo_gaincode_B
;
15264 s8 nvar_baseline_offset0
= 0, nvar_baseline_offset1
= 0;
15265 u8 chg_nbclip_th
= 0;
15267 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
15268 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
15270 currband
= read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
;
15271 if (currband
== 0) {
15273 lna1_gain_db
= lna1G_gain_db_rev7
;
15275 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 8, 8,
15277 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 8, 8,
15280 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x40 << 0));
15282 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
15283 mod_phy_reg(pi
, 0x280, (0xff << 0), (0x3e << 0));
15284 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x3e << 0));
15287 mod_phy_reg(pi
, 0x289, (0xff << 0), (0x46 << 0));
15289 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
15290 mod_phy_reg(pi
, 0x300, (0x3f << 0), (13 << 0));
15291 mod_phy_reg(pi
, 0x301, (0x3f << 0), (13 << 0));
15295 init_gaincode
= 0x9e;
15296 clip1hi_gaincode
= 0x9e;
15297 clip1md_gaincode_B
= 0x24;
15298 clip1lo_gaincode
= 0x8a;
15299 clip1lo_gaincode_B
= 8;
15300 rfseq_init_gain
= rfseqA_init_gain_rev7
;
15302 tia_gain_db
= tiaA_gain_db_rev7
;
15303 tia_gainbits
= tiaA_gainbits_rev7
;
15305 freq
= CHAN5G_FREQ(CHSPEC_CHANNEL(pi
->radio_chanspec
));
15306 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
15309 clip1md_gaincode
= 0x82;
15311 if ((freq
<= 5080) || (freq
== 5825)) {
15313 s8 lna1A_gain_db_rev7
[] = { 11, 16, 20, 24 };
15314 s8 lna1A_gain_db_2_rev7
[] = {
15316 s8 lna2A_gain_db_rev7
[] = { -1, 6, 10, 14 };
15319 lna1_gain_db
= lna1A_gain_db_rev7
;
15320 lna1_gain_db_2
= lna1A_gain_db_2_rev7
;
15321 lna2_gain_db
= lna2A_gain_db_rev7
;
15322 } else if ((freq
>= 5500) && (freq
<= 5700)) {
15324 s8 lna1A_gain_db_rev7
[] = { 11, 17, 21, 25 };
15325 s8 lna1A_gain_db_2_rev7
[] = {
15327 s8 lna2A_gain_db_rev7
[] = { 1, 8, 12, 16 };
15330 clip1md_gaincode_B
= 0x14;
15333 lna1_gain_db
= lna1A_gain_db_rev7
;
15334 lna1_gain_db_2
= lna1A_gain_db_2_rev7
;
15335 lna2_gain_db
= lna2A_gain_db_rev7
;
15338 s8 lna1A_gain_db_rev7
[] = { 12, 18, 22, 26 };
15339 s8 lna1A_gain_db_2_rev7
[] = {
15341 s8 lna2A_gain_db_rev7
[] = { -1, 6, 10, 14 };
15344 lna1_gain_db
= lna1A_gain_db_rev7
;
15345 lna1_gain_db_2
= lna1A_gain_db_2_rev7
;
15346 lna2_gain_db
= lna2A_gain_db_rev7
;
15349 if (freq
<= 4920) {
15350 nvar_baseline_offset0
= 5;
15351 nvar_baseline_offset1
= 5;
15352 } else if ((freq
> 4920) && (freq
<= 5320)) {
15353 nvar_baseline_offset0
= 3;
15354 nvar_baseline_offset1
= 5;
15355 } else if ((freq
> 5320) && (freq
<= 5700)) {
15356 nvar_baseline_offset0
= 3;
15357 nvar_baseline_offset1
= 2;
15359 nvar_baseline_offset0
= 4;
15360 nvar_baseline_offset1
= 0;
15368 if ((freq
>= 4920) && (freq
<= 5320)) {
15369 nvar_baseline_offset0
= 4;
15370 nvar_baseline_offset1
= 5;
15371 } else if ((freq
> 5320) && (freq
<= 5550)) {
15372 nvar_baseline_offset0
= 4;
15373 nvar_baseline_offset1
= 2;
15375 nvar_baseline_offset0
= 5;
15376 nvar_baseline_offset1
= 3;
15380 write_phy_reg(pi
, 0x20, init_gaincode
);
15381 write_phy_reg(pi
, 0x2a7, init_gaincode
);
15383 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15384 pi
->pubpi
.phy_corenum
, 0x106, 16,
15387 write_phy_reg(pi
, 0x22, clip1hi_gaincode
);
15388 write_phy_reg(pi
, 0x2a9, clip1hi_gaincode
);
15390 write_phy_reg(pi
, 0x36, clip1md_gaincode_B
);
15391 write_phy_reg(pi
, 0x2ac, clip1md_gaincode_B
);
15393 write_phy_reg(pi
, 0x37, clip1lo_gaincode
);
15394 write_phy_reg(pi
, 0x2ad, clip1lo_gaincode
);
15395 write_phy_reg(pi
, 0x38, clip1lo_gaincode_B
);
15396 write_phy_reg(pi
, 0x2ae, clip1lo_gaincode_B
);
15398 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 10, 0x20, 8,
15400 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 10, 0x20, 8,
15403 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 10, 0x20, 8,
15405 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 10, 0x20, 8,
15408 mod_phy_reg(pi
, 0x283, (0xff << 0), (crsminu_th
<< 0));
15410 if (chg_nbclip_th
== 1) {
15411 write_phy_reg(pi
, 0x2b, nbclip_th
);
15412 write_phy_reg(pi
, 0x41, nbclip_th
);
15415 mod_phy_reg(pi
, 0x300, (0x3f << 0), (w1clip_th
<< 0));
15416 mod_phy_reg(pi
, 0x301, (0x3f << 0), (w1clip_th
<< 0));
15418 mod_phy_reg(pi
, 0x2e4,
15419 (0x3f << 0), (nvar_baseline_offset0
<< 0));
15421 mod_phy_reg(pi
, 0x2e4,
15422 (0x3f << 6), (nvar_baseline_offset1
<< 6));
15424 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
15426 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 8, 8,
15428 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 8, 8,
15431 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x10,
15433 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x10,
15436 write_phy_reg(pi
, 0x24, clip1md_gaincode
);
15437 write_phy_reg(pi
, 0x2ab, clip1md_gaincode
);
15439 mod_phy_reg(pi
, 0x280, (0xff << 0), (crsminl_th
<< 0));
15444 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy
*pi
)
15446 u16 w1th
, hpf_code
, currband
;
15448 u8 rfseq_updategainu_events
[] = {
15449 NPHY_RFSEQ_CMD_RX_GAIN
,
15450 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
,
15451 NPHY_RFSEQ_CMD_SET_HPF_BW
15453 u8 rfseq_updategainu_dlys
[] = { 10, 30, 1 };
15454 s8 lna1G_gain_db
[] = { 7, 11, 16, 23 };
15455 s8 lna1G_gain_db_rev4
[] = { 8, 12, 17, 25 };
15456 s8 lna1G_gain_db_rev5
[] = { 9, 13, 18, 26 };
15457 s8 lna1G_gain_db_rev6
[] = { 8, 13, 18, 25 };
15458 s8 lna1G_gain_db_rev6_224B0
[] = { 10, 14, 19, 27 };
15459 s8 lna1A_gain_db
[] = { 7, 11, 17, 23 };
15460 s8 lna1A_gain_db_rev4
[] = { 8, 12, 18, 23 };
15461 s8 lna1A_gain_db_rev5
[] = { 6, 10, 16, 21 };
15462 s8 lna1A_gain_db_rev6
[] = { 6, 10, 16, 21 };
15463 s8
*lna1_gain_db
= NULL
;
15464 s8 lna2G_gain_db
[] = { -5, 6, 10, 14 };
15465 s8 lna2G_gain_db_rev5
[] = { -3, 7, 11, 16 };
15466 s8 lna2G_gain_db_rev6
[] = { -5, 6, 10, 14 };
15467 s8 lna2G_gain_db_rev6_224B0
[] = { -5, 6, 10, 15 };
15468 s8 lna2A_gain_db
[] = { -6, 2, 6, 10 };
15469 s8 lna2A_gain_db_rev4
[] = { -5, 2, 6, 10 };
15470 s8 lna2A_gain_db_rev5
[] = { -7, 0, 4, 8 };
15471 s8 lna2A_gain_db_rev6
[] = { -7, 0, 4, 8 };
15472 s8
*lna2_gain_db
= NULL
;
15473 s8 tiaG_gain_db
[] = {
15474 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15475 s8 tiaA_gain_db
[] = {
15476 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15477 s8 tiaA_gain_db_rev4
[] = {
15478 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15479 s8 tiaA_gain_db_rev5
[] = {
15480 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15481 s8 tiaA_gain_db_rev6
[] = {
15482 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15484 s8 tiaG_gainbits
[] = {
15485 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15486 s8 tiaA_gainbits
[] = {
15487 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15488 s8 tiaA_gainbits_rev4
[] = {
15489 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15490 s8 tiaA_gainbits_rev5
[] = {
15491 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15492 s8 tiaA_gainbits_rev6
[] = {
15493 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15495 s8 lpf_gain_db
[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15496 s8 lpf_gainbits
[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15497 u16 rfseqG_init_gain
[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15498 u16 rfseqG_init_gain_rev4
[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15499 u16 rfseqG_init_gain_rev5
[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15500 u16 rfseqG_init_gain_rev5_elna
[] = {
15501 0x013f, 0x013f, 0x013f, 0x013f };
15502 u16 rfseqG_init_gain_rev6
[] = { 0x513f, 0x513f };
15503 u16 rfseqG_init_gain_rev6_224B0
[] = { 0x413f, 0x413f };
15504 u16 rfseqG_init_gain_rev6_elna
[] = { 0x113f, 0x113f };
15505 u16 rfseqA_init_gain
[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15506 u16 rfseqA_init_gain_rev4
[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15507 u16 rfseqA_init_gain_rev4_elna
[] = {
15508 0x314f, 0x314f, 0x314f, 0x314f };
15509 u16 rfseqA_init_gain_rev5
[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15510 u16 rfseqA_init_gain_rev6
[] = { 0x714f, 0x714f };
15511 u16
*rfseq_init_gain
;
15512 u16 initG_gaincode
= 0x627e;
15513 u16 initG_gaincode_rev4
= 0x527e;
15514 u16 initG_gaincode_rev5
= 0x427e;
15515 u16 initG_gaincode_rev5_elna
= 0x027e;
15516 u16 initG_gaincode_rev6
= 0x527e;
15517 u16 initG_gaincode_rev6_224B0
= 0x427e;
15518 u16 initG_gaincode_rev6_elna
= 0x127e;
15519 u16 initA_gaincode
= 0x52de;
15520 u16 initA_gaincode_rev4
= 0x629e;
15521 u16 initA_gaincode_rev4_elna
= 0x329e;
15522 u16 initA_gaincode_rev5
= 0x729e;
15523 u16 initA_gaincode_rev6
= 0x729e;
15525 u16 clip1hiG_gaincode
= 0x107e;
15526 u16 clip1hiG_gaincode_rev4
= 0x007e;
15527 u16 clip1hiG_gaincode_rev5
= 0x1076;
15528 u16 clip1hiG_gaincode_rev6
= 0x007e;
15529 u16 clip1hiA_gaincode
= 0x00de;
15530 u16 clip1hiA_gaincode_rev4
= 0x029e;
15531 u16 clip1hiA_gaincode_rev5
= 0x029e;
15532 u16 clip1hiA_gaincode_rev6
= 0x029e;
15533 u16 clip1hi_gaincode
;
15534 u16 clip1mdG_gaincode
= 0x0066;
15535 u16 clip1mdA_gaincode
= 0x00ca;
15536 u16 clip1mdA_gaincode_rev4
= 0x1084;
15537 u16 clip1mdA_gaincode_rev5
= 0x2084;
15538 u16 clip1mdA_gaincode_rev6
= 0x2084;
15539 u16 clip1md_gaincode
= 0;
15540 u16 clip1loG_gaincode
= 0x0074;
15541 u16 clip1loG_gaincode_rev5
[] = {
15542 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15544 u16 clip1loG_gaincode_rev6
[] = {
15545 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15547 u16 clip1loG_gaincode_rev6_224B0
= 0x1074;
15548 u16 clip1loA_gaincode
= 0x00cc;
15549 u16 clip1loA_gaincode_rev4
= 0x0086;
15550 u16 clip1loA_gaincode_rev5
= 0x2086;
15551 u16 clip1loA_gaincode_rev6
= 0x2086;
15552 u16 clip1lo_gaincode
;
15553 u8 crsminG_th
= 0x18;
15554 u8 crsminG_th_rev5
= 0x18;
15555 u8 crsminG_th_rev6
= 0x18;
15556 u8 crsminA_th
= 0x1e;
15557 u8 crsminA_th_rev4
= 0x24;
15558 u8 crsminA_th_rev5
= 0x24;
15559 u8 crsminA_th_rev6
= 0x24;
15561 u8 crsminlG_th
= 0x18;
15562 u8 crsminlG_th_rev5
= 0x18;
15563 u8 crsminlG_th_rev6
= 0x18;
15564 u8 crsminlA_th
= 0x1e;
15565 u8 crsminlA_th_rev4
= 0x24;
15566 u8 crsminlA_th_rev5
= 0x24;
15567 u8 crsminlA_th_rev6
= 0x24;
15569 u8 crsminuG_th
= 0x18;
15570 u8 crsminuG_th_rev5
= 0x18;
15571 u8 crsminuG_th_rev6
= 0x18;
15572 u8 crsminuA_th
= 0x1e;
15573 u8 crsminuA_th_rev4
= 0x24;
15574 u8 crsminuA_th_rev5
= 0x24;
15575 u8 crsminuA_th_rev6
= 0x24;
15576 u8 crsminuA_th_rev6_224B0
= 0x2d;
15578 u16 nbclipG_th
= 0x20d;
15579 u16 nbclipG_th_rev4
= 0x1a1;
15580 u16 nbclipG_th_rev5
= 0x1d0;
15581 u16 nbclipG_th_rev6
= 0x1d0;
15582 u16 nbclipA_th
= 0x1a1;
15583 u16 nbclipA_th_rev4
= 0x107;
15584 u16 nbclipA_th_rev5
= 0x0a9;
15585 u16 nbclipA_th_rev6
= 0x0f0;
15588 u8 w1clipG_th_rev5
= 9;
15589 u8 w1clipG_th_rev6
= 5;
15590 u8 w1clipA_th
= 25, w1clip_th
;
15591 u8 rssi_gain_default
= 0x50;
15592 u8 rssiG_gain_rev6_224B0
= 0x50;
15593 u8 rssiA_gain_rev5
= 0x90;
15594 u8 rssiA_gain_rev6
= 0x90;
15599 triso
= (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.triso
:
15600 pi
->srom_fem2g
.triso
;
15602 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
15603 if (pi
->pubpi
.radiorev
== 5) {
15604 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi
);
15605 } else if (pi
->pubpi
.radiorev
== 7) {
15606 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi
);
15608 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x44 << 0));
15609 mod_phy_reg(pi
, 0x280, (0xff << 0), (0x44 << 0));
15611 } else if ((pi
->pubpi
.radiorev
== 3)
15612 || (pi
->pubpi
.radiorev
== 8)) {
15613 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi
);
15615 if (pi
->pubpi
.radiorev
== 8) {
15616 mod_phy_reg(pi
, 0x283,
15617 (0xff << 0), (0x44 << 0));
15618 mod_phy_reg(pi
, 0x280,
15619 (0xff << 0), (0x44 << 0));
15622 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi
);
15624 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
15626 mod_phy_reg(pi
, 0xa0, (0x1 << 6), (1 << 6));
15628 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
15629 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
15632 read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
;
15633 if (currband
== 0) {
15634 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
15635 if (pi
->pubpi
.radiorev
== 11) {
15636 lna1_gain_db
= lna1G_gain_db_rev6_224B0
;
15637 lna2_gain_db
= lna2G_gain_db_rev6_224B0
;
15639 rfseqG_init_gain_rev6_224B0
;
15641 initG_gaincode_rev6_224B0
;
15643 clip1hiG_gaincode_rev6
;
15645 clip1loG_gaincode_rev6_224B0
;
15646 nbclip_th
= nbclipG_th_rev6
;
15647 w1clip_th
= w1clipG_th_rev6
;
15648 crsmin_th
= crsminG_th_rev6
;
15649 crsminl_th
= crsminlG_th_rev6
;
15650 crsminu_th
= crsminuG_th_rev6
;
15651 rssi_gain
= rssiG_gain_rev6_224B0
;
15653 lna1_gain_db
= lna1G_gain_db_rev6
;
15654 lna2_gain_db
= lna2G_gain_db_rev6
;
15655 if (pi
->sh
->boardflags
& BFL_EXTLNA
) {
15658 rfseqG_init_gain_rev6_elna
;
15660 initG_gaincode_rev6_elna
;
15663 rfseqG_init_gain_rev6
;
15665 initG_gaincode_rev6
;
15668 clip1hiG_gaincode_rev6
;
15672 clip1loG_gaincode_rev6
15677 clip1loG_gaincode_rev6
15682 clip1loG_gaincode_rev6
15689 clip1loG_gaincode_rev6
15694 clip1loG_gaincode_rev6
15699 clip1loG_gaincode_rev6
15704 clip1loG_gaincode_rev6
15709 clip1loG_gaincode_rev6
15713 nbclip_th
= nbclipG_th_rev6
;
15714 w1clip_th
= w1clipG_th_rev6
;
15715 crsmin_th
= crsminG_th_rev6
;
15716 crsminl_th
= crsminlG_th_rev6
;
15717 crsminu_th
= crsminuG_th_rev6
;
15718 rssi_gain
= rssi_gain_default
;
15720 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
15721 lna1_gain_db
= lna1G_gain_db_rev5
;
15722 lna2_gain_db
= lna2G_gain_db_rev5
;
15723 if (pi
->sh
->boardflags
& BFL_EXTLNA
) {
15726 rfseqG_init_gain_rev5_elna
;
15728 initG_gaincode_rev5_elna
;
15730 rfseq_init_gain
= rfseqG_init_gain_rev5
;
15731 init_gaincode
= initG_gaincode_rev5
;
15733 clip1hi_gaincode
= clip1hiG_gaincode_rev5
;
15737 clip1loG_gaincode_rev5
[0];
15741 clip1loG_gaincode_rev5
[1];
15745 clip1loG_gaincode_rev5
[2];
15750 clip1loG_gaincode_rev5
[3];
15754 clip1loG_gaincode_rev5
[4];
15758 clip1loG_gaincode_rev5
[5];
15762 clip1loG_gaincode_rev5
[6];
15766 clip1loG_gaincode_rev5
[7];
15770 clip1loG_gaincode_rev5
[3];
15773 nbclip_th
= nbclipG_th_rev5
;
15774 w1clip_th
= w1clipG_th_rev5
;
15775 crsmin_th
= crsminG_th_rev5
;
15776 crsminl_th
= crsminlG_th_rev5
;
15777 crsminu_th
= crsminuG_th_rev5
;
15778 rssi_gain
= rssi_gain_default
;
15779 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
15780 lna1_gain_db
= lna1G_gain_db_rev4
;
15781 lna2_gain_db
= lna2G_gain_db
;
15782 rfseq_init_gain
= rfseqG_init_gain_rev4
;
15783 init_gaincode
= initG_gaincode_rev4
;
15784 clip1hi_gaincode
= clip1hiG_gaincode_rev4
;
15785 clip1lo_gaincode
= clip1loG_gaincode
;
15786 nbclip_th
= nbclipG_th_rev4
;
15787 w1clip_th
= w1clipG_th
;
15788 crsmin_th
= crsminG_th
;
15789 crsminl_th
= crsminlG_th
;
15790 crsminu_th
= crsminuG_th
;
15791 rssi_gain
= rssi_gain_default
;
15793 lna1_gain_db
= lna1G_gain_db
;
15794 lna2_gain_db
= lna2G_gain_db
;
15795 rfseq_init_gain
= rfseqG_init_gain
;
15796 init_gaincode
= initG_gaincode
;
15797 clip1hi_gaincode
= clip1hiG_gaincode
;
15798 clip1lo_gaincode
= clip1loG_gaincode
;
15799 nbclip_th
= nbclipG_th
;
15800 w1clip_th
= w1clipG_th
;
15801 crsmin_th
= crsminG_th
;
15802 crsminl_th
= crsminlG_th
;
15803 crsminu_th
= crsminuG_th
;
15804 rssi_gain
= rssi_gain_default
;
15806 tia_gain_db
= tiaG_gain_db
;
15807 tia_gainbits
= tiaG_gainbits
;
15808 clip1md_gaincode
= clip1mdG_gaincode
;
15810 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
15811 lna1_gain_db
= lna1A_gain_db_rev6
;
15812 lna2_gain_db
= lna2A_gain_db_rev6
;
15813 tia_gain_db
= tiaA_gain_db_rev6
;
15814 tia_gainbits
= tiaA_gainbits_rev6
;
15815 rfseq_init_gain
= rfseqA_init_gain_rev6
;
15816 init_gaincode
= initA_gaincode_rev6
;
15817 clip1hi_gaincode
= clip1hiA_gaincode_rev6
;
15818 clip1md_gaincode
= clip1mdA_gaincode_rev6
;
15819 clip1lo_gaincode
= clip1loA_gaincode_rev6
;
15820 crsmin_th
= crsminA_th_rev6
;
15821 crsminl_th
= crsminlA_th_rev6
;
15822 if ((pi
->pubpi
.radiorev
== 11) &&
15823 (CHSPEC_IS40(pi
->radio_chanspec
) == 0))
15824 crsminu_th
= crsminuA_th_rev6_224B0
;
15826 crsminu_th
= crsminuA_th_rev6
;
15828 nbclip_th
= nbclipA_th_rev6
;
15829 rssi_gain
= rssiA_gain_rev6
;
15830 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
15831 lna1_gain_db
= lna1A_gain_db_rev5
;
15832 lna2_gain_db
= lna2A_gain_db_rev5
;
15833 tia_gain_db
= tiaA_gain_db_rev5
;
15834 tia_gainbits
= tiaA_gainbits_rev5
;
15835 rfseq_init_gain
= rfseqA_init_gain_rev5
;
15836 init_gaincode
= initA_gaincode_rev5
;
15837 clip1hi_gaincode
= clip1hiA_gaincode_rev5
;
15838 clip1md_gaincode
= clip1mdA_gaincode_rev5
;
15839 clip1lo_gaincode
= clip1loA_gaincode_rev5
;
15840 crsmin_th
= crsminA_th_rev5
;
15841 crsminl_th
= crsminlA_th_rev5
;
15842 crsminu_th
= crsminuA_th_rev5
;
15843 nbclip_th
= nbclipA_th_rev5
;
15844 rssi_gain
= rssiA_gain_rev5
;
15845 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
15846 lna1_gain_db
= lna1A_gain_db_rev4
;
15847 lna2_gain_db
= lna2A_gain_db_rev4
;
15848 tia_gain_db
= tiaA_gain_db_rev4
;
15849 tia_gainbits
= tiaA_gainbits_rev4
;
15850 if (pi
->sh
->boardflags
& BFL_EXTLNA_5GHz
) {
15853 rfseqA_init_gain_rev4_elna
;
15855 initA_gaincode_rev4_elna
;
15857 rfseq_init_gain
= rfseqA_init_gain_rev4
;
15858 init_gaincode
= initA_gaincode_rev4
;
15860 clip1hi_gaincode
= clip1hiA_gaincode_rev4
;
15861 clip1md_gaincode
= clip1mdA_gaincode_rev4
;
15862 clip1lo_gaincode
= clip1loA_gaincode_rev4
;
15863 crsmin_th
= crsminA_th_rev4
;
15864 crsminl_th
= crsminlA_th_rev4
;
15865 crsminu_th
= crsminuA_th_rev4
;
15866 nbclip_th
= nbclipA_th_rev4
;
15867 rssi_gain
= rssi_gain_default
;
15869 lna1_gain_db
= lna1A_gain_db
;
15870 lna2_gain_db
= lna2A_gain_db
;
15871 tia_gain_db
= tiaA_gain_db
;
15872 tia_gainbits
= tiaA_gainbits
;
15873 rfseq_init_gain
= rfseqA_init_gain
;
15874 init_gaincode
= initA_gaincode
;
15875 clip1hi_gaincode
= clip1hiA_gaincode
;
15876 clip1md_gaincode
= clip1mdA_gaincode
;
15877 clip1lo_gaincode
= clip1loA_gaincode
;
15878 crsmin_th
= crsminA_th
;
15879 crsminl_th
= crsminlA_th
;
15880 crsminu_th
= crsminuA_th
;
15881 nbclip_th
= nbclipA_th
;
15882 rssi_gain
= rssi_gain_default
;
15884 w1clip_th
= w1clipA_th
;
15887 write_radio_reg(pi
,
15888 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC
|
15889 RADIO_2056_RX0
), 0x17);
15890 write_radio_reg(pi
,
15891 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC
|
15892 RADIO_2056_RX1
), 0x17);
15894 write_radio_reg(pi
, (RADIO_2056_RX_LNAG2_IDAC
| RADIO_2056_RX0
),
15896 write_radio_reg(pi
, (RADIO_2056_RX_LNAG2_IDAC
| RADIO_2056_RX1
),
15899 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_POLE
| RADIO_2056_RX0
),
15901 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_POLE
| RADIO_2056_RX1
),
15904 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_GAIN
| RADIO_2056_RX0
),
15906 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_GAIN
| RADIO_2056_RX1
),
15909 write_radio_reg(pi
,
15910 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC
|
15911 RADIO_2056_RX0
), 0x17);
15912 write_radio_reg(pi
,
15913 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC
|
15914 RADIO_2056_RX1
), 0x17);
15916 write_radio_reg(pi
, (RADIO_2056_RX_LNAA2_IDAC
| RADIO_2056_RX0
),
15918 write_radio_reg(pi
, (RADIO_2056_RX_LNAA2_IDAC
| RADIO_2056_RX1
),
15921 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 8,
15923 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 8,
15926 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x10,
15928 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x10,
15931 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 10, 0x20,
15933 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 10, 0x20,
15936 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 10, 0x20,
15938 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 10, 0x20,
15941 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 6, 0x40,
15943 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 6, 0x40,
15945 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 6, 0x40,
15947 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 6, 0x40,
15950 write_phy_reg(pi
, 0x20, init_gaincode
);
15951 write_phy_reg(pi
, 0x2a7, init_gaincode
);
15953 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15954 pi
->pubpi
.phy_corenum
, 0x106, 16,
15957 write_phy_reg(pi
, 0x22, clip1hi_gaincode
);
15958 write_phy_reg(pi
, 0x2a9, clip1hi_gaincode
);
15960 write_phy_reg(pi
, 0x24, clip1md_gaincode
);
15961 write_phy_reg(pi
, 0x2ab, clip1md_gaincode
);
15963 write_phy_reg(pi
, 0x37, clip1lo_gaincode
);
15964 write_phy_reg(pi
, 0x2ad, clip1lo_gaincode
);
15966 mod_phy_reg(pi
, 0x27d, (0xff << 0), (crsmin_th
<< 0));
15967 mod_phy_reg(pi
, 0x280, (0xff << 0), (crsminl_th
<< 0));
15968 mod_phy_reg(pi
, 0x283, (0xff << 0), (crsminu_th
<< 0));
15970 write_phy_reg(pi
, 0x2b, nbclip_th
);
15971 write_phy_reg(pi
, 0x41, nbclip_th
);
15973 mod_phy_reg(pi
, 0x27, (0x3f << 0), (w1clip_th
<< 0));
15974 mod_phy_reg(pi
, 0x3d, (0x3f << 0), (w1clip_th
<< 0));
15976 write_phy_reg(pi
, 0x150, 0x809c);
15980 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
15981 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
15983 write_phy_reg(pi
, 0x2b, 0x84);
15984 write_phy_reg(pi
, 0x41, 0x84);
15986 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
15987 write_phy_reg(pi
, 0x6b, 0x2b);
15988 write_phy_reg(pi
, 0x6c, 0x2b);
15989 write_phy_reg(pi
, 0x6d, 0x9);
15990 write_phy_reg(pi
, 0x6e, 0x9);
15993 w1th
= NPHY_RSSICAL_W1_TARGET
- 4;
15994 mod_phy_reg(pi
, 0x27, (0x3f << 0), (w1th
<< 0));
15995 mod_phy_reg(pi
, 0x3d, (0x3f << 0), (w1th
<< 0));
15997 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
15998 mod_phy_reg(pi
, 0x1c, (0x1f << 0), (0x1 << 0));
15999 mod_phy_reg(pi
, 0x32, (0x1f << 0), (0x1 << 0));
16001 mod_phy_reg(pi
, 0x1d, (0x1f << 0), (0x1 << 0));
16002 mod_phy_reg(pi
, 0x33, (0x1f << 0), (0x1 << 0));
16005 write_phy_reg(pi
, 0x150, 0x809c);
16007 if (pi
->nphy_gain_boost
)
16008 if ((CHSPEC_IS2G(pi
->radio_chanspec
)) &&
16009 (CHSPEC_IS40(pi
->radio_chanspec
)))
16013 else if (CHSPEC_IS40(pi
->radio_chanspec
))
16018 mod_phy_reg(pi
, 0x20, (0x1f << 7), (hpf_code
<< 7));
16019 mod_phy_reg(pi
, 0x36, (0x1f << 7), (hpf_code
<< 7));
16021 for (ctr
= 0; ctr
< 4; ctr
++)
16022 regval
[ctr
] = (hpf_code
<< 8) | 0x7c;
16023 wlc_phy_table_write_nphy(pi
, 7, 4, 0x106, 16, regval
);
16025 wlc_phy_adjust_lnagaintbl_nphy(pi
);
16027 if (pi
->nphy_elna_gain_config
) {
16032 wlc_phy_table_write_nphy(pi
, 2, 4, 8, 16, regval
);
16033 wlc_phy_table_write_nphy(pi
, 3, 4, 8, 16, regval
);
16035 for (ctr
= 0; ctr
< 4; ctr
++)
16036 regval
[ctr
] = (hpf_code
<< 8) | 0x74;
16037 wlc_phy_table_write_nphy(pi
, 7, 4, 0x106, 16, regval
);
16040 if (NREV_IS(pi
->pubpi
.phy_rev
, 2)) {
16041 for (ctr
= 0; ctr
< 21; ctr
++)
16042 regval
[ctr
] = 3 * ctr
;
16043 wlc_phy_table_write_nphy(pi
, 0, 21, 32, 16, regval
);
16044 wlc_phy_table_write_nphy(pi
, 1, 21, 32, 16, regval
);
16046 for (ctr
= 0; ctr
< 21; ctr
++)
16047 regval
[ctr
] = (u16
) ctr
;
16048 wlc_phy_table_write_nphy(pi
, 2, 21, 32, 16, regval
);
16049 wlc_phy_table_write_nphy(pi
, 3, 21, 32, 16, regval
);
16052 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_UPDATEGAINU
,
16053 rfseq_updategainu_events
,
16054 rfseq_updategainu_dlys
,
16055 sizeof(rfseq_updategainu_events
) /
16056 sizeof(rfseq_updategainu_events
[0]));
16058 mod_phy_reg(pi
, 0x153, (0xff << 8), (90 << 8));
16060 if (CHSPEC_IS2G(pi
->radio_chanspec
))
16062 (NPHY_TO_BPHY_OFF
+ BPHY_OPTIONAL_MODES
),
16067 static void wlc_phy_workarounds_nphy(struct brcms_phy
*pi
)
16069 u8 rfseq_rx2tx_events
[] = {
16070 NPHY_RFSEQ_CMD_NOP
,
16071 NPHY_RFSEQ_CMD_RXG_FBW
,
16072 NPHY_RFSEQ_CMD_TR_SWITCH
,
16073 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
,
16074 NPHY_RFSEQ_CMD_RXPD_TXPD
,
16075 NPHY_RFSEQ_CMD_TX_GAIN
,
16076 NPHY_RFSEQ_CMD_EXT_PA
16078 u8 rfseq_rx2tx_dlys
[] = { 8, 6, 6, 2, 4, 60, 1 };
16079 u8 rfseq_tx2rx_events
[] = {
16080 NPHY_RFSEQ_CMD_NOP
,
16081 NPHY_RFSEQ_CMD_EXT_PA
,
16082 NPHY_RFSEQ_CMD_TX_GAIN
,
16083 NPHY_RFSEQ_CMD_RXPD_TXPD
,
16084 NPHY_RFSEQ_CMD_TR_SWITCH
,
16085 NPHY_RFSEQ_CMD_RXG_FBW
,
16086 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16088 u8 rfseq_tx2rx_dlys
[] = { 8, 6, 2, 4, 4, 6, 1 };
16089 u8 rfseq_tx2rx_events_rev3
[] = {
16090 NPHY_REV3_RFSEQ_CMD_EXT_PA
,
16091 NPHY_REV3_RFSEQ_CMD_INT_PA_PU
,
16092 NPHY_REV3_RFSEQ_CMD_TX_GAIN
,
16093 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD
,
16094 NPHY_REV3_RFSEQ_CMD_TR_SWITCH
,
16095 NPHY_REV3_RFSEQ_CMD_RXG_FBW
,
16096 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS
,
16097 NPHY_REV3_RFSEQ_CMD_END
16099 u8 rfseq_tx2rx_dlys_rev3
[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16100 u8 rfseq_rx2tx_events_rev3
[] = {
16101 NPHY_REV3_RFSEQ_CMD_NOP
,
16102 NPHY_REV3_RFSEQ_CMD_RXG_FBW
,
16103 NPHY_REV3_RFSEQ_CMD_TR_SWITCH
,
16104 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS
,
16105 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD
,
16106 NPHY_REV3_RFSEQ_CMD_TX_GAIN
,
16107 NPHY_REV3_RFSEQ_CMD_INT_PA_PU
,
16108 NPHY_REV3_RFSEQ_CMD_EXT_PA
,
16109 NPHY_REV3_RFSEQ_CMD_END
16111 u8 rfseq_rx2tx_dlys_rev3
[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16113 u8 rfseq_rx2tx_events_rev3_ipa
[] = {
16114 NPHY_REV3_RFSEQ_CMD_NOP
,
16115 NPHY_REV3_RFSEQ_CMD_RXG_FBW
,
16116 NPHY_REV3_RFSEQ_CMD_TR_SWITCH
,
16117 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS
,
16118 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD
,
16119 NPHY_REV3_RFSEQ_CMD_TX_GAIN
,
16120 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS
,
16121 NPHY_REV3_RFSEQ_CMD_INT_PA_PU
,
16122 NPHY_REV3_RFSEQ_CMD_END
16124 u8 rfseq_rx2tx_dlys_rev3_ipa
[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16125 u16 rfseq_rx2tx_dacbufpu_rev7
[] = { 0x10f, 0x10f };
16127 s16 alpha0
, alpha1
, alpha2
;
16128 s16 beta0
, beta1
, beta2
;
16129 u32 leg_data_weights
, ht_data_weights
, nss1_data_weights
,
16131 u8 chan_freq_range
= 0;
16132 u16 dac_control
= 0x0002;
16133 u16 aux_adc_vmid_rev7_core0
[] = { 0x8e, 0x96, 0x96, 0x96 };
16134 u16 aux_adc_vmid_rev7_core1
[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16135 u16 aux_adc_vmid_rev4
[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16136 u16 aux_adc_vmid_rev3
[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16138 u16 aux_adc_gain_rev7
[] = { 0x02, 0x02, 0x02, 0x02 };
16139 u16 aux_adc_gain_rev4
[] = { 0x02, 0x02, 0x02, 0x00 };
16140 u16 aux_adc_gain_rev3
[] = { 0x02, 0x02, 0x02, 0x00 };
16142 u16 sk_adc_vmid
[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16143 u16 sk_adc_gain
[] = { 0x02, 0x02, 0x02, 0x02 };
16144 s32 min_nvar_val
= 0x18d;
16145 s32 min_nvar_offset_6mbps
= 20;
16149 u16 afectrl_adc_ctrl1_rev7
= 0x20;
16150 u16 afectrl_adc_ctrl2_rev7
= 0x0;
16151 u16 rfseq_rx2tx_lpf_h_hpc_rev7
= 0x77;
16152 u16 rfseq_tx2rx_lpf_h_hpc_rev7
= 0x77;
16153 u16 rfseq_pktgn_lpf_h_hpc_rev7
= 0x77;
16154 u16 rfseq_htpktgn_lpf_hpc_rev7
[] = { 0x77, 0x11, 0x11 };
16155 u16 rfseq_pktgn_lpf_hpc_rev7
[] = { 0x11, 0x11 };
16156 u16 rfseq_cckpktgn_lpf_hpc_rev7
[] = { 0x11, 0x11 };
16157 u16 ipalvlshift_3p3_war_en
= 0;
16158 u16 rccal_bcap_val
, rccal_scap_val
;
16159 u16 rccal_tx20_11b_bcap
= 0;
16160 u16 rccal_tx20_11b_scap
= 0;
16161 u16 rccal_tx20_11n_bcap
= 0;
16162 u16 rccal_tx20_11n_scap
= 0;
16163 u16 rccal_tx40_11n_bcap
= 0;
16164 u16 rccal_tx40_11n_scap
= 0;
16165 u16 rx2tx_lpf_rc_lut_tx20_11b
= 0;
16166 u16 rx2tx_lpf_rc_lut_tx20_11n
= 0;
16167 u16 rx2tx_lpf_rc_lut_tx40_11n
= 0;
16168 u16 tx_lpf_bw_ofdm_20mhz
= 0;
16169 u16 tx_lpf_bw_ofdm_40mhz
= 0;
16170 u16 tx_lpf_bw_11b
= 0;
16171 u16 ipa2g_mainbias
, ipa2g_casconv
, ipa2g_biasfilt
;
16172 u16 txgm_idac_bleed
= 0;
16173 bool rccal_ovrd
= false;
16177 if (CHSPEC_IS5G(pi
->radio_chanspec
))
16178 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_cck_en
, 0);
16180 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_cck_en
, 1);
16182 if (pi
->phyhang_avoid
)
16183 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
16185 or_phy_reg(pi
, 0xb1, NPHY_IQFlip_ADC1
| NPHY_IQFlip_ADC2
);
16187 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
16189 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
16190 mod_phy_reg(pi
, 0x221, (0x1 << 4), (1 << 4));
16192 mod_phy_reg(pi
, 0x160, (0x7f << 0), (32 << 0));
16193 mod_phy_reg(pi
, 0x160, (0x7f << 8), (39 << 8));
16194 mod_phy_reg(pi
, 0x161, (0x7f << 0), (46 << 0));
16195 mod_phy_reg(pi
, 0x161, (0x7f << 8), (51 << 8));
16196 mod_phy_reg(pi
, 0x162, (0x7f << 0), (55 << 0));
16197 mod_phy_reg(pi
, 0x162, (0x7f << 8), (58 << 8));
16198 mod_phy_reg(pi
, 0x163, (0x7f << 0), (60 << 0));
16199 mod_phy_reg(pi
, 0x163, (0x7f << 8), (62 << 8));
16200 mod_phy_reg(pi
, 0x164, (0x7f << 0), (62 << 0));
16201 mod_phy_reg(pi
, 0x164, (0x7f << 8), (63 << 8));
16202 mod_phy_reg(pi
, 0x165, (0x7f << 0), (63 << 0));
16203 mod_phy_reg(pi
, 0x165, (0x7f << 8), (64 << 8));
16204 mod_phy_reg(pi
, 0x166, (0x7f << 0), (64 << 0));
16205 mod_phy_reg(pi
, 0x166, (0x7f << 8), (64 << 8));
16206 mod_phy_reg(pi
, 0x167, (0x7f << 0), (64 << 0));
16207 mod_phy_reg(pi
, 0x167, (0x7f << 8), (64 << 8));
16210 if (NREV_LE(pi
->pubpi
.phy_rev
, 8)) {
16211 write_phy_reg(pi
, 0x23f, 0x1b0);
16212 write_phy_reg(pi
, 0x240, 0x1b0);
16215 if (NREV_GE(pi
->pubpi
.phy_rev
, 8))
16216 mod_phy_reg(pi
, 0xbd, (0xff << 0), (114 << 0));
16218 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x00, 16,
16220 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x10, 16,
16223 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16224 1, 0, 32, &leg_data_weights
);
16225 leg_data_weights
= leg_data_weights
& 0xffffff;
16226 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16227 1, 0, 32, &leg_data_weights
);
16229 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
16231 rfseq_rx2tx_dacbufpu_rev7
);
16232 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x16e, 16,
16233 rfseq_rx2tx_dacbufpu_rev7
);
16236 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
,
16237 rfseq_rx2tx_events_rev3_ipa
,
16238 rfseq_rx2tx_dlys_rev3_ipa
,
16239 ARRAY_SIZE(rfseq_rx2tx_events_rev3_ipa
));
16241 mod_phy_reg(pi
, 0x299, (0x3 << 14), (0x1 << 14));
16242 mod_phy_reg(pi
, 0x29d, (0x3 << 14), (0x1 << 14));
16244 tx_lpf_bw_ofdm_20mhz
= wlc_phy_read_lpf_bw_ctl_nphy(pi
, 0x154);
16245 tx_lpf_bw_ofdm_40mhz
= wlc_phy_read_lpf_bw_ctl_nphy(pi
, 0x159);
16246 tx_lpf_bw_11b
= wlc_phy_read_lpf_bw_ctl_nphy(pi
, 0x152);
16250 if (((pi
->pubpi
.radiorev
== 5)
16251 && (CHSPEC_IS40(pi
->radio_chanspec
) == 1))
16252 || (pi
->pubpi
.radiorev
== 7)
16253 || (pi
->pubpi
.radiorev
== 8)) {
16258 RADIO_2057_RCCAL_BCAP_VAL
);
16262 RADIO_2057_RCCAL_SCAP_VAL
);
16264 rccal_tx20_11b_bcap
= rccal_bcap_val
;
16265 rccal_tx20_11b_scap
= rccal_scap_val
;
16267 if ((pi
->pubpi
.radiorev
== 5) &&
16268 (CHSPEC_IS40(pi
->radio_chanspec
) == 1)) {
16270 rccal_tx20_11n_bcap
= rccal_bcap_val
;
16271 rccal_tx20_11n_scap
= rccal_scap_val
;
16272 rccal_tx40_11n_bcap
= 0xc;
16273 rccal_tx40_11n_scap
= 0xc;
16277 } else if ((pi
->pubpi
.radiorev
== 7)
16278 || (pi
->pubpi
.radiorev
== 8)) {
16280 tx_lpf_bw_ofdm_20mhz
= 4;
16283 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
16284 rccal_tx20_11n_bcap
= 0xc;
16285 rccal_tx20_11n_scap
= 0xc;
16286 rccal_tx40_11n_bcap
= 0xa;
16287 rccal_tx40_11n_scap
= 0xa;
16289 rccal_tx20_11n_bcap
= 0x14;
16290 rccal_tx20_11n_scap
= 0x14;
16291 rccal_tx40_11n_bcap
= 0xf;
16292 rccal_tx40_11n_scap
= 0xf;
16301 if (pi
->pubpi
.radiorev
== 5) {
16303 tx_lpf_bw_ofdm_20mhz
= 1;
16304 tx_lpf_bw_ofdm_40mhz
= 3;
16309 RADIO_2057_RCCAL_BCAP_VAL
);
16313 RADIO_2057_RCCAL_SCAP_VAL
);
16315 rccal_tx20_11b_bcap
= rccal_bcap_val
;
16316 rccal_tx20_11b_scap
= rccal_scap_val
;
16318 rccal_tx20_11n_bcap
= 0x13;
16319 rccal_tx20_11n_scap
= 0x11;
16320 rccal_tx40_11n_bcap
= 0x13;
16321 rccal_tx40_11n_scap
= 0x11;
16329 rx2tx_lpf_rc_lut_tx20_11b
=
16330 (rccal_tx20_11b_bcap
<< 8) |
16331 (rccal_tx20_11b_scap
<< 3) |
16333 rx2tx_lpf_rc_lut_tx20_11n
=
16334 (rccal_tx20_11n_bcap
<< 8) |
16335 (rccal_tx20_11n_scap
<< 3) |
16336 tx_lpf_bw_ofdm_20mhz
;
16337 rx2tx_lpf_rc_lut_tx40_11n
=
16338 (rccal_tx40_11n_bcap
<< 8) |
16339 (rccal_tx40_11n_scap
<< 3) |
16340 tx_lpf_bw_ofdm_40mhz
;
16342 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
16343 wlc_phy_table_write_nphy(
16344 pi
, NPHY_TBL_ID_RFSEQ
,
16346 0x152 + coreNum
* 0x10,
16348 &rx2tx_lpf_rc_lut_tx20_11b
);
16349 wlc_phy_table_write_nphy(
16350 pi
, NPHY_TBL_ID_RFSEQ
,
16352 0x153 + coreNum
* 0x10,
16354 &rx2tx_lpf_rc_lut_tx20_11n
);
16355 wlc_phy_table_write_nphy(
16356 pi
, NPHY_TBL_ID_RFSEQ
,
16358 0x154 + coreNum
* 0x10,
16360 &rx2tx_lpf_rc_lut_tx20_11n
);
16361 wlc_phy_table_write_nphy(
16362 pi
, NPHY_TBL_ID_RFSEQ
,
16364 0x155 + coreNum
* 0x10,
16366 &rx2tx_lpf_rc_lut_tx40_11n
);
16367 wlc_phy_table_write_nphy(
16368 pi
, NPHY_TBL_ID_RFSEQ
,
16370 0x156 + coreNum
* 0x10,
16372 &rx2tx_lpf_rc_lut_tx40_11n
);
16373 wlc_phy_table_write_nphy(
16374 pi
, NPHY_TBL_ID_RFSEQ
,
16376 0x157 + coreNum
* 0x10,
16378 &rx2tx_lpf_rc_lut_tx40_11n
);
16379 wlc_phy_table_write_nphy(
16380 pi
, NPHY_TBL_ID_RFSEQ
,
16382 0x158 + coreNum
* 0x10,
16384 &rx2tx_lpf_rc_lut_tx40_11n
);
16385 wlc_phy_table_write_nphy(
16386 pi
, NPHY_TBL_ID_RFSEQ
,
16388 0x159 + coreNum
* 0x10,
16390 &rx2tx_lpf_rc_lut_tx40_11n
);
16393 wlc_phy_rfctrl_override_nphy_rev7(
16396 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
16399 write_phy_reg(pi
, 0x32f, 0x3);
16401 if ((pi
->pubpi
.radiorev
== 4) || (pi
->pubpi
.radiorev
== 6))
16402 wlc_phy_rfctrl_override_nphy_rev7(
16405 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
16407 if ((pi
->pubpi
.radiorev
== 3) || (pi
->pubpi
.radiorev
== 4) ||
16408 (pi
->pubpi
.radiorev
== 6)) {
16409 if ((pi
->sh
->sromrev
>= 8)
16410 && (pi
->sh
->boardflags2
& BFL2_IPALVLSHIFT_3P3
))
16411 ipalvlshift_3p3_war_en
= 1;
16413 if (ipalvlshift_3p3_war_en
) {
16414 write_radio_reg(pi
, RADIO_2057_GPAIO_CONFIG
,
16416 write_radio_reg(pi
, RADIO_2057_GPAIO_SEL1
,
16418 write_radio_reg(pi
, RADIO_2057_GPAIO_SEL0
, 0x0);
16420 RADIO_2057_RXTXBIAS_CONFIG_CORE0
,
16423 RADIO_2057_RXTXBIAS_CONFIG_CORE1
,
16426 ipa2g_mainbias
= 0x1f;
16428 ipa2g_casconv
= 0x6f;
16430 ipa2g_biasfilt
= 0xaa;
16433 ipa2g_mainbias
= 0x2b;
16435 ipa2g_casconv
= 0x7f;
16437 ipa2g_biasfilt
= 0xee;
16440 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
16441 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
16442 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
16443 coreNum
, IPA2G_IMAIN
,
16445 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
16446 coreNum
, IPA2G_CASCONV
,
16448 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
16457 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
16458 if ((pi
->pubpi
.radiorev
== 3)
16459 || (pi
->pubpi
.radiorev
== 4)
16460 || (pi
->pubpi
.radiorev
== 6))
16461 txgm_idac_bleed
= 0x7f;
16463 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
16464 if (txgm_idac_bleed
!= 0)
16472 if (pi
->pubpi
.radiorev
== 5) {
16474 for (coreNum
= 0; coreNum
<= 1;
16476 WRITE_RADIO_REG4(pi
, RADIO_2057
,
16480 WRITE_RADIO_REG4(pi
, RADIO_2057
,
16489 WRITE_RADIO_REG4(pi
, RADIO_2057
,
16496 PAD_BIAS_FILTER_BWS
,
16500 } else if ((pi
->pubpi
.radiorev
== 7)
16501 || (pi
->pubpi
.radiorev
== 8)) {
16503 if (CHSPEC_IS40(pi
->radio_chanspec
) ==
16505 WRITE_RADIO_REG4(pi
, RADIO_2057
,
16509 WRITE_RADIO_REG4(pi
, RADIO_2057
,
16514 WRITE_RADIO_REG4(pi
, RADIO_2057
,
16518 WRITE_RADIO_REG4(pi
, RADIO_2057
,
16526 freq
= CHAN5G_FREQ(CHSPEC_CHANNEL(
16527 pi
->radio_chanspec
));
16528 if (((freq
>= 5180) && (freq
<= 5230))
16529 || ((freq
>= 5745) && (freq
<= 5805))) {
16530 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
16531 0, IPA5G_BIAS_FILTER
,
16533 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
16534 1, IPA5G_BIAS_FILTER
,
16540 if (pi
->pubpi
.radiorev
!= 5) {
16541 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
16542 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
16544 TXMIX2G_TUNE_BOOST_PU
,
16546 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
16548 TXGM_IDAC_BLEED
, 0x70);
16553 if (pi
->pubpi
.radiorev
== 4) {
16554 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
16556 &afectrl_adc_ctrl1_rev7
);
16557 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
16559 &afectrl_adc_ctrl1_rev7
);
16561 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
16562 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
16563 AFE_VCM_CAL_MASTER
, 0x0);
16564 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
16565 AFE_SET_VCM_I
, 0x3f);
16566 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
16567 AFE_SET_VCM_Q
, 0x3f);
16570 mod_phy_reg(pi
, 0xa6, (0x1 << 2), (0x1 << 2));
16571 mod_phy_reg(pi
, 0x8f, (0x1 << 2), (0x1 << 2));
16572 mod_phy_reg(pi
, 0xa7, (0x1 << 2), (0x1 << 2));
16573 mod_phy_reg(pi
, 0xa5, (0x1 << 2), (0x1 << 2));
16575 mod_phy_reg(pi
, 0xa6, (0x1 << 0), 0);
16576 mod_phy_reg(pi
, 0x8f, (0x1 << 0), (0x1 << 0));
16577 mod_phy_reg(pi
, 0xa7, (0x1 << 0), 0);
16578 mod_phy_reg(pi
, 0xa5, (0x1 << 0), (0x1 << 0));
16580 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
16582 &afectrl_adc_ctrl2_rev7
);
16583 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
16585 &afectrl_adc_ctrl2_rev7
);
16587 mod_phy_reg(pi
, 0xa6, (0x1 << 2), 0);
16588 mod_phy_reg(pi
, 0x8f, (0x1 << 2), 0);
16589 mod_phy_reg(pi
, 0xa7, (0x1 << 2), 0);
16590 mod_phy_reg(pi
, 0xa5, (0x1 << 2), 0);
16593 write_phy_reg(pi
, 0x6a, 0x2);
16595 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 256, 32,
16596 &min_nvar_offset_6mbps
);
16598 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x138, 16,
16599 &rfseq_pktgn_lpf_hpc_rev7
);
16601 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1, 0x141, 16,
16602 &rfseq_pktgn_lpf_h_hpc_rev7
);
16604 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 3, 0x133, 16,
16605 &rfseq_htpktgn_lpf_hpc_rev7
);
16607 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x146, 16,
16608 &rfseq_cckpktgn_lpf_hpc_rev7
);
16610 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1, 0x123, 16,
16611 &rfseq_tx2rx_lpf_h_hpc_rev7
);
16613 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1, 0x12A, 16,
16614 &rfseq_rx2tx_lpf_h_hpc_rev7
);
16616 if (CHSPEC_IS40(pi
->radio_chanspec
) == 0) {
16617 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
16618 32, &min_nvar_val
);
16619 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
16620 127, 32, &min_nvar_val
);
16622 min_nvar_val
= noise_var_tbl_rev7
[3];
16623 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
16624 32, &min_nvar_val
);
16626 min_nvar_val
= noise_var_tbl_rev7
[127];
16627 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
16628 127, 32, &min_nvar_val
);
16631 wlc_phy_workarounds_nphy_gainctrl(pi
);
16634 (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.
16635 pdetrange
: pi
->srom_fem2g
.pdetrange
;
16637 if (pdetrange
== 0) {
16639 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16640 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16641 aux_adc_vmid_rev7_core0
[3] = 0x70;
16642 aux_adc_vmid_rev7_core1
[3] = 0x70;
16643 aux_adc_gain_rev7
[3] = 2;
16645 aux_adc_vmid_rev7_core0
[3] = 0x80;
16646 aux_adc_vmid_rev7_core1
[3] = 0x80;
16647 aux_adc_gain_rev7
[3] = 3;
16649 } else if (pdetrange
== 1) {
16650 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16651 aux_adc_vmid_rev7_core0
[3] = 0x7c;
16652 aux_adc_vmid_rev7_core1
[3] = 0x7c;
16653 aux_adc_gain_rev7
[3] = 2;
16655 aux_adc_vmid_rev7_core0
[3] = 0x8c;
16656 aux_adc_vmid_rev7_core1
[3] = 0x8c;
16657 aux_adc_gain_rev7
[3] = 1;
16659 } else if (pdetrange
== 2) {
16660 if (pi
->pubpi
.radioid
== BCM2057_ID
) {
16661 if ((pi
->pubpi
.radiorev
== 5)
16662 || (pi
->pubpi
.radiorev
== 7)
16663 || (pi
->pubpi
.radiorev
== 8)) {
16664 if (chan_freq_range
==
16665 WL_CHAN_FREQ_RANGE_2G
) {
16666 aux_adc_vmid_rev7_core0
[3] =
16668 aux_adc_vmid_rev7_core1
[3] =
16670 aux_adc_gain_rev7
[3] = 0;
16672 aux_adc_vmid_rev7_core0
[3] =
16674 aux_adc_vmid_rev7_core1
[3] =
16676 aux_adc_gain_rev7
[3] = 0;
16681 } else if (pdetrange
== 3) {
16682 if (chan_freq_range
== WL_CHAN_FREQ_RANGE_2G
) {
16683 aux_adc_vmid_rev7_core0
[3] = 0x89;
16684 aux_adc_vmid_rev7_core1
[3] = 0x89;
16685 aux_adc_gain_rev7
[3] = 0;
16688 } else if (pdetrange
== 5) {
16690 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16691 aux_adc_vmid_rev7_core0
[3] = 0x80;
16692 aux_adc_vmid_rev7_core1
[3] = 0x80;
16693 aux_adc_gain_rev7
[3] = 3;
16695 aux_adc_vmid_rev7_core0
[3] = 0x70;
16696 aux_adc_vmid_rev7_core1
[3] = 0x70;
16697 aux_adc_gain_rev7
[3] = 2;
16701 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x08, 16,
16702 &aux_adc_vmid_rev7_core0
);
16703 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x18, 16,
16704 &aux_adc_vmid_rev7_core1
);
16705 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x0c, 16,
16706 &aux_adc_gain_rev7
);
16707 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x1c, 16,
16708 &aux_adc_gain_rev7
);
16710 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
16712 write_phy_reg(pi
, 0x23f, 0x1f8);
16713 write_phy_reg(pi
, 0x240, 0x1f8);
16715 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16716 1, 0, 32, &leg_data_weights
);
16717 leg_data_weights
= leg_data_weights
& 0xffffff;
16718 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16719 1, 0, 32, &leg_data_weights
);
16727 write_phy_reg(pi
, 0x145, alpha0
);
16728 write_phy_reg(pi
, 0x146, alpha1
);
16729 write_phy_reg(pi
, 0x147, alpha2
);
16730 write_phy_reg(pi
, 0x148, beta0
);
16731 write_phy_reg(pi
, 0x149, beta1
);
16732 write_phy_reg(pi
, 0x14a, beta2
);
16734 write_phy_reg(pi
, 0x38, 0xC);
16735 write_phy_reg(pi
, 0x2ae, 0xC);
16737 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_TX2RX
,
16738 rfseq_tx2rx_events_rev3
,
16739 rfseq_tx2rx_dlys_rev3
,
16740 ARRAY_SIZE(rfseq_tx2rx_events_rev3
));
16743 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
,
16744 rfseq_rx2tx_events_rev3_ipa
,
16745 rfseq_rx2tx_dlys_rev3_ipa
,
16746 ARRAY_SIZE(rfseq_rx2tx_events_rev3_ipa
));
16748 if ((pi
->sh
->hw_phyrxchain
!= 0x3) &&
16749 (pi
->sh
->hw_phyrxchain
!= pi
->sh
->hw_phytxchain
)) {
16752 rfseq_rx2tx_dlys_rev3
[5] = 59;
16753 rfseq_rx2tx_dlys_rev3
[6] = 1;
16754 rfseq_rx2tx_events_rev3
[7] =
16755 NPHY_REV3_RFSEQ_CMD_END
;
16758 wlc_phy_set_rfseq_nphy(
16759 pi
, NPHY_RFSEQ_RX2TX
,
16760 rfseq_rx2tx_events_rev3
,
16761 rfseq_rx2tx_dlys_rev3
,
16762 ARRAY_SIZE(rfseq_rx2tx_events_rev3
));
16765 if (CHSPEC_IS2G(pi
->radio_chanspec
))
16766 write_phy_reg(pi
, 0x6a, 0x2);
16768 write_phy_reg(pi
, 0x6a, 0x9c40);
16770 mod_phy_reg(pi
, 0x294, (0xf << 8), (7 << 8));
16772 if (CHSPEC_IS40(pi
->radio_chanspec
) == 0) {
16773 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
16774 32, &min_nvar_val
);
16775 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
16776 127, 32, &min_nvar_val
);
16778 min_nvar_val
= noise_var_tbl_rev3
[3];
16779 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
16780 32, &min_nvar_val
);
16782 min_nvar_val
= noise_var_tbl_rev3
[127];
16783 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
16784 127, 32, &min_nvar_val
);
16787 wlc_phy_workarounds_nphy_gainctrl(pi
);
16789 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x00, 16,
16791 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x10, 16,
16795 (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.
16796 pdetrange
: pi
->srom_fem2g
.pdetrange
;
16798 if (pdetrange
== 0) {
16799 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
16800 aux_adc_vmid
= aux_adc_vmid_rev4
;
16801 aux_adc_gain
= aux_adc_gain_rev4
;
16803 aux_adc_vmid
= aux_adc_vmid_rev3
;
16804 aux_adc_gain
= aux_adc_gain_rev3
;
16807 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16808 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16809 switch (chan_freq_range
) {
16810 case WL_CHAN_FREQ_RANGE_5GL
:
16811 aux_adc_vmid
[3] = 0x89;
16812 aux_adc_gain
[3] = 0;
16814 case WL_CHAN_FREQ_RANGE_5GM
:
16815 aux_adc_vmid
[3] = 0x89;
16816 aux_adc_gain
[3] = 0;
16818 case WL_CHAN_FREQ_RANGE_5GH
:
16819 aux_adc_vmid
[3] = 0x89;
16820 aux_adc_gain
[3] = 0;
16826 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16827 0x08, 16, aux_adc_vmid
);
16828 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16829 0x18, 16, aux_adc_vmid
);
16830 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16831 0x0c, 16, aux_adc_gain
);
16832 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16833 0x1c, 16, aux_adc_gain
);
16834 } else if (pdetrange
== 1) {
16835 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16836 0x08, 16, sk_adc_vmid
);
16837 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16838 0x18, 16, sk_adc_vmid
);
16839 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16840 0x0c, 16, sk_adc_gain
);
16841 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16842 0x1c, 16, sk_adc_gain
);
16843 } else if (pdetrange
== 2) {
16845 u16 bcm_adc_vmid
[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16846 u16 bcm_adc_gain
[] = { 0x02, 0x02, 0x02, 0x04 };
16848 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
16850 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16851 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16852 bcm_adc_vmid
[3] = 0x8e;
16853 bcm_adc_gain
[3] = 0x03;
16855 bcm_adc_vmid
[3] = 0x94;
16856 bcm_adc_gain
[3] = 0x03;
16858 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
16859 bcm_adc_vmid
[3] = 0x84;
16860 bcm_adc_gain
[3] = 0x02;
16863 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16864 0x08, 16, bcm_adc_vmid
);
16865 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16866 0x18, 16, bcm_adc_vmid
);
16867 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16868 0x0c, 16, bcm_adc_gain
);
16869 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16870 0x1c, 16, bcm_adc_gain
);
16871 } else if (pdetrange
== 3) {
16873 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16874 if ((NREV_GE(pi
->pubpi
.phy_rev
, 4))
16875 && (chan_freq_range
== WL_CHAN_FREQ_RANGE_2G
)) {
16877 u16 auxadc_vmid
[] = {
16878 0xa2, 0xb4, 0xb4, 0x270
16880 u16 auxadc_gain
[] = {
16881 0x02, 0x02, 0x02, 0x00
16884 wlc_phy_table_write_nphy(pi
,
16885 NPHY_TBL_ID_AFECTRL
, 4,
16886 0x08, 16, auxadc_vmid
);
16887 wlc_phy_table_write_nphy(pi
,
16888 NPHY_TBL_ID_AFECTRL
, 4,
16889 0x18, 16, auxadc_vmid
);
16890 wlc_phy_table_write_nphy(pi
,
16891 NPHY_TBL_ID_AFECTRL
, 4,
16892 0x0c, 16, auxadc_gain
);
16893 wlc_phy_table_write_nphy(pi
,
16894 NPHY_TBL_ID_AFECTRL
, 4,
16895 0x1c, 16, auxadc_gain
);
16897 } else if ((pdetrange
== 4) || (pdetrange
== 5)) {
16898 u16 bcm_adc_vmid
[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16899 u16 bcm_adc_gain
[] = { 0x02, 0x02, 0x02, 0x0 };
16900 u16 Vmid
[2], Av
[2];
16903 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16904 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16905 Vmid
[0] = (pdetrange
== 4) ? 0x8e : 0x89;
16906 Vmid
[1] = (pdetrange
== 4) ? 0x96 : 0x89;
16907 Av
[0] = (pdetrange
== 4) ? 2 : 0;
16908 Av
[1] = (pdetrange
== 4) ? 2 : 0;
16910 Vmid
[0] = (pdetrange
== 4) ? 0x89 : 0x74;
16911 Vmid
[1] = (pdetrange
== 4) ? 0x8b : 0x70;
16912 Av
[0] = (pdetrange
== 4) ? 2 : 0;
16913 Av
[1] = (pdetrange
== 4) ? 2 : 0;
16916 bcm_adc_vmid
[3] = Vmid
[0];
16917 bcm_adc_gain
[3] = Av
[0];
16918 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16919 0x08, 16, bcm_adc_vmid
);
16920 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16921 0x0c, 16, bcm_adc_gain
);
16923 bcm_adc_vmid
[3] = Vmid
[1];
16924 bcm_adc_gain
[3] = Av
[1];
16925 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16926 0x18, 16, bcm_adc_vmid
);
16927 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16928 0x1c, 16, bcm_adc_gain
);
16931 write_radio_reg(pi
,
16932 (RADIO_2056_RX_MIXA_MAST_BIAS
| RADIO_2056_RX0
),
16934 write_radio_reg(pi
,
16935 (RADIO_2056_RX_MIXA_MAST_BIAS
| RADIO_2056_RX1
),
16938 write_radio_reg(pi
,
16939 (RADIO_2056_RX_MIXA_BIAS_MAIN
| RADIO_2056_RX0
),
16941 write_radio_reg(pi
,
16942 (RADIO_2056_RX_MIXA_BIAS_MAIN
| RADIO_2056_RX1
),
16945 write_radio_reg(pi
,
16946 (RADIO_2056_RX_MIXA_BIAS_AUX
| RADIO_2056_RX0
),
16948 write_radio_reg(pi
,
16949 (RADIO_2056_RX_MIXA_BIAS_AUX
| RADIO_2056_RX1
),
16952 write_radio_reg(pi
,
16953 (RADIO_2056_RX_MIXA_LOB_BIAS
| RADIO_2056_RX0
),
16955 write_radio_reg(pi
,
16956 (RADIO_2056_RX_MIXA_LOB_BIAS
| RADIO_2056_RX1
),
16959 write_radio_reg(pi
,
16960 (RADIO_2056_RX_MIXA_CMFB_IDAC
| RADIO_2056_RX0
),
16962 write_radio_reg(pi
,
16963 (RADIO_2056_RX_MIXA_CMFB_IDAC
| RADIO_2056_RX1
),
16966 write_radio_reg(pi
,
16967 (RADIO_2056_RX_MIXG_CMFB_IDAC
| RADIO_2056_RX0
),
16969 write_radio_reg(pi
,
16970 (RADIO_2056_RX_MIXG_CMFB_IDAC
| RADIO_2056_RX1
),
16974 (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.
16975 triso
: pi
->srom_fem2g
.triso
;
16977 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_0
);
16978 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_1
);
16981 wlc_phy_war_txchain_upd_nphy(pi
, pi
->sh
->hw_phytxchain
);
16983 if (((pi
->sh
->boardflags2
& BFL2_APLL_WAR
) &&
16984 (CHSPEC_IS5G(pi
->radio_chanspec
))) ||
16985 (((pi
->sh
->boardflags2
& BFL2_GPLL_WAR
) ||
16986 (pi
->sh
->boardflags2
& BFL2_GPLL_WAR2
)) &&
16987 (CHSPEC_IS2G(pi
->radio_chanspec
)))) {
16988 nss1_data_weights
= 0x00088888;
16989 ht_data_weights
= 0x00088888;
16990 stbc_data_weights
= 0x00088888;
16992 nss1_data_weights
= 0x88888888;
16993 ht_data_weights
= 0x88888888;
16994 stbc_data_weights
= 0x88888888;
16996 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16997 1, 1, 32, &nss1_data_weights
);
16998 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16999 1, 2, 32, &ht_data_weights
);
17000 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
17001 1, 3, 32, &stbc_data_weights
);
17003 if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
17004 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
17005 write_radio_reg(pi
,
17006 RADIO_2056_TX_GMBB_IDAC
|
17007 RADIO_2056_TX0
, 0x70);
17008 write_radio_reg(pi
,
17009 RADIO_2056_TX_GMBB_IDAC
|
17010 RADIO_2056_TX1
, 0x70);
17014 if (!pi
->edcrs_threshold_lock
) {
17015 write_phy_reg(pi
, 0x224, 0x3eb);
17016 write_phy_reg(pi
, 0x225, 0x3eb);
17017 write_phy_reg(pi
, 0x226, 0x341);
17018 write_phy_reg(pi
, 0x227, 0x341);
17019 write_phy_reg(pi
, 0x228, 0x42b);
17020 write_phy_reg(pi
, 0x229, 0x42b);
17021 write_phy_reg(pi
, 0x22a, 0x381);
17022 write_phy_reg(pi
, 0x22b, 0x381);
17023 write_phy_reg(pi
, 0x22c, 0x42b);
17024 write_phy_reg(pi
, 0x22d, 0x42b);
17025 write_phy_reg(pi
, 0x22e, 0x381);
17026 write_phy_reg(pi
, 0x22f, 0x381);
17029 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
17031 if (pi
->sh
->boardflags2
& BFL2_SINGLEANT_CCK
)
17032 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF4
,
17034 MHF4_BPHY_TXCORE0
, BRCM_BAND_ALL
);
17038 if (pi
->sh
->boardflags2
& BFL2_SKWRKFEM_BRD
||
17039 (pi
->sh
->boardtype
== 0x8b)) {
17041 u8 war_dlys
[] = { 1, 6, 6, 2, 4, 20, 1 };
17042 for (i
= 0; i
< ARRAY_SIZE(rfseq_rx2tx_dlys
); i
++)
17043 rfseq_rx2tx_dlys
[i
] = war_dlys
[i
];
17046 if (CHSPEC_IS5G(pi
->radio_chanspec
) && pi
->phy_5g_pwrgain
) {
17047 and_radio_reg(pi
, RADIO_2055_CORE1_TX_RF_SPARE
, 0xf7);
17048 and_radio_reg(pi
, RADIO_2055_CORE2_TX_RF_SPARE
, 0xf7);
17050 or_radio_reg(pi
, RADIO_2055_CORE1_TX_RF_SPARE
, 0x8);
17051 or_radio_reg(pi
, RADIO_2055_CORE2_TX_RF_SPARE
, 0x8);
17055 wlc_phy_table_write_nphy(pi
, 8, 1, 0, 16, ®val
);
17056 wlc_phy_table_write_nphy(pi
, 8, 1, 0x10, 16, ®val
);
17058 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
17060 wlc_phy_table_write_nphy(pi
, 8, 1, 0x02, 16, ®val
);
17061 wlc_phy_table_write_nphy(pi
, 8, 1, 0x12, 16, ®val
);
17064 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
17066 wlc_phy_table_write_nphy(pi
, 8, 1, 0x08, 16, ®val
);
17067 wlc_phy_table_write_nphy(pi
, 8, 1, 0x18, 16, ®val
);
17070 wlc_phy_table_write_nphy(pi
, 8, 1, 0x07, 16, ®val
);
17071 wlc_phy_table_write_nphy(pi
, 8, 1, 0x17, 16, ®val
);
17074 wlc_phy_table_write_nphy(pi
, 8, 1, 0x06, 16, ®val
);
17075 wlc_phy_table_write_nphy(pi
, 8, 1, 0x16, 16, ®val
);
17078 write_phy_reg(pi
, 0xf8, 0x02d8);
17079 write_phy_reg(pi
, 0xf9, 0x0301);
17080 write_phy_reg(pi
, 0xfa, 0x02d8);
17081 write_phy_reg(pi
, 0xfb, 0x0301);
17083 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
, rfseq_rx2tx_events
,
17085 ARRAY_SIZE(rfseq_rx2tx_events
));
17087 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_TX2RX
, rfseq_tx2rx_events
,
17089 ARRAY_SIZE(rfseq_tx2rx_events
));
17091 wlc_phy_workarounds_nphy_gainctrl(pi
);
17093 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
17095 if (read_phy_reg(pi
, 0xa0) & NPHY_MLenable
)
17096 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF3
,
17097 MHF3_NPHY_MLADV_WAR
,
17098 MHF3_NPHY_MLADV_WAR
,
17101 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 2)) {
17102 write_phy_reg(pi
, 0x1e3, 0x0);
17103 write_phy_reg(pi
, 0x1e4, 0x0);
17106 if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
17107 mod_phy_reg(pi
, 0x90, (0x1 << 7), 0);
17115 write_phy_reg(pi
, 0x145, alpha0
);
17116 write_phy_reg(pi
, 0x146, alpha1
);
17117 write_phy_reg(pi
, 0x147, alpha2
);
17118 write_phy_reg(pi
, 0x148, beta0
);
17119 write_phy_reg(pi
, 0x149, beta1
);
17120 write_phy_reg(pi
, 0x14a, beta2
);
17122 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
17123 mod_phy_reg(pi
, 0x142, (0xf << 12), 0);
17125 write_phy_reg(pi
, 0x192, 0xb5);
17126 write_phy_reg(pi
, 0x193, 0xa4);
17127 write_phy_reg(pi
, 0x194, 0x0);
17130 if (NREV_IS(pi
->pubpi
.phy_rev
, 2))
17131 mod_phy_reg(pi
, 0x221,
17132 NPHY_FORCESIG_DECODEGATEDCLKS
,
17133 NPHY_FORCESIG_DECODEGATEDCLKS
);
17136 if (pi
->phyhang_avoid
)
17137 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
17140 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy
*pi
)
17143 u16 addr_offset
= 0x2c5;
17145 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++)
17146 write_phy_reg(pi
, addr_offset
+ j
,
17147 NPHY_IPA_REV4_txdigi_filtcoeffs
[type
][j
]);
17150 static void wlc_phy_clip_det_nphy(struct brcms_phy
*pi
, u8 write
, u16
*vals
)
17154 vals
[0] = read_phy_reg(pi
, 0x2c);
17155 vals
[1] = read_phy_reg(pi
, 0x42);
17157 write_phy_reg(pi
, 0x2c, vals
[0]);
17158 write_phy_reg(pi
, 0x42, vals
[1]);
17162 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy
*pi
)
17166 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17167 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
17168 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
17169 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
17170 TX_SSI_MASTER
, 0x5);
17171 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
17174 if (pi
->pubpi
.radiorev
!= 5)
17175 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
17178 if (!NREV_IS(pi
->pubpi
.phy_rev
, 7))
17179 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
17182 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
17183 core
, TSSIG
, 0x31);
17185 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
17186 TX_SSI_MASTER
, 0x9);
17187 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
17189 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
17192 if (pi
->pubpi
.radiorev
!= 5) {
17193 if (!NREV_IS(pi
->pubpi
.phy_rev
, 7))
17194 WRITE_RADIO_REG3(pi
, RADIO_2057
,
17198 WRITE_RADIO_REG3(pi
, RADIO_2057
,
17203 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_VCM_HG
,
17205 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_IDAC
,
17207 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_VCM
,
17209 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_MISC1
,
17213 WRITE_RADIO_SYN(pi
, RADIO_2056
, RESERVED_ADDR31
,
17214 (CHSPEC_IS2G(pi
->radio_chanspec
)) ? 0x128 :
17216 WRITE_RADIO_SYN(pi
, RADIO_2056
, RESERVED_ADDR30
, 0x0);
17217 WRITE_RADIO_SYN(pi
, RADIO_2056
, GPIO_MASTER1
, 0x29);
17219 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
17220 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, IQCAL_VCM_HG
,
17222 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, IQCAL_IDAC
,
17224 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_VCM
,
17226 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TX_AMP_DET
,
17228 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_MISC1
,
17230 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_MISC2
,
17232 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_MISC3
,
17235 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
17236 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
17237 TX_SSI_MASTER
, 0x5);
17239 if (pi
->pubpi
.radiorev
!= 5)
17240 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
,
17242 if (NREV_GE(pi
->pubpi
.phy_rev
, 5))
17243 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
,
17244 core
, TSSIG
, 0x31);
17246 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
,
17247 core
, TSSIG
, 0x11);
17248 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
17251 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
17252 TX_SSI_MASTER
, 0x9);
17253 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
17255 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
17257 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
17265 wlc_phy_rfctrl_override_nphy(struct brcms_phy
*pi
, u16 field
, u16 value
,
17266 u8 core_mask
, u8 off
)
17269 u16 addr
= 0, mask
= 0, en_addr
= 0, val_addr
= 0, en_mask
=
17271 u8 shift
= 0, val_shift
= 0;
17273 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
17276 for (core_num
= 0; core_num
< 2; core_num
++) {
17280 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17281 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17282 val_mask
= (0x1 << 0);
17286 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17287 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17288 val_mask
= (0x1 << 1);
17292 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17293 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17294 val_mask
= (0x1 << 2);
17298 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17299 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17300 val_mask
= (0x1 << 4);
17304 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17305 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17306 val_mask
= (0x1 << 5);
17310 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17311 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17312 val_mask
= (0x1 << 6);
17316 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17317 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17318 val_mask
= (0x1 << 7);
17322 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17323 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17324 val_mask
= (0x7 << 8);
17328 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17329 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
17330 val_mask
= (0x7 << 13);
17335 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17336 val_addr
= (core_num
== 0) ? 0xf8 : 0xfa;
17337 val_mask
= (0x7 << 0);
17342 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17343 val_addr
= (core_num
== 0) ? 0xf8 : 0xfa;
17344 val_mask
= (0x7 << 4);
17349 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17350 val_addr
= (core_num
== 0) ? 0x7b : 0x7e;
17351 val_mask
= (0xffff << 0);
17355 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17356 val_addr
= (core_num
== 0) ? 0x7c : 0x7f;
17357 val_mask
= (0xffff << 0);
17361 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
17362 val_addr
= (core_num
== 0) ? 0xf9 : 0xfb;
17363 val_mask
= (0x3 << 6);
17367 en_addr
= (core_num
== 0) ? 0xe5 : 0xe6;
17368 val_addr
= (core_num
== 0) ? 0xf9 : 0xfb;
17369 val_mask
= (0x1 << 15);
17378 and_phy_reg(pi
, en_addr
, ~en_mask
);
17379 and_phy_reg(pi
, val_addr
, ~val_mask
);
17382 if ((core_mask
== 0)
17383 || (core_mask
& (1 << core_num
))) {
17384 or_phy_reg(pi
, en_addr
, en_mask
);
17386 if (addr
!= 0xffff)
17387 mod_phy_reg(pi
, val_addr
,
17397 and_phy_reg(pi
, 0xec, ~field
);
17400 or_phy_reg(pi
, 0xec, field
);
17403 for (core_num
= 0; core_num
< 2; core_num
++) {
17422 addr
= (core_num
== 0) ? 0x7a : 0x7d;
17425 addr
= (core_num
== 0) ? 0x7b : 0x7e;
17428 addr
= (core_num
== 0) ? 0x7c : 0x7f;
17452 mask
= (0xf << 12);
17497 if ((addr
!= 0xffff) && (core_mask
& (1 << core_num
)))
17498 mod_phy_reg(pi
, addr
, mask
, (value
<< shift
));
17501 or_phy_reg(pi
, 0xec, (0x1 << 0));
17502 or_phy_reg(pi
, 0x78, (0x1 << 0));
17504 and_phy_reg(pi
, 0xec, ~(0x1 << 0));
17508 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy
*pi
)
17513 if (SCAN_RM_IN_PROGRESS(pi
) || PLT_INPROG_PHY(pi
) || PHY_MUTED(pi
))
17518 wlc_phy_ipa_internal_tssi_setup_nphy(pi
);
17520 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
17521 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 12),
17523 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
17524 else if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
17525 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 13), 0, 3, 0);
17527 wlc_phy_stopplayback_nphy(pi
);
17529 wlc_phy_tx_tone_nphy(pi
, 4000, 0, 0, 0, false);
17533 wlc_phy_poll_rssi_nphy(pi
, (u8
) NPHY_RSSI_SEL_TSSI_2G
, rssi_buf
,
17535 wlc_phy_stopplayback_nphy(pi
);
17536 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_OFF
, 0);
17538 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
17539 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 12),
17541 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
17542 else if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
17543 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 13), 0, 3, 1);
17545 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
17547 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_2g
=
17548 (u8
) ((int_val
>> 24) & 0xff);
17549 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_5g
=
17550 (u8
) ((int_val
>> 24) & 0xff);
17552 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_2g
=
17553 (u8
) ((int_val
>> 8) & 0xff);
17554 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_5g
=
17555 (u8
) ((int_val
>> 8) & 0xff);
17557 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_2g
=
17558 (u8
) ((int_val
>> 24) & 0xff);
17560 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_2g
=
17561 (u8
) ((int_val
>> 8) & 0xff);
17563 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_5g
=
17564 (u8
) ((int_val
>> 16) & 0xff);
17565 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_5g
=
17566 (u8
) ((int_val
) & 0xff);
17571 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy
*pi
)
17573 u8 idx
, idx2
, i
, delta_ind
;
17575 for (idx
= TXP_FIRST_CCK
; idx
<= TXP_LAST_CCK
; idx
++)
17576 pi
->adj_pwr_tbl_nphy
[idx
] = pi
->tx_power_offset
[idx
];
17578 for (i
= 0; i
< 4; i
++) {
17586 if (CHSPEC_IS40(pi
->radio_chanspec
)
17587 && NPHY_IS_SROM_REINTERPRET
) {
17588 idx
= TXP_FIRST_MCS_40_SISO
;
17590 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
17591 TXP_FIRST_OFDM_40_SISO
: TXP_FIRST_OFDM
;
17598 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
17599 TXP_FIRST_MCS_40_CDD
: TXP_FIRST_MCS_20_CDD
;
17604 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
17605 TXP_FIRST_MCS_40_STBC
: TXP_FIRST_MCS_20_STBC
;
17610 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
17611 TXP_FIRST_MCS_40_SDM
: TXP_FIRST_MCS_20_SDM
;
17615 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17616 pi
->tx_power_offset
[idx
];
17617 idx
= idx
+ delta_ind
;
17618 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17619 pi
->tx_power_offset
[idx
];
17620 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17621 pi
->tx_power_offset
[idx
];
17622 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17623 pi
->tx_power_offset
[idx
++];
17625 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17626 pi
->tx_power_offset
[idx
++];
17627 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17628 pi
->tx_power_offset
[idx
];
17629 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17630 pi
->tx_power_offset
[idx
];
17631 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17632 pi
->tx_power_offset
[idx
++];
17634 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17635 pi
->tx_power_offset
[idx
++];
17636 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17637 pi
->tx_power_offset
[idx
];
17638 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17639 pi
->tx_power_offset
[idx
];
17640 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17641 pi
->tx_power_offset
[idx
++];
17643 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17644 pi
->tx_power_offset
[idx
];
17645 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17646 pi
->tx_power_offset
[idx
++];
17647 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17648 pi
->tx_power_offset
[idx
];
17649 idx
= idx
+ 1 - delta_ind
;
17650 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17651 pi
->tx_power_offset
[idx
];
17653 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17654 pi
->tx_power_offset
[idx
];
17655 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17656 pi
->tx_power_offset
[idx
];
17657 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17658 pi
->tx_power_offset
[idx
];
17659 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
17660 pi
->tx_power_offset
[idx
];
17664 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy
*pi
)
17667 s16 a1
[2], b0
[2], b1
[2];
17668 s8 target_pwr_qtrdbm
[2];
17669 s32 num
, den
, pwr_est
;
17670 u8 chan_freq_range
;
17672 u32 tbl_id
, tbl_len
, tbl_offset
;
17676 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12)) {
17677 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, MCTL_PHYLOCK
);
17678 (void)bcma_read32(pi
->d11core
, D11REGOFFS(maccontrol
));
17682 if (pi
->phyhang_avoid
)
17683 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
17685 or_phy_reg(pi
, 0x122, (0x1 << 0));
17687 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
17688 and_phy_reg(pi
, 0x1e7, (u16
) (~(0x1 << 15)));
17690 or_phy_reg(pi
, 0x1e7, (0x1 << 15));
17692 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12))
17693 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, 0);
17695 if (pi
->sh
->sromrev
< 4) {
17696 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_2g
;
17697 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_2g
;
17706 chan_freq_range
= wlc_phy_get_chan_freq_range_nphy(pi
, 0);
17707 switch (chan_freq_range
) {
17708 case WL_CHAN_FREQ_RANGE_2G
:
17709 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_2g
;
17710 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_2g
;
17711 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_2g_a1
;
17712 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_2g_a1
;
17713 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_2g_b0
;
17714 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_2g_b0
;
17715 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_2g_b1
;
17716 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_2g_b1
;
17718 case WL_CHAN_FREQ_RANGE_5GL
:
17719 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_5g
;
17720 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_5g
;
17721 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_a1
;
17722 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_a1
;
17723 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b0
;
17724 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b0
;
17725 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b1
;
17726 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b1
;
17728 case WL_CHAN_FREQ_RANGE_5GM
:
17729 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_5g
;
17730 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_5g
;
17731 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gm_a1
;
17732 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gm_a1
;
17733 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gm_b0
;
17734 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gm_b0
;
17735 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gm_b1
;
17736 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gm_b1
;
17738 case WL_CHAN_FREQ_RANGE_5GH
:
17739 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_5g
;
17740 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_5g
;
17741 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_a1
;
17742 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_a1
;
17743 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b0
;
17744 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b0
;
17745 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b1
;
17746 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b1
;
17749 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_2g
;
17750 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_2g
;
17761 /* use the provided transmit power */
17762 target_pwr_qtrdbm
[0] = (s8
) pi
->tx_power_max
;
17763 target_pwr_qtrdbm
[1] = (s8
) pi
->tx_power_max
;
17765 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
17766 if (pi
->srom_fem2g
.tssipos
)
17767 or_phy_reg(pi
, 0x1e9, (0x1 << 14));
17769 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17770 for (core
= 0; core
<= 1; core
++) {
17772 if (CHSPEC_IS2G(pi
->radio_chanspec
))
17773 WRITE_RADIO_REG3(pi
, RADIO_2057
,
17778 WRITE_RADIO_REG3(pi
, RADIO_2057
,
17787 write_radio_reg(pi
, RADIO_2056_TX_TX_SSI_MUX
|
17790 (pi
->radio_chanspec
)) ?
17792 write_radio_reg(pi
,
17793 RADIO_2056_TX_TX_SSI_MUX
|
17796 (pi
->radio_chanspec
)) ?
17800 write_radio_reg(pi
, RADIO_2056_TX_TX_SSI_MUX
|
17801 RADIO_2056_TX0
, 0x11);
17802 write_radio_reg(pi
, RADIO_2056_TX_TX_SSI_MUX
|
17803 RADIO_2056_TX1
, 0x11);
17808 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12)) {
17809 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, MCTL_PHYLOCK
);
17810 (void)bcma_read32(pi
->d11core
, D11REGOFFS(maccontrol
));
17814 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
17815 mod_phy_reg(pi
, 0x1e7, (0x7f << 0),
17816 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7
<< 0));
17818 mod_phy_reg(pi
, 0x1e7, (0x7f << 0),
17819 (NPHY_TxPwrCtrlCmd_pwrIndex_init
<< 0));
17821 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
17822 mod_phy_reg(pi
, 0x222, (0xff << 0),
17823 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7
<< 0));
17824 else if (NREV_GT(pi
->pubpi
.phy_rev
, 1))
17825 mod_phy_reg(pi
, 0x222, (0xff << 0),
17826 (NPHY_TxPwrCtrlCmd_pwrIndex_init
<< 0));
17828 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12))
17829 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, 0);
17831 write_phy_reg(pi
, 0x1e8, (0x3 << 8) | (240 << 0));
17833 write_phy_reg(pi
, 0x1e9,
17834 (1 << 15) | (idle_tssi
[0] << 0) | (idle_tssi
[1] << 8));
17836 write_phy_reg(pi
, 0x1ea,
17837 (target_pwr_qtrdbm
[0] << 0) |
17838 (target_pwr_qtrdbm
[1] << 8));
17842 for (tbl_id
= NPHY_TBL_ID_CORE1TXPWRCTL
;
17843 tbl_id
<= NPHY_TBL_ID_CORE2TXPWRCTL
; tbl_id
++) {
17845 for (idx
= 0; idx
< tbl_len
; idx
++) {
17847 (16 * b0
[tbl_id
- 26] + b1
[tbl_id
- 26] * idx
);
17848 den
= 32768 + a1
[tbl_id
- 26] * idx
;
17849 pwr_est
= max(((4 * num
+ den
/ 2) / den
), -8);
17850 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
17852 (uint
) (31 - idle_tssi
[tbl_id
- 26] + 1))
17856 [tbl_id
- 26] + 1);
17858 regval
[idx
] = (u32
) pwr_est
;
17860 wlc_phy_table_write_nphy(pi
, tbl_id
, tbl_len
, tbl_offset
, 32,
17864 wlc_phy_txpwr_limit_to_tbl_nphy(pi
);
17865 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 84, 64, 8,
17866 pi
->adj_pwr_tbl_nphy
);
17867 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 84, 64, 8,
17868 pi
->adj_pwr_tbl_nphy
);
17870 if (pi
->phyhang_avoid
)
17871 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
17874 static u32
*wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy
*pi
)
17876 u32
*tx_pwrctrl_tbl
= NULL
;
17878 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
17879 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17880 if ((pi
->pubpi
.radiorev
== 4)
17881 || (pi
->pubpi
.radiorev
== 6))
17883 nphy_tpc_txgain_ipa_2g_2057rev4n6
;
17884 else if (pi
->pubpi
.radiorev
== 3)
17886 nphy_tpc_txgain_ipa_2g_2057rev3
;
17887 else if (pi
->pubpi
.radiorev
== 5)
17889 nphy_tpc_txgain_ipa_2g_2057rev5
;
17890 else if ((pi
->pubpi
.radiorev
== 7)
17891 || (pi
->pubpi
.radiorev
== 8))
17893 nphy_tpc_txgain_ipa_2g_2057rev7
;
17894 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 6)) {
17895 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_rev6
;
17896 if (pi
->sh
->chip
== BCMA_CHIP_ID_BCM47162
)
17897 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_rev5
;
17898 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
17899 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_rev5
;
17901 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa
;
17905 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17906 if ((pi
->pubpi
.radiorev
== 3) ||
17907 (pi
->pubpi
.radiorev
== 4) ||
17908 (pi
->pubpi
.radiorev
== 6))
17909 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_5g_2057
;
17910 else if ((pi
->pubpi
.radiorev
== 7)
17911 || (pi
->pubpi
.radiorev
== 8))
17913 nphy_tpc_txgain_ipa_5g_2057rev7
;
17915 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_5g
;
17919 return tx_pwrctrl_tbl
;
17922 static void wlc_phy_restore_rssical_nphy(struct brcms_phy
*pi
)
17924 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
17925 if (pi
->nphy_rssical_chanspec_2G
== 0)
17928 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17929 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
,
17930 RADIO_2057_VCM_MASK
,
17932 rssical_radio_regs_2G
[0]);
17933 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
,
17934 RADIO_2057_VCM_MASK
,
17936 rssical_radio_regs_2G
[1]);
17939 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX0
,
17940 RADIO_2056_VCM_MASK
,
17942 rssical_radio_regs_2G
[0]);
17944 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX1
,
17945 RADIO_2056_VCM_MASK
,
17947 rssical_radio_regs_2G
[1]);
17950 write_phy_reg(pi
, 0x1a6,
17951 pi
->rssical_cache
.rssical_phyregs_2G
[0]);
17952 write_phy_reg(pi
, 0x1ac,
17953 pi
->rssical_cache
.rssical_phyregs_2G
[1]);
17954 write_phy_reg(pi
, 0x1b2,
17955 pi
->rssical_cache
.rssical_phyregs_2G
[2]);
17956 write_phy_reg(pi
, 0x1b8,
17957 pi
->rssical_cache
.rssical_phyregs_2G
[3]);
17958 write_phy_reg(pi
, 0x1a4,
17959 pi
->rssical_cache
.rssical_phyregs_2G
[4]);
17960 write_phy_reg(pi
, 0x1aa,
17961 pi
->rssical_cache
.rssical_phyregs_2G
[5]);
17962 write_phy_reg(pi
, 0x1b0,
17963 pi
->rssical_cache
.rssical_phyregs_2G
[6]);
17964 write_phy_reg(pi
, 0x1b6,
17965 pi
->rssical_cache
.rssical_phyregs_2G
[7]);
17966 write_phy_reg(pi
, 0x1a5,
17967 pi
->rssical_cache
.rssical_phyregs_2G
[8]);
17968 write_phy_reg(pi
, 0x1ab,
17969 pi
->rssical_cache
.rssical_phyregs_2G
[9]);
17970 write_phy_reg(pi
, 0x1b1,
17971 pi
->rssical_cache
.rssical_phyregs_2G
[10]);
17972 write_phy_reg(pi
, 0x1b7,
17973 pi
->rssical_cache
.rssical_phyregs_2G
[11]);
17976 if (pi
->nphy_rssical_chanspec_5G
== 0)
17979 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17980 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
,
17981 RADIO_2057_VCM_MASK
,
17983 rssical_radio_regs_5G
[0]);
17984 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
,
17985 RADIO_2057_VCM_MASK
,
17987 rssical_radio_regs_5G
[1]);
17990 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX0
,
17991 RADIO_2056_VCM_MASK
,
17993 rssical_radio_regs_5G
[0]);
17995 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX1
,
17996 RADIO_2056_VCM_MASK
,
17998 rssical_radio_regs_5G
[1]);
18001 write_phy_reg(pi
, 0x1a6,
18002 pi
->rssical_cache
.rssical_phyregs_5G
[0]);
18003 write_phy_reg(pi
, 0x1ac,
18004 pi
->rssical_cache
.rssical_phyregs_5G
[1]);
18005 write_phy_reg(pi
, 0x1b2,
18006 pi
->rssical_cache
.rssical_phyregs_5G
[2]);
18007 write_phy_reg(pi
, 0x1b8,
18008 pi
->rssical_cache
.rssical_phyregs_5G
[3]);
18009 write_phy_reg(pi
, 0x1a4,
18010 pi
->rssical_cache
.rssical_phyregs_5G
[4]);
18011 write_phy_reg(pi
, 0x1aa,
18012 pi
->rssical_cache
.rssical_phyregs_5G
[5]);
18013 write_phy_reg(pi
, 0x1b0,
18014 pi
->rssical_cache
.rssical_phyregs_5G
[6]);
18015 write_phy_reg(pi
, 0x1b6,
18016 pi
->rssical_cache
.rssical_phyregs_5G
[7]);
18017 write_phy_reg(pi
, 0x1a5,
18018 pi
->rssical_cache
.rssical_phyregs_5G
[8]);
18019 write_phy_reg(pi
, 0x1ab,
18020 pi
->rssical_cache
.rssical_phyregs_5G
[9]);
18021 write_phy_reg(pi
, 0x1b1,
18022 pi
->rssical_cache
.rssical_phyregs_5G
[10]);
18023 write_phy_reg(pi
, 0x1b7,
18024 pi
->rssical_cache
.rssical_phyregs_5G
[11]);
18028 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy
*pi
)
18032 pi
->nphy_txcal_pwr_idx
[0] = pi
->nphy_cal_orig_pwr_idx
[0];
18033 pi
->nphy_txcal_pwr_idx
[1] = pi
->nphy_cal_orig_pwr_idx
[0];
18034 wlc_phy_txpwr_index_nphy(pi
, 1, pi
->nphy_cal_orig_pwr_idx
[0], true);
18035 wlc_phy_txpwr_index_nphy(pi
, 2, pi
->nphy_cal_orig_pwr_idx
[1], true);
18037 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
18040 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18041 txcal_gain
[0] = (txcal_gain
[0] & 0xF000) | 0x0F40;
18042 txcal_gain
[1] = (txcal_gain
[1] & 0xF000) | 0x0F40;
18044 txcal_gain
[0] = (txcal_gain
[0] & 0xF000) | 0x0F60;
18045 txcal_gain
[1] = (txcal_gain
[1] & 0xF000) | 0x0F60;
18048 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
18052 static void wlc_phy_precal_txgain_nphy(struct brcms_phy
*pi
)
18054 bool save_bbmult
= false;
18055 u8 txcal_index_2057_rev5n7
= 0;
18056 u8 txcal_index_2057_rev3n4n6
= 10;
18058 if (pi
->use_int_tx_iqlo_cal_nphy
) {
18059 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18060 if ((pi
->pubpi
.radiorev
== 3) ||
18061 (pi
->pubpi
.radiorev
== 4) ||
18062 (pi
->pubpi
.radiorev
== 6)) {
18064 pi
->nphy_txcal_pwr_idx
[0] =
18065 txcal_index_2057_rev3n4n6
;
18066 pi
->nphy_txcal_pwr_idx
[1] =
18067 txcal_index_2057_rev3n4n6
;
18068 wlc_phy_txpwr_index_nphy(
18070 txcal_index_2057_rev3n4n6
,
18074 pi
->nphy_txcal_pwr_idx
[0] =
18075 txcal_index_2057_rev5n7
;
18076 pi
->nphy_txcal_pwr_idx
[1] =
18077 txcal_index_2057_rev5n7
;
18078 wlc_phy_txpwr_index_nphy(
18080 txcal_index_2057_rev5n7
,
18083 save_bbmult
= true;
18085 } else if (NREV_LT(pi
->pubpi
.phy_rev
, 5)) {
18086 wlc_phy_cal_txgainctrl_nphy(pi
, 11, false);
18087 if (pi
->sh
->hw_phytxchain
!= 3) {
18088 pi
->nphy_txcal_pwr_idx
[1] =
18089 pi
->nphy_txcal_pwr_idx
[0];
18090 wlc_phy_txpwr_index_nphy(pi
, 3,
18092 nphy_txcal_pwr_idx
[0],
18094 save_bbmult
= true;
18097 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
18099 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18100 wlc_phy_cal_txgainctrl_nphy(pi
, 12,
18103 pi
->nphy_txcal_pwr_idx
[0] = 80;
18104 pi
->nphy_txcal_pwr_idx
[1] = 80;
18105 wlc_phy_txpwr_index_nphy(pi
, 3, 80,
18107 save_bbmult
= true;
18110 wlc_phy_internal_cal_txgain_nphy(pi
);
18111 save_bbmult
= true;
18114 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 6)) {
18116 if (CHSPEC_IS2G(pi
->radio_chanspec
))
18117 wlc_phy_cal_txgainctrl_nphy(pi
, 12,
18120 wlc_phy_cal_txgainctrl_nphy(pi
, 14,
18123 wlc_phy_internal_cal_txgain_nphy(pi
);
18124 save_bbmult
= true;
18129 wlc_phy_cal_txgainctrl_nphy(pi
, 10, false);
18133 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16,
18134 &pi
->nphy_txcal_bbmult
);
18138 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy
*pi
, u8 field
, u16 value
,
18145 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18146 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
18147 if (core_code
== RADIO_MIMO_CORESEL_CORE1
18148 && core
== PHY_CORE_1
)
18150 else if (core_code
== RADIO_MIMO_CORESEL_CORE2
18151 && core
== PHY_CORE_0
)
18154 if (NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
18156 mask
= (0x1 << 10);
18158 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x91 :
18162 if (field
== NPHY_RfctrlIntc_override_OFF
) {
18164 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x91 :
18167 wlc_phy_force_rfseq_nphy(pi
,
18168 NPHY_RFSEQ_RESET2RX
);
18169 } else if (field
== NPHY_RfctrlIntc_override_TRSW
) {
18171 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18173 mask
= (0x1 << 6) | (0x1 << 7);
18178 PHY_CORE_0
) ? 0x91 : 0x92,
18183 PHY_CORE_0
) ? 0x91 : 0x92,
18186 and_phy_reg(pi
, 0x2ff, (u16
)
18188 or_phy_reg(pi
, 0x2ff, (0x1 << 13));
18189 or_phy_reg(pi
, 0x2ff, (0x1 << 0));
18192 mask
= (0x1 << 6) |
18194 (0x1 << 8) | (0x1 << 9);
18198 PHY_CORE_0
) ? 0x91 : 0x92,
18205 PHY_CORE_0
) ? 0xe7 : 0xec,
18208 mask
= (core
== PHY_CORE_0
) ?
18209 (0x1 << 0) : (0x1 << 1);
18210 val
= 1 << ((core
== PHY_CORE_0
) ?
18212 mod_phy_reg(pi
, 0x78, mask
, val
);
18214 SPINWAIT(((read_phy_reg(pi
, 0x78) & val
)
18216 if (WARN(read_phy_reg(pi
, 0x78) & val
,
18217 "HW error: override failed"))
18224 PHY_CORE_0
) ? 0xe7 : 0xec,
18227 } else if (field
== NPHY_RfctrlIntc_override_PA
) {
18228 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18230 mask
= (0x1 << 4) | (0x1 << 5);
18232 if (CHSPEC_IS5G(pi
->radio_chanspec
))
18239 PHY_CORE_0
) ? 0x91 : 0x92,
18244 PHY_CORE_0
) ? 0x91 : 0x92,
18248 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
18257 PHY_CORE_0
) ? 0x91 : 0x92,
18260 } else if (field
==
18261 NPHY_RfctrlIntc_override_EXT_LNA_PU
) {
18262 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18263 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
18270 : 0x92, mask
, val
);
18284 : 0x92, mask
, val
);
18293 mask
= (0x1 << 11);
18297 PHY_CORE_0
) ? 0x91 : 0x92,
18301 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
18310 PHY_CORE_0
) ? 0x91 : 0x92,
18313 } else if (field
==
18314 NPHY_RfctrlIntc_override_EXT_LNA_GAIN
) {
18315 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18316 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
18323 : 0x92, mask
, val
);
18337 : 0x92, mask
, val
);
18346 mask
= (0x1 << 11);
18350 PHY_CORE_0
) ? 0x91 : 0x92,
18354 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
18363 PHY_CORE_0
) ? 0x91 : 0x92,
18372 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy
*pi
, s32 dBm_targetpower
,
18375 int gainctrl_loopidx
;
18377 u16 m0m1
, curr_m0m1
;
18382 u16 phy_saveregs
[4];
18384 u16 ampl_test
= 250;
18386 bool phyhang_avoid_state
= false;
18388 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
18393 if (CHSPEC_IS40(pi
->radio_chanspec
))
18398 wlc_phy_txpwr_index_nphy(pi
, 1, pi
->nphy_cal_orig_pwr_idx
[0], true);
18399 wlc_phy_txpwr_index_nphy(pi
, 2, pi
->nphy_cal_orig_pwr_idx
[1], true);
18401 if (pi
->phyhang_avoid
)
18402 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
18404 phyhang_avoid_state
= pi
->phyhang_avoid
;
18405 pi
->phyhang_avoid
= false;
18407 phy_saveregs
[0] = read_phy_reg(pi
, 0x91);
18408 phy_saveregs
[1] = read_phy_reg(pi
, 0x92);
18409 phy_saveregs
[2] = read_phy_reg(pi
, 0xe7);
18410 phy_saveregs
[3] = read_phy_reg(pi
, 0xec);
18411 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_PA
, 1,
18412 RADIO_MIMO_CORESEL_CORE1
|
18413 RADIO_MIMO_CORESEL_CORE2
);
18416 wlc_phy_rfctrlintc_override_nphy(pi
,
18417 NPHY_RfctrlIntc_override_TRSW
,
18418 0x2, RADIO_MIMO_CORESEL_CORE1
);
18419 wlc_phy_rfctrlintc_override_nphy(pi
,
18420 NPHY_RfctrlIntc_override_TRSW
,
18421 0x8, RADIO_MIMO_CORESEL_CORE2
);
18423 wlc_phy_rfctrlintc_override_nphy(pi
,
18424 NPHY_RfctrlIntc_override_TRSW
,
18425 0x1, RADIO_MIMO_CORESEL_CORE1
);
18426 wlc_phy_rfctrlintc_override_nphy(pi
,
18427 NPHY_RfctrlIntc_override_TRSW
,
18428 0x7, RADIO_MIMO_CORESEL_CORE2
);
18431 orig_BBConfig
= read_phy_reg(pi
, 0x01);
18432 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
18434 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m0m1
);
18436 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
18437 txpwrindex
= (s32
) pi
->nphy_cal_orig_pwr_idx
[core
];
18439 for (gainctrl_loopidx
= 0; gainctrl_loopidx
< 2;
18440 gainctrl_loopidx
++) {
18441 wlc_phy_tx_tone_nphy(pi
, freq_test
, ampl_test
, 0, 0,
18444 if (core
== PHY_CORE_0
)
18445 curr_m0m1
= m0m1
& 0xff00;
18447 curr_m0m1
= m0m1
& 0x00ff;
18449 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &curr_m0m1
);
18450 wlc_phy_table_write_nphy(pi
, 15, 1, 95, 16, &curr_m0m1
);
18454 wlc_phy_est_tonepwr_nphy(pi
, qdBm_power
,
18455 NPHY_CAL_TSSISAMPS
);
18457 pi
->nphy_bb_mult_save
= 0;
18458 wlc_phy_stopplayback_nphy(pi
);
18460 delta_power
= (dBm_targetpower
* 4) - qdBm_power
[core
];
18462 txpwrindex
-= stepsize
* delta_power
;
18463 if (txpwrindex
< 0)
18465 else if (txpwrindex
> 127)
18468 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
18469 if (NREV_IS(pi
->pubpi
.phy_rev
, 4) &&
18470 (pi
->srom_fem5g
.extpagain
== 3)) {
18471 if (txpwrindex
< 30)
18475 if (NREV_GE(pi
->pubpi
.phy_rev
, 5) &&
18476 (pi
->srom_fem2g
.extpagain
== 3)) {
18477 if (txpwrindex
< 50)
18482 wlc_phy_txpwr_index_nphy(pi
, (1 << core
),
18483 (u8
) txpwrindex
, true);
18486 pi
->nphy_txcal_pwr_idx
[core
] = (u8
) txpwrindex
;
18492 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &dbg_m0m1
);
18494 wlc_phy_tx_tone_nphy(pi
, freq_test
, ampl_test
, 0, 0,
18497 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &dbg_m0m1
);
18498 wlc_phy_table_write_nphy(pi
, 15, 1, 95, 16, &dbg_m0m1
);
18502 wlc_phy_est_tonepwr_nphy(pi
, qdBm_power
,
18503 NPHY_CAL_TSSISAMPS
);
18505 wlc_phy_table_read_nphy(pi
, 7, 1, (0x110 + core
), 16,
18509 pi
->nphy_bb_mult_save
= 0;
18510 wlc_phy_stopplayback_nphy(pi
);
18514 wlc_phy_txpwr_index_nphy(pi
, 1, pi
->nphy_txcal_pwr_idx
[0], true);
18515 wlc_phy_txpwr_index_nphy(pi
, 2, pi
->nphy_txcal_pwr_idx
[1], true);
18517 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &pi
->nphy_txcal_bbmult
);
18519 write_phy_reg(pi
, 0x01, orig_BBConfig
);
18521 write_phy_reg(pi
, 0x91, phy_saveregs
[0]);
18522 write_phy_reg(pi
, 0x92, phy_saveregs
[1]);
18523 write_phy_reg(pi
, 0xe7, phy_saveregs
[2]);
18524 write_phy_reg(pi
, 0xec, phy_saveregs
[3]);
18526 pi
->phyhang_avoid
= phyhang_avoid_state
;
18528 if (pi
->phyhang_avoid
)
18529 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
18532 static void wlc_phy_savecal_nphy(struct brcms_phy
*pi
)
18536 u16
*txcal_radio_regs
= NULL
;
18538 if (pi
->phyhang_avoid
)
18539 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
18541 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18543 wlc_phy_rx_iq_coeffs_nphy(pi
, 0,
18544 &pi
->calibration_cache
.
18547 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18549 pi
->calibration_cache
.txcal_radio_regs_2G
;
18550 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18552 pi
->calibration_cache
.txcal_radio_regs_2G
[0] =
18554 RADIO_2056_TX_LOFT_FINE_I
|
18556 pi
->calibration_cache
.txcal_radio_regs_2G
[1] =
18558 RADIO_2056_TX_LOFT_FINE_Q
|
18560 pi
->calibration_cache
.txcal_radio_regs_2G
[2] =
18562 RADIO_2056_TX_LOFT_FINE_I
|
18564 pi
->calibration_cache
.txcal_radio_regs_2G
[3] =
18566 RADIO_2056_TX_LOFT_FINE_Q
|
18569 pi
->calibration_cache
.txcal_radio_regs_2G
[4] =
18571 RADIO_2056_TX_LOFT_COARSE_I
|
18573 pi
->calibration_cache
.txcal_radio_regs_2G
[5] =
18575 RADIO_2056_TX_LOFT_COARSE_Q
|
18577 pi
->calibration_cache
.txcal_radio_regs_2G
[6] =
18579 RADIO_2056_TX_LOFT_COARSE_I
|
18581 pi
->calibration_cache
.txcal_radio_regs_2G
[7] =
18583 RADIO_2056_TX_LOFT_COARSE_Q
|
18586 pi
->calibration_cache
.txcal_radio_regs_2G
[0] =
18587 read_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
);
18588 pi
->calibration_cache
.txcal_radio_regs_2G
[1] =
18589 read_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
);
18590 pi
->calibration_cache
.txcal_radio_regs_2G
[2] =
18591 read_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
);
18592 pi
->calibration_cache
.txcal_radio_regs_2G
[3] =
18593 read_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
);
18596 pi
->nphy_iqcal_chanspec_2G
= pi
->radio_chanspec
;
18597 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_2G
;
18600 wlc_phy_rx_iq_coeffs_nphy(pi
, 0,
18601 &pi
->calibration_cache
.
18604 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18606 pi
->calibration_cache
.txcal_radio_regs_5G
;
18607 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18609 pi
->calibration_cache
.txcal_radio_regs_5G
[0] =
18611 RADIO_2056_TX_LOFT_FINE_I
|
18613 pi
->calibration_cache
.txcal_radio_regs_5G
[1] =
18615 RADIO_2056_TX_LOFT_FINE_Q
|
18617 pi
->calibration_cache
.txcal_radio_regs_5G
[2] =
18619 RADIO_2056_TX_LOFT_FINE_I
|
18621 pi
->calibration_cache
.txcal_radio_regs_5G
[3] =
18623 RADIO_2056_TX_LOFT_FINE_Q
|
18626 pi
->calibration_cache
.txcal_radio_regs_5G
[4] =
18628 RADIO_2056_TX_LOFT_COARSE_I
|
18630 pi
->calibration_cache
.txcal_radio_regs_5G
[5] =
18632 RADIO_2056_TX_LOFT_COARSE_Q
|
18634 pi
->calibration_cache
.txcal_radio_regs_5G
[6] =
18636 RADIO_2056_TX_LOFT_COARSE_I
|
18638 pi
->calibration_cache
.txcal_radio_regs_5G
[7] =
18640 RADIO_2056_TX_LOFT_COARSE_Q
|
18643 pi
->calibration_cache
.txcal_radio_regs_5G
[0] =
18644 read_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
);
18645 pi
->calibration_cache
.txcal_radio_regs_5G
[1] =
18646 read_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
);
18647 pi
->calibration_cache
.txcal_radio_regs_5G
[2] =
18648 read_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
);
18649 pi
->calibration_cache
.txcal_radio_regs_5G
[3] =
18650 read_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
);
18653 pi
->nphy_iqcal_chanspec_5G
= pi
->radio_chanspec
;
18654 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_5G
;
18656 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18657 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
18659 txcal_radio_regs
[2 * coreNum
] =
18660 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18662 txcal_radio_regs
[2 * coreNum
+ 1] =
18663 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18666 txcal_radio_regs
[2 * coreNum
+ 4] =
18667 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18669 txcal_radio_regs
[2 * coreNum
+ 5] =
18670 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18675 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 8, 80, 16, tbl_ptr
);
18677 if (pi
->phyhang_avoid
)
18678 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
18681 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy
*pi
)
18683 struct nphy_iq_comp tx_comp
;
18685 wlc_phy_table_read_nphy(pi
, 15, 4, 0x50, 16, &tx_comp
);
18687 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
, tx_comp
.a0
);
18688 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
+ 2, tx_comp
.b0
);
18689 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
+ 4, tx_comp
.a1
);
18690 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
+ 6, tx_comp
.b1
);
18693 static void wlc_phy_restorecal_nphy(struct brcms_phy
*pi
)
18696 u16 txcal_coeffs_bphy
[4];
18699 u16
*txcal_radio_regs
= NULL
;
18701 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18702 if (pi
->nphy_iqcal_chanspec_2G
== 0)
18705 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_2G
;
18706 loft_comp
= &pi
->calibration_cache
.txcal_coeffs_2G
[5];
18708 if (pi
->nphy_iqcal_chanspec_5G
== 0)
18711 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_5G
;
18712 loft_comp
= &pi
->calibration_cache
.txcal_coeffs_5G
[5];
18715 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 80, 16, tbl_ptr
);
18717 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18718 txcal_coeffs_bphy
[0] = tbl_ptr
[0];
18719 txcal_coeffs_bphy
[1] = tbl_ptr
[1];
18720 txcal_coeffs_bphy
[2] = tbl_ptr
[2];
18721 txcal_coeffs_bphy
[3] = tbl_ptr
[3];
18723 txcal_coeffs_bphy
[0] = 0;
18724 txcal_coeffs_bphy
[1] = 0;
18725 txcal_coeffs_bphy
[2] = 0;
18726 txcal_coeffs_bphy
[3] = 0;
18729 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 88, 16,
18730 txcal_coeffs_bphy
);
18732 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 85, 16, loft_comp
);
18734 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 93, 16, loft_comp
);
18736 if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
18737 wlc_phy_tx_iq_war_nphy(pi
);
18739 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18740 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18742 pi
->calibration_cache
.txcal_radio_regs_2G
;
18743 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18745 write_radio_reg(pi
,
18746 RADIO_2056_TX_LOFT_FINE_I
|
18748 pi
->calibration_cache
.
18749 txcal_radio_regs_2G
[0]);
18750 write_radio_reg(pi
,
18751 RADIO_2056_TX_LOFT_FINE_Q
|
18753 pi
->calibration_cache
.
18754 txcal_radio_regs_2G
[1]);
18755 write_radio_reg(pi
,
18756 RADIO_2056_TX_LOFT_FINE_I
|
18758 pi
->calibration_cache
.
18759 txcal_radio_regs_2G
[2]);
18760 write_radio_reg(pi
,
18761 RADIO_2056_TX_LOFT_FINE_Q
|
18763 pi
->calibration_cache
.
18764 txcal_radio_regs_2G
[3]);
18766 write_radio_reg(pi
,
18767 RADIO_2056_TX_LOFT_COARSE_I
|
18769 pi
->calibration_cache
.
18770 txcal_radio_regs_2G
[4]);
18771 write_radio_reg(pi
,
18772 RADIO_2056_TX_LOFT_COARSE_Q
|
18774 pi
->calibration_cache
.
18775 txcal_radio_regs_2G
[5]);
18776 write_radio_reg(pi
,
18777 RADIO_2056_TX_LOFT_COARSE_I
|
18779 pi
->calibration_cache
.
18780 txcal_radio_regs_2G
[6]);
18781 write_radio_reg(pi
,
18782 RADIO_2056_TX_LOFT_COARSE_Q
|
18784 pi
->calibration_cache
.
18785 txcal_radio_regs_2G
[7]);
18787 write_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
,
18788 pi
->calibration_cache
.
18789 txcal_radio_regs_2G
[0]);
18790 write_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
,
18791 pi
->calibration_cache
.
18792 txcal_radio_regs_2G
[1]);
18793 write_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
,
18794 pi
->calibration_cache
.
18795 txcal_radio_regs_2G
[2]);
18796 write_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
,
18797 pi
->calibration_cache
.
18798 txcal_radio_regs_2G
[3]);
18801 wlc_phy_rx_iq_coeffs_nphy(pi
, 1,
18802 &pi
->calibration_cache
.
18805 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18807 pi
->calibration_cache
.txcal_radio_regs_5G
;
18808 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18810 write_radio_reg(pi
,
18811 RADIO_2056_TX_LOFT_FINE_I
|
18813 pi
->calibration_cache
.
18814 txcal_radio_regs_5G
[0]);
18815 write_radio_reg(pi
,
18816 RADIO_2056_TX_LOFT_FINE_Q
|
18818 pi
->calibration_cache
.
18819 txcal_radio_regs_5G
[1]);
18820 write_radio_reg(pi
,
18821 RADIO_2056_TX_LOFT_FINE_I
|
18823 pi
->calibration_cache
.
18824 txcal_radio_regs_5G
[2]);
18825 write_radio_reg(pi
,
18826 RADIO_2056_TX_LOFT_FINE_Q
|
18828 pi
->calibration_cache
.
18829 txcal_radio_regs_5G
[3]);
18831 write_radio_reg(pi
,
18832 RADIO_2056_TX_LOFT_COARSE_I
|
18834 pi
->calibration_cache
.
18835 txcal_radio_regs_5G
[4]);
18836 write_radio_reg(pi
,
18837 RADIO_2056_TX_LOFT_COARSE_Q
|
18839 pi
->calibration_cache
.
18840 txcal_radio_regs_5G
[5]);
18841 write_radio_reg(pi
,
18842 RADIO_2056_TX_LOFT_COARSE_I
|
18844 pi
->calibration_cache
.
18845 txcal_radio_regs_5G
[6]);
18846 write_radio_reg(pi
,
18847 RADIO_2056_TX_LOFT_COARSE_Q
|
18849 pi
->calibration_cache
.
18850 txcal_radio_regs_5G
[7]);
18852 write_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
,
18853 pi
->calibration_cache
.
18854 txcal_radio_regs_5G
[0]);
18855 write_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
,
18856 pi
->calibration_cache
.
18857 txcal_radio_regs_5G
[1]);
18858 write_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
,
18859 pi
->calibration_cache
.
18860 txcal_radio_regs_5G
[2]);
18861 write_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
,
18862 pi
->calibration_cache
.
18863 txcal_radio_regs_5G
[3]);
18866 wlc_phy_rx_iq_coeffs_nphy(pi
, 1,
18867 &pi
->calibration_cache
.
18871 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18872 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
18874 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18876 txcal_radio_regs
[2 * coreNum
]);
18877 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18879 txcal_radio_regs
[2 * coreNum
+ 1]);
18881 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18883 txcal_radio_regs
[2 * coreNum
+ 4]);
18884 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
18886 txcal_radio_regs
[2 * coreNum
+ 5]);
18891 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy
*pi
)
18895 u32 iqcomp
, locomp
, curr_locomp
;
18896 s8 locomp_i
, locomp_q
;
18897 s8 curr_locomp_i
, curr_locomp_q
;
18898 u32 tbl_id
, tbl_len
, tbl_offset
;
18901 if (pi
->phyhang_avoid
)
18902 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
18904 wlc_phy_table_read_nphy(pi
, 15, 7, 80, 16, iqloCalbuf
);
18908 for (tbl_id
= NPHY_TBL_ID_CORE1TXPWRCTL
;
18909 tbl_id
<= NPHY_TBL_ID_CORE2TXPWRCTL
; tbl_id
++) {
18912 26) ? (((u32
) (iqloCalbuf
[0] & 0x3ff)) << 10) |
18913 (iqloCalbuf
[1] & 0x3ff)
18914 : (((u32
) (iqloCalbuf
[2] & 0x3ff)) << 10) |
18915 (iqloCalbuf
[3] & 0x3ff);
18917 for (idx
= 0; idx
< tbl_len
; idx
++)
18918 regval
[idx
] = iqcomp
;
18919 wlc_phy_table_write_nphy(pi
, tbl_id
, tbl_len
, tbl_offset
, 32,
18924 for (tbl_id
= NPHY_TBL_ID_CORE1TXPWRCTL
;
18925 tbl_id
<= NPHY_TBL_ID_CORE2TXPWRCTL
; tbl_id
++) {
18928 (u32
) ((tbl_id
== 26) ? iqloCalbuf
[5] : iqloCalbuf
[6]);
18929 locomp_i
= (s8
) ((locomp
>> 8) & 0xff);
18930 locomp_q
= (s8
) ((locomp
) & 0xff);
18931 for (idx
= 0; idx
< tbl_len
; idx
++) {
18932 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18933 curr_locomp_i
= locomp_i
;
18934 curr_locomp_q
= locomp_q
;
18936 curr_locomp_i
= (s8
) ((locomp_i
*
18937 nphy_tpc_loscale
[idx
] +
18941 nphy_tpc_loscale
[idx
] +
18944 curr_locomp
= (u32
) ((curr_locomp_i
& 0xff) << 8);
18945 curr_locomp
|= (u32
) (curr_locomp_q
& 0xff);
18946 regval
[idx
] = curr_locomp
;
18948 wlc_phy_table_write_nphy(pi
, tbl_id
, tbl_len
, tbl_offset
, 32,
18952 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
18954 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CURR_IDX1
, 0xFFFF);
18955 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CURR_IDX2
, 0xFFFF);
18958 if (pi
->phyhang_avoid
)
18959 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
18962 static void wlc_phy_txlpfbw_nphy(struct brcms_phy
*pi
)
18966 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
18967 if (CHSPEC_IS40(pi
->radio_chanspec
))
18973 if (CHSPEC_IS40(pi
->radio_chanspec
))
18979 write_phy_reg(pi
, 0xe8,
18982 (tx_lpf_bw
<< 6) | (tx_lpf_bw
<< 9));
18986 if (CHSPEC_IS40(pi
->radio_chanspec
))
18991 write_phy_reg(pi
, 0xe9,
18994 (tx_lpf_bw
<< 6) | (tx_lpf_bw
<< 9));
19000 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy
*pi
, u16 reduction_factr
)
19002 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
19003 if ((CHSPEC_CHANNEL(pi
->radio_chanspec
) == 11) &&
19004 CHSPEC_IS40(pi
->radio_chanspec
)) {
19005 if (!pi
->nphy_anarxlpf_adjusted
) {
19006 write_radio_reg(pi
,
19007 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
19009 ((pi
->nphy_rccal_value
+
19010 reduction_factr
) | 0x80));
19012 pi
->nphy_anarxlpf_adjusted
= true;
19015 if (pi
->nphy_anarxlpf_adjusted
) {
19016 write_radio_reg(pi
,
19017 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
19019 (pi
->nphy_rccal_value
| 0x80));
19021 pi
->nphy_anarxlpf_adjusted
= false;
19028 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy
*pi
, int ntones
,
19029 int *tone_id_buf
, u32
*noise_var_buf
)
19035 CHSPEC_IS40(pi
->radio_chanspec
) ?
19036 NPHY_NOISEVAR_TBLLEN40
: NPHY_NOISEVAR_TBLLEN20
;
19038 if (pi
->nphy_noisevars_adjusted
) {
19039 for (i
= 0; i
< pi
->nphy_saved_noisevars
.bufcount
; i
++) {
19040 tone_id
= pi
->nphy_saved_noisevars
.tone_id
[i
];
19041 offset
= (tone_id
>= 0) ?
19043 2) + 1) : (tbllen
+ (tone_id
* 2) + 1);
19044 wlc_phy_table_write_nphy(
19045 pi
, NPHY_TBL_ID_NOISEVAR
, 1,
19047 &pi
->nphy_saved_noisevars
.min_noise_vars
[i
]);
19050 pi
->nphy_saved_noisevars
.bufcount
= 0;
19051 pi
->nphy_noisevars_adjusted
= false;
19054 if ((noise_var_buf
!= NULL
) && (tone_id_buf
!= NULL
)) {
19055 pi
->nphy_saved_noisevars
.bufcount
= 0;
19057 for (i
= 0; i
< ntones
; i
++) {
19058 tone_id
= tone_id_buf
[i
];
19059 offset
= (tone_id
>= 0) ?
19060 ((tone_id
* 2) + 1) :
19061 (tbllen
+ (tone_id
* 2) + 1);
19062 pi
->nphy_saved_noisevars
.tone_id
[i
] = tone_id
;
19063 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
19065 &pi
->nphy_saved_noisevars
.
19066 min_noise_vars
[i
]);
19067 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
19068 offset
, 32, &noise_var_buf
[i
]);
19069 pi
->nphy_saved_noisevars
.bufcount
++;
19072 pi
->nphy_noisevars_adjusted
= true;
19076 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy
*pi
, u8 minpwr
)
19080 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19081 if ((CHSPEC_CHANNEL(pi
->radio_chanspec
) == 11) &&
19082 CHSPEC_IS40(pi
->radio_chanspec
)) {
19083 if (!pi
->nphy_crsminpwr_adjusted
) {
19084 regval
= read_phy_reg(pi
, 0x27d);
19085 pi
->nphy_crsminpwr
[0] = regval
& 0xff;
19087 regval
|= (u16
) minpwr
;
19088 write_phy_reg(pi
, 0x27d, regval
);
19090 regval
= read_phy_reg(pi
, 0x280);
19091 pi
->nphy_crsminpwr
[1] = regval
& 0xff;
19093 regval
|= (u16
) minpwr
;
19094 write_phy_reg(pi
, 0x280, regval
);
19096 regval
= read_phy_reg(pi
, 0x283);
19097 pi
->nphy_crsminpwr
[2] = regval
& 0xff;
19099 regval
|= (u16
) minpwr
;
19100 write_phy_reg(pi
, 0x283, regval
);
19102 pi
->nphy_crsminpwr_adjusted
= true;
19105 if (pi
->nphy_crsminpwr_adjusted
) {
19106 regval
= read_phy_reg(pi
, 0x27d);
19108 regval
|= pi
->nphy_crsminpwr
[0];
19109 write_phy_reg(pi
, 0x27d, regval
);
19111 regval
= read_phy_reg(pi
, 0x280);
19113 regval
|= pi
->nphy_crsminpwr
[1];
19114 write_phy_reg(pi
, 0x280, regval
);
19116 regval
= read_phy_reg(pi
, 0x283);
19118 regval
|= pi
->nphy_crsminpwr
[2];
19119 write_phy_reg(pi
, 0x283, regval
);
19121 pi
->nphy_crsminpwr_adjusted
= false;
19127 static void wlc_phy_spurwar_nphy(struct brcms_phy
*pi
)
19129 u16 cur_channel
= 0;
19130 int nphy_adj_tone_id_buf
[] = { 57, 58 };
19131 u32 nphy_adj_noise_var_buf
[] = { 0x3ff, 0x3ff };
19132 bool isAdjustNoiseVar
= false;
19133 uint numTonesAdjust
= 0;
19136 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19137 if (pi
->phyhang_avoid
)
19138 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
19140 cur_channel
= CHSPEC_CHANNEL(pi
->radio_chanspec
);
19142 if (pi
->nphy_gband_spurwar_en
) {
19144 wlc_phy_adjust_rx_analpfbw_nphy(
19146 NPHY_ANARXLPFBW_REDUCTIONFACT
);
19148 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
19149 if ((cur_channel
== 11)
19150 && CHSPEC_IS40(pi
->radio_chanspec
))
19151 wlc_phy_adjust_min_noisevar_nphy(
19153 nphy_adj_tone_id_buf
,
19154 nphy_adj_noise_var_buf
);
19156 wlc_phy_adjust_min_noisevar_nphy(pi
, 0,
19161 wlc_phy_adjust_crsminpwr_nphy(pi
,
19162 NPHY_ADJUSTED_MINCRSPOWER
);
19165 if ((pi
->nphy_gband_spurwar2_en
)
19166 && CHSPEC_IS2G(pi
->radio_chanspec
)) {
19168 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
19169 switch (cur_channel
) {
19171 nphy_adj_tone_id_buf
[0] = 57;
19172 nphy_adj_tone_id_buf
[1] = 58;
19173 nphy_adj_noise_var_buf
[0] = 0x22f;
19174 nphy_adj_noise_var_buf
[1] = 0x25f;
19175 isAdjustNoiseVar
= true;
19178 nphy_adj_tone_id_buf
[0] = 41;
19179 nphy_adj_tone_id_buf
[1] = 42;
19180 nphy_adj_noise_var_buf
[0] = 0x22f;
19181 nphy_adj_noise_var_buf
[1] = 0x25f;
19182 isAdjustNoiseVar
= true;
19185 nphy_adj_tone_id_buf
[0] = 25;
19186 nphy_adj_tone_id_buf
[1] = 26;
19187 nphy_adj_noise_var_buf
[0] = 0x24f;
19188 nphy_adj_noise_var_buf
[1] = 0x25f;
19189 isAdjustNoiseVar
= true;
19192 nphy_adj_tone_id_buf
[0] = 9;
19193 nphy_adj_tone_id_buf
[1] = 10;
19194 nphy_adj_noise_var_buf
[0] = 0x22f;
19195 nphy_adj_noise_var_buf
[1] = 0x24f;
19196 isAdjustNoiseVar
= true;
19199 nphy_adj_tone_id_buf
[0] = 121;
19200 nphy_adj_tone_id_buf
[1] = 122;
19201 nphy_adj_noise_var_buf
[0] = 0x18f;
19202 nphy_adj_noise_var_buf
[1] = 0x24f;
19203 isAdjustNoiseVar
= true;
19206 nphy_adj_tone_id_buf
[0] = 105;
19207 nphy_adj_tone_id_buf
[1] = 106;
19208 nphy_adj_noise_var_buf
[0] = 0x22f;
19209 nphy_adj_noise_var_buf
[1] = 0x25f;
19210 isAdjustNoiseVar
= true;
19213 nphy_adj_tone_id_buf
[0] = 89;
19214 nphy_adj_tone_id_buf
[1] = 90;
19215 nphy_adj_noise_var_buf
[0] = 0x22f;
19216 nphy_adj_noise_var_buf
[1] = 0x24f;
19217 isAdjustNoiseVar
= true;
19220 nphy_adj_tone_id_buf
[0] = 73;
19221 nphy_adj_tone_id_buf
[1] = 74;
19222 nphy_adj_noise_var_buf
[0] = 0x22f;
19223 nphy_adj_noise_var_buf
[1] = 0x24f;
19224 isAdjustNoiseVar
= true;
19227 isAdjustNoiseVar
= false;
19232 if (isAdjustNoiseVar
) {
19233 numTonesAdjust
= ARRAY_SIZE(nphy_adj_tone_id_buf
);
19235 wlc_phy_adjust_min_noisevar_nphy(
19238 nphy_adj_tone_id_buf
,
19239 nphy_adj_noise_var_buf
);
19244 wlc_phy_adjust_min_noisevar_nphy(pi
, 0, NULL
,
19249 if ((pi
->nphy_aband_spurwar_en
) &&
19250 (CHSPEC_IS5G(pi
->radio_chanspec
))) {
19251 switch (cur_channel
) {
19253 nphy_adj_tone_id_buf
[0] = 32;
19254 nphy_adj_noise_var_buf
[0] = 0x25f;
19259 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM4716
) &&
19260 (pi
->sh
->chippkg
== BCMA_PKG_ID_BCM4717
)) {
19261 nphy_adj_tone_id_buf
[0] = 32;
19262 nphy_adj_noise_var_buf
[0] = 0x21f;
19264 nphy_adj_tone_id_buf
[0] = 0;
19265 nphy_adj_noise_var_buf
[0] = 0x0;
19269 nphy_adj_tone_id_buf
[0] = 32;
19270 nphy_adj_noise_var_buf
[0] = 0x21f;
19273 nphy_adj_tone_id_buf
[0] = 16;
19274 nphy_adj_noise_var_buf
[0] = 0x23f;
19278 nphy_adj_tone_id_buf
[0] = 48;
19279 nphy_adj_noise_var_buf
[0] = 0x23f;
19282 nphy_adj_tone_id_buf
[0] = 0;
19283 nphy_adj_noise_var_buf
[0] = 0x0;
19287 if (nphy_adj_tone_id_buf
[0]
19288 && nphy_adj_noise_var_buf
[0])
19289 wlc_phy_adjust_min_noisevar_nphy(
19291 nphy_adj_tone_id_buf
,
19292 nphy_adj_noise_var_buf
);
19294 wlc_phy_adjust_min_noisevar_nphy(pi
, 0, NULL
,
19298 if (pi
->phyhang_avoid
)
19299 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
19303 void wlc_phy_init_nphy(struct brcms_phy
*pi
)
19307 struct nphy_txgains target_gain
;
19308 u8 tx_pwr_ctrl_state
;
19309 bool do_nphy_cal
= false;
19311 u32 d11_clk_ctl_st
;
19312 bool do_rssi_cal
= false;
19316 if (!(pi
->measure_hold
& PHY_HOLD_FOR_SCAN
))
19317 pi
->measure_hold
|= PHY_HOLD_FOR_NOT_ASSOC
;
19319 if ((ISNPHY(pi
)) && (NREV_GE(pi
->pubpi
.phy_rev
, 5)) &&
19320 ((pi
->sh
->chippkg
== BCMA_PKG_ID_BCM4717
) ||
19321 (pi
->sh
->chippkg
== BCMA_PKG_ID_BCM4718
))) {
19322 if ((pi
->sh
->boardflags
& BFL_EXTLNA
) &&
19323 (CHSPEC_IS2G(pi
->radio_chanspec
)))
19324 bcma_cc_set32(&pi
->d11core
->bus
->drv_cc
,
19325 BCMA_CC_CHIPCTL
, 0x40);
19328 if ((!PHY_IPA(pi
)) && (pi
->sh
->chip
== BCMA_CHIP_ID_BCM5357
))
19329 bcma_chipco_chipctl_maskset(&pi
->d11core
->bus
->drv_cc
, 1,
19330 ~CCTRL5357_EXTPA
, CCTRL5357_EXTPA
);
19332 if ((pi
->nphy_gband_spurwar2_en
) && CHSPEC_IS2G(pi
->radio_chanspec
) &&
19333 CHSPEC_IS40(pi
->radio_chanspec
)) {
19335 d11_clk_ctl_st
= bcma_read32(pi
->d11core
,
19336 D11REGOFFS(clk_ctl_st
));
19337 bcma_mask32(pi
->d11core
, D11REGOFFS(clk_ctl_st
),
19338 ~(CCS_FORCEHT
| CCS_HTAREQ
));
19340 bcma_write32(pi
->d11core
, D11REGOFFS(clk_ctl_st
),
19344 pi
->use_int_tx_iqlo_cal_nphy
=
19346 (NREV_GE(pi
->pubpi
.phy_rev
, 7) ||
19347 (NREV_GE(pi
->pubpi
.phy_rev
, 5)
19348 && pi
->sh
->boardflags2
& BFL2_INTERNDET_TXIQCAL
)));
19350 pi
->internal_tx_iqlo_cal_tapoff_intpa_nphy
= false;
19352 pi
->nphy_deaf_count
= 0;
19354 wlc_phy_tbl_init_nphy(pi
);
19356 pi
->nphy_crsminpwr_adjusted
= false;
19357 pi
->nphy_noisevars_adjusted
= false;
19359 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19360 write_phy_reg(pi
, 0xe7, 0);
19361 write_phy_reg(pi
, 0xec, 0);
19362 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19363 write_phy_reg(pi
, 0x342, 0);
19364 write_phy_reg(pi
, 0x343, 0);
19365 write_phy_reg(pi
, 0x346, 0);
19366 write_phy_reg(pi
, 0x347, 0);
19368 write_phy_reg(pi
, 0xe5, 0);
19369 write_phy_reg(pi
, 0xe6, 0);
19371 write_phy_reg(pi
, 0xec, 0);
19374 write_phy_reg(pi
, 0x91, 0);
19375 write_phy_reg(pi
, 0x92, 0);
19376 if (NREV_LT(pi
->pubpi
.phy_rev
, 6)) {
19377 write_phy_reg(pi
, 0x93, 0);
19378 write_phy_reg(pi
, 0x94, 0);
19381 and_phy_reg(pi
, 0xa1, ~3);
19383 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19384 write_phy_reg(pi
, 0x8f, 0);
19385 write_phy_reg(pi
, 0xa5, 0);
19387 write_phy_reg(pi
, 0xa5, 0);
19390 if (NREV_IS(pi
->pubpi
.phy_rev
, 2))
19391 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x3b);
19392 else if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
19393 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x40);
19395 write_phy_reg(pi
, 0x203, 32);
19396 write_phy_reg(pi
, 0x201, 32);
19398 if (pi
->sh
->boardflags2
& BFL2_SKWRKFEM_BRD
)
19399 write_phy_reg(pi
, 0x20d, 160);
19401 write_phy_reg(pi
, 0x20d, 184);
19403 write_phy_reg(pi
, 0x13a, 200);
19405 write_phy_reg(pi
, 0x70, 80);
19407 write_phy_reg(pi
, 0x1ff, 48);
19409 if (NREV_LT(pi
->pubpi
.phy_rev
, 8))
19410 wlc_phy_update_mimoconfig_nphy(pi
, pi
->n_preamble_override
);
19412 wlc_phy_stf_chain_upd_nphy(pi
);
19414 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
19415 write_phy_reg(pi
, 0x180, 0xaa8);
19416 write_phy_reg(pi
, 0x181, 0x9a4);
19420 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
19422 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
19423 0x29b, (0x1 << 0), (1) << 0);
19425 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x298 :
19426 0x29c, (0x1ff << 7),
19427 (pi
->nphy_papd_epsilon_offset
[core
]) << 7);
19431 wlc_phy_ipa_set_tx_digi_filts_nphy(pi
);
19432 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 5)) {
19433 wlc_phy_extpa_set_tx_digi_filts_nphy(pi
);
19436 wlc_phy_workarounds_nphy(pi
);
19438 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, ON
);
19440 val
= read_phy_reg(pi
, 0x01);
19441 write_phy_reg(pi
, 0x01, val
| BBCFG_RESETCCA
);
19442 write_phy_reg(pi
, 0x01, val
& (~BBCFG_RESETCCA
));
19443 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, OFF
);
19445 wlapi_bmac_macphyclk_set(pi
->sh
->physhim
, ON
);
19447 wlc_phy_pa_override_nphy(pi
, OFF
);
19448 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
);
19449 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
19450 wlc_phy_pa_override_nphy(pi
, ON
);
19452 wlc_phy_classifier_nphy(pi
, 0, 0);
19453 wlc_phy_clip_det_nphy(pi
, 0, clip1_ths
);
19455 if (CHSPEC_IS2G(pi
->radio_chanspec
))
19456 wlc_phy_bphy_init_nphy(pi
);
19458 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
19459 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
19461 wlc_phy_txpwr_fixpower_nphy(pi
);
19463 wlc_phy_txpwrctrl_idle_tssi_nphy(pi
);
19465 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
19467 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19468 u32
*tx_pwrctrl_tbl
= NULL
;
19475 tx_pwrctrl_tbl
= wlc_phy_get_ipa_gaintbl_nphy(pi
);
19477 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
19478 if (NREV_IS(pi
->pubpi
.phy_rev
, 3))
19480 nphy_tpc_5GHz_txgain_rev3
;
19481 else if (NREV_IS(pi
->pubpi
.phy_rev
, 4))
19483 (pi
->srom_fem5g
.extpagain
==
19485 nphy_tpc_5GHz_txgain_HiPwrEPA
:
19486 nphy_tpc_5GHz_txgain_rev4
;
19489 nphy_tpc_5GHz_txgain_rev5
;
19491 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19492 if (pi
->pubpi
.radiorev
== 5)
19494 nphy_tpc_txgain_epa_2057rev5
;
19495 else if (pi
->pubpi
.radiorev
== 3)
19497 nphy_tpc_txgain_epa_2057rev3
;
19499 if (NREV_GE(pi
->pubpi
.phy_rev
, 5) &&
19500 (pi
->srom_fem2g
.extpagain
== 3))
19502 nphy_tpc_txgain_HiPwrEPA
;
19505 nphy_tpc_txgain_rev3
;
19510 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 128,
19511 192, 32, tx_pwrctrl_tbl
);
19512 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 128,
19513 192, 32, tx_pwrctrl_tbl
);
19515 pi
->nphy_gmval
= (u16
) ((*tx_pwrctrl_tbl
>> 16) & 0x7000);
19517 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19519 for (idx
= 0; idx
< 128; idx
++) {
19520 pga_gn
= (tx_pwrctrl_tbl
[idx
] >> 24) & 0xf;
19521 pad_gn
= (tx_pwrctrl_tbl
[idx
] >> 19) & 0x1f;
19522 rfpwr_offset
= get_rf_pwr_offset(pi
, pga_gn
,
19524 wlc_phy_table_write_nphy(
19526 NPHY_TBL_ID_CORE1TXPWRCTL
,
19529 wlc_phy_table_write_nphy(
19531 NPHY_TBL_ID_CORE2TXPWRCTL
,
19537 for (idx
= 0; idx
< 128; idx
++) {
19538 pga_gn
= (tx_pwrctrl_tbl
[idx
] >> 24) & 0xf;
19539 if (CHSPEC_IS2G(pi
->radio_chanspec
))
19540 rfpwr_offset
= (s16
)
19541 nphy_papd_pga_gain_delta_ipa_2g
19544 rfpwr_offset
= (s16
)
19545 nphy_papd_pga_gain_delta_ipa_5g
19548 wlc_phy_table_write_nphy(
19550 NPHY_TBL_ID_CORE1TXPWRCTL
,
19553 wlc_phy_table_write_nphy(
19555 NPHY_TBL_ID_CORE2TXPWRCTL
,
19563 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 128,
19564 192, 32, nphy_tpc_txgain
);
19565 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 128,
19566 192, 32, nphy_tpc_txgain
);
19569 if (pi
->sh
->phyrxchain
!= 0x3)
19570 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub
*) pi
,
19571 pi
->sh
->phyrxchain
);
19573 if (PHY_PERICAL_MPHASE_PENDING(pi
))
19574 wlc_phy_cal_perical_mphase_restart(pi
);
19576 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19577 do_rssi_cal
= (CHSPEC_IS2G(pi
->radio_chanspec
)) ?
19578 (pi
->nphy_rssical_chanspec_2G
== 0) :
19579 (pi
->nphy_rssical_chanspec_5G
== 0);
19582 wlc_phy_rssi_cal_nphy(pi
);
19584 wlc_phy_restore_rssical_nphy(pi
);
19586 wlc_phy_rssi_cal_nphy(pi
);
19589 if (!SCAN_RM_IN_PROGRESS(pi
))
19590 do_nphy_cal
= (CHSPEC_IS2G(pi
->radio_chanspec
)) ?
19591 (pi
->nphy_iqcal_chanspec_2G
== 0) :
19592 (pi
->nphy_iqcal_chanspec_5G
== 0);
19594 if (!pi
->do_initcal
)
19595 do_nphy_cal
= false;
19599 target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
19601 if (pi
->antsel_type
== ANTSEL_2x3
)
19602 wlc_phy_antsel_init((struct brcms_phy_pub
*) pi
,
19605 if (pi
->nphy_perical
!= PHY_PERICAL_MPHASE
) {
19606 wlc_phy_rssi_cal_nphy(pi
);
19608 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19609 pi
->nphy_cal_orig_pwr_idx
[0] =
19610 pi
->nphy_txpwrindex
[PHY_CORE_0
]
19613 pi
->nphy_cal_orig_pwr_idx
[1] =
19614 pi
->nphy_txpwrindex
[PHY_CORE_1
]
19618 wlc_phy_precal_txgain_nphy(pi
);
19620 wlc_phy_get_tx_gain_nphy(pi
);
19623 if (wlc_phy_cal_txiqlo_nphy
19624 (pi
, target_gain
, true,
19626 if (wlc_phy_cal_rxiq_nphy
19627 (pi
, target_gain
, 2,
19629 wlc_phy_savecal_nphy(pi
);
19632 } else if (pi
->mphase_cal_phase_id
==
19633 MPHASE_CAL_STATE_IDLE
) {
19634 wlc_phy_cal_perical((struct brcms_phy_pub
*) pi
,
19635 PHY_PERICAL_PHYINIT
);
19638 wlc_phy_restorecal_nphy(pi
);
19641 wlc_phy_txpwrctrl_coeff_setup_nphy(pi
);
19643 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
19645 wlc_phy_nphy_tkip_rifs_war(pi
, pi
->sh
->_rifs_phy
);
19647 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LE(pi
->pubpi
.phy_rev
, 6))
19649 write_phy_reg(pi
, 0x70, 50);
19651 wlc_phy_txlpfbw_nphy(pi
);
19653 wlc_phy_spurwar_nphy(pi
);
19657 static void wlc_phy_resetcca_nphy(struct brcms_phy
*pi
)
19661 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, ON
);
19663 val
= read_phy_reg(pi
, 0x01);
19664 write_phy_reg(pi
, 0x01, val
| BBCFG_RESETCCA
);
19666 write_phy_reg(pi
, 0x01, val
& (~BBCFG_RESETCCA
));
19668 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, OFF
);
19670 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
19673 void wlc_phy_pa_override_nphy(struct brcms_phy
*pi
, bool en
)
19675 u16 rfctrlintc_override_val
;
19679 pi
->rfctrlIntc1_save
= read_phy_reg(pi
, 0x91);
19680 pi
->rfctrlIntc2_save
= read_phy_reg(pi
, 0x92);
19682 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
19683 rfctrlintc_override_val
= 0x1480;
19684 else if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
19685 rfctrlintc_override_val
=
19686 CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x600 : 0x480;
19688 rfctrlintc_override_val
=
19689 CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x180 : 0x120;
19691 write_phy_reg(pi
, 0x91, rfctrlintc_override_val
);
19692 write_phy_reg(pi
, 0x92, rfctrlintc_override_val
);
19694 write_phy_reg(pi
, 0x91, pi
->rfctrlIntc1_save
);
19695 write_phy_reg(pi
, 0x92, pi
->rfctrlIntc2_save
);
19700 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy
*pi
)
19704 (NPHY_RfseqCoreActv_TxRxChain0
| NPHY_RfseqCoreActv_TxRxChain1
);
19705 bool CoreActv_override
= false;
19707 if (pi
->nphy_txrx_chain
== BRCMS_N_TXRX_CHAIN0
) {
19708 txrx_chain
= NPHY_RfseqCoreActv_TxRxChain0
;
19709 CoreActv_override
= true;
19711 if (NREV_LE(pi
->pubpi
.phy_rev
, 2))
19712 and_phy_reg(pi
, 0xa0, ~0x20);
19713 } else if (pi
->nphy_txrx_chain
== BRCMS_N_TXRX_CHAIN1
) {
19714 txrx_chain
= NPHY_RfseqCoreActv_TxRxChain1
;
19715 CoreActv_override
= true;
19717 if (NREV_LE(pi
->pubpi
.phy_rev
, 2))
19718 or_phy_reg(pi
, 0xa0, 0x20);
19721 mod_phy_reg(pi
, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain
);
19723 if (CoreActv_override
) {
19724 pi
->nphy_perical
= PHY_PERICAL_DISABLE
;
19725 or_phy_reg(pi
, 0xa1, NPHY_RfseqMode_CoreActv_override
);
19727 pi
->nphy_perical
= PHY_PERICAL_MPHASE
;
19728 and_phy_reg(pi
, 0xa1, ~NPHY_RfseqMode_CoreActv_override
);
19732 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub
*pih
, u8 rxcore_bitmask
)
19737 struct brcms_phy
*pi
= (struct brcms_phy
*) pih
;
19741 pi
->sh
->phyrxchain
= rxcore_bitmask
;
19746 suspend
= (0 == (bcma_read32(pi
->d11core
, D11REGOFFS(maccontrol
)) &
19749 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
19751 if (pi
->phyhang_avoid
)
19752 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
19754 regval
= read_phy_reg(pi
, 0xa2);
19755 regval
&= ~(0xf << 4);
19756 regval
|= ((u16
) (rxcore_bitmask
& 0x3)) << 4;
19757 write_phy_reg(pi
, 0xa2, regval
);
19759 if ((rxcore_bitmask
& 0x3) != 0x3) {
19761 write_phy_reg(pi
, 0x20e, 1);
19763 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19764 if (pi
->rx2tx_biasentry
== -1) {
19765 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
19766 ARRAY_SIZE(tbl_buf
), 80,
19769 for (i
= 0; i
< ARRAY_SIZE(tbl_buf
); i
++) {
19771 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS
) {
19772 pi
->rx2tx_biasentry
= (u8
) i
;
19774 NPHY_REV3_RFSEQ_CMD_NOP
;
19775 wlc_phy_table_write_nphy(
19782 } else if (tbl_buf
[i
] ==
19783 NPHY_REV3_RFSEQ_CMD_END
)
19790 write_phy_reg(pi
, 0x20e, 30);
19792 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19793 if (pi
->rx2tx_biasentry
!= -1) {
19794 tbl_opcode
= NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS
;
19795 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
19796 1, pi
->rx2tx_biasentry
,
19798 pi
->rx2tx_biasentry
= -1;
19803 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
19805 if (pi
->phyhang_avoid
)
19806 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
19809 wlapi_enable_mac(pi
->sh
->physhim
);
19812 u8
wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub
*pih
)
19814 u16 regval
, rxen_bits
;
19815 struct brcms_phy
*pi
= (struct brcms_phy
*) pih
;
19817 regval
= read_phy_reg(pi
, 0xa2);
19818 rxen_bits
= (regval
>> 4) & 0xf;
19820 return (u8
) rxen_bits
;
19823 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy
*pi
)
19825 return PHY_IPA(pi
);
19828 void wlc_phy_cal_init_nphy(struct brcms_phy
*pi
)
19832 static void wlc_phy_radio_preinit_205x(struct brcms_phy
*pi
)
19835 and_phy_reg(pi
, 0x78, ~RFCC_CHIP0_PU
);
19836 and_phy_reg(pi
, 0x78, RFCC_OE_POR_FORCE
);
19838 or_phy_reg(pi
, 0x78, ~RFCC_OE_POR_FORCE
);
19839 or_phy_reg(pi
, 0x78, RFCC_CHIP0_PU
);
19843 static void wlc_phy_radio_init_2057(struct brcms_phy
*pi
)
19845 struct radio_20xx_regs
*regs_2057_ptr
= NULL
;
19847 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
19848 regs_2057_ptr
= regs_2057_rev4
;
19849 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 8)
19850 || NREV_IS(pi
->pubpi
.phy_rev
, 9)) {
19851 switch (pi
->pubpi
.radiorev
) {
19854 if (NREV_IS(pi
->pubpi
.phy_rev
, 8))
19855 regs_2057_ptr
= regs_2057_rev5
;
19856 else if (NREV_IS(pi
->pubpi
.phy_rev
, 9))
19857 regs_2057_ptr
= regs_2057_rev5v1
;
19862 regs_2057_ptr
= regs_2057_rev7
;
19867 regs_2057_ptr
= regs_2057_rev8
;
19875 wlc_phy_init_radio_regs_allbands(pi
, regs_2057_ptr
);
19878 static u16
wlc_phy_radio205x_rcal(struct brcms_phy
*pi
)
19883 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19885 if (pi
->pubpi
.radiorev
== 5) {
19887 and_phy_reg(pi
, 0x342, ~(0x1 << 1));
19891 mod_radio_reg(pi
, RADIO_2057_IQTEST_SEL_PU
, 0x1, 0x1);
19892 mod_radio_reg(pi
, RADIO_2057v7_IQTEST_SEL_PU2
, 0x2,
19895 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x1, 0x1);
19899 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x3, 0x3);
19901 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
19902 rcal_reg
= read_radio_reg(pi
, RADIO_2057_RCAL_STATUS
);
19903 if (rcal_reg
& 0x1)
19909 if (WARN(i
== MAX_205x_RCAL_WAITLOOPS
,
19910 "HW error: radio calib2"))
19913 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x2, 0x0);
19915 rcal_reg
= read_radio_reg(pi
, RADIO_2057_RCAL_STATUS
) & 0x3e;
19917 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x1, 0x0);
19918 if (pi
->pubpi
.radiorev
== 5) {
19920 mod_radio_reg(pi
, RADIO_2057_IQTEST_SEL_PU
, 0x1, 0x0);
19921 mod_radio_reg(pi
, RADIO_2057v7_IQTEST_SEL_PU2
, 0x2,
19925 if ((pi
->pubpi
.radiorev
<= 4) || (pi
->pubpi
.radiorev
== 6)) {
19927 mod_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
, 0x3c,
19929 mod_radio_reg(pi
, RADIO_2057_BANDGAP_RCAL_TRIM
, 0xf0,
19933 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 3)) {
19939 RADIO_2056_SYN_PLL_MAST2
|
19941 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
| RADIO_2056_SYN
,
19945 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
19949 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
19952 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
19953 rcal_reg
= read_radio_reg(
19955 RADIO_2056_SYN_RCAL_CODE_OUT
|
19957 if (rcal_reg
& 0x80)
19963 if (WARN(i
== MAX_205x_RCAL_WAITLOOPS
,
19964 "HW error: radio calib3"))
19967 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
19972 RADIO_2056_SYN_RCAL_CODE_OUT
|
19975 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
19978 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
| RADIO_2056_SYN
,
19981 return rcal_reg
& 0x1f;
19983 return rcal_reg
& 0x3e;
19986 static u16
wlc_phy_radio2057_rccal(struct brcms_phy
*pi
)
19990 bool chip43226_6362A0
;
19992 chip43226_6362A0
= ((pi
->pubpi
.radiorev
== 3)
19993 || (pi
->pubpi
.radiorev
== 4)
19994 || (pi
->pubpi
.radiorev
== 6));
19997 if (chip43226_6362A0
) {
19998 write_radio_reg(pi
, RADIO_2057_RCCAL_MASTER
, 0x61);
19999 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xc0);
20001 write_radio_reg(pi
, RADIO_2057v7_RCCAL_MASTER
, 0x61);
20003 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xe9);
20005 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x6e);
20006 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x55);
20008 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
20009 rccal_valid
= read_radio_reg(pi
, RADIO_2057_RCCAL_DONE_OSCCAP
);
20010 if (rccal_valid
& 0x2)
20016 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x15);
20019 if (chip43226_6362A0
) {
20020 write_radio_reg(pi
, RADIO_2057_RCCAL_MASTER
, 0x69);
20021 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xb0);
20023 write_radio_reg(pi
, RADIO_2057v7_RCCAL_MASTER
, 0x69);
20025 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xd5);
20027 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x6e);
20028 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x55);
20030 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
20031 rccal_valid
= read_radio_reg(pi
, RADIO_2057_RCCAL_DONE_OSCCAP
);
20032 if (rccal_valid
& 0x2)
20038 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x15);
20041 if (chip43226_6362A0
) {
20042 write_radio_reg(pi
, RADIO_2057_RCCAL_MASTER
, 0x73);
20044 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x28);
20045 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xb0);
20047 write_radio_reg(pi
, RADIO_2057v7_RCCAL_MASTER
, 0x73);
20048 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x6e);
20049 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0x99);
20051 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x55);
20053 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
20054 rccal_valid
= read_radio_reg(pi
, RADIO_2057_RCCAL_DONE_OSCCAP
);
20055 if (rccal_valid
& 0x2)
20061 if (WARN(!(rccal_valid
& 0x2), "HW error: radio calib4"))
20064 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x15);
20066 return rccal_valid
;
20069 static void wlc_phy_radio_postinit_2057(struct brcms_phy
*pi
)
20072 mod_radio_reg(pi
, RADIO_2057_XTALPUOVR_PINCTRL
, 0x1, 0x1);
20074 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x78, 0x78);
20075 mod_radio_reg(pi
, RADIO_2057_XTAL_CONFIG2
, 0x80, 0x80);
20077 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x78, 0x0);
20078 mod_radio_reg(pi
, RADIO_2057_XTAL_CONFIG2
, 0x80, 0x0);
20080 if (pi
->phy_init_por
) {
20081 wlc_phy_radio205x_rcal(pi
);
20082 wlc_phy_radio2057_rccal(pi
);
20085 mod_radio_reg(pi
, RADIO_2057_RFPLL_MASTER
, 0x8, 0x0);
20088 static void wlc_phy_radio_init_2056(struct brcms_phy
*pi
)
20090 const struct radio_regs
*regs_SYN_2056_ptr
= NULL
;
20091 const struct radio_regs
*regs_TX_2056_ptr
= NULL
;
20092 const struct radio_regs
*regs_RX_2056_ptr
= NULL
;
20094 if (NREV_IS(pi
->pubpi
.phy_rev
, 3)) {
20095 regs_SYN_2056_ptr
= regs_SYN_2056
;
20096 regs_TX_2056_ptr
= regs_TX_2056
;
20097 regs_RX_2056_ptr
= regs_RX_2056
;
20098 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
20099 regs_SYN_2056_ptr
= regs_SYN_2056_A1
;
20100 regs_TX_2056_ptr
= regs_TX_2056_A1
;
20101 regs_RX_2056_ptr
= regs_RX_2056_A1
;
20103 switch (pi
->pubpi
.radiorev
) {
20105 regs_SYN_2056_ptr
= regs_SYN_2056_rev5
;
20106 regs_TX_2056_ptr
= regs_TX_2056_rev5
;
20107 regs_RX_2056_ptr
= regs_RX_2056_rev5
;
20111 regs_SYN_2056_ptr
= regs_SYN_2056_rev6
;
20112 regs_TX_2056_ptr
= regs_TX_2056_rev6
;
20113 regs_RX_2056_ptr
= regs_RX_2056_rev6
;
20118 regs_SYN_2056_ptr
= regs_SYN_2056_rev7
;
20119 regs_TX_2056_ptr
= regs_TX_2056_rev7
;
20120 regs_RX_2056_ptr
= regs_RX_2056_rev7
;
20124 regs_SYN_2056_ptr
= regs_SYN_2056_rev8
;
20125 regs_TX_2056_ptr
= regs_TX_2056_rev8
;
20126 regs_RX_2056_ptr
= regs_RX_2056_rev8
;
20130 regs_SYN_2056_ptr
= regs_SYN_2056_rev11
;
20131 regs_TX_2056_ptr
= regs_TX_2056_rev11
;
20132 regs_RX_2056_ptr
= regs_RX_2056_rev11
;
20140 wlc_phy_init_radio_regs(pi
, regs_SYN_2056_ptr
, (u16
) RADIO_2056_SYN
);
20142 wlc_phy_init_radio_regs(pi
, regs_TX_2056_ptr
, (u16
) RADIO_2056_TX0
);
20144 wlc_phy_init_radio_regs(pi
, regs_TX_2056_ptr
, (u16
) RADIO_2056_TX1
);
20146 wlc_phy_init_radio_regs(pi
, regs_RX_2056_ptr
, (u16
) RADIO_2056_RX0
);
20148 wlc_phy_init_radio_regs(pi
, regs_RX_2056_ptr
, (u16
) RADIO_2056_RX1
);
20151 static void wlc_phy_radio_postinit_2056(struct brcms_phy
*pi
)
20153 mod_radio_reg(pi
, RADIO_2056_SYN_COM_CTRL
, 0xb, 0xb);
20155 mod_radio_reg(pi
, RADIO_2056_SYN_COM_PU
, 0x2, 0x2);
20156 mod_radio_reg(pi
, RADIO_2056_SYN_COM_RESET
, 0x2, 0x2);
20158 mod_radio_reg(pi
, RADIO_2056_SYN_COM_RESET
, 0x2, 0x0);
20160 if ((pi
->sh
->boardflags2
& BFL2_LEGACY
)
20161 || (pi
->sh
->boardflags2
& BFL2_XTALBUFOUTEN
))
20162 mod_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
, 0xf4, 0x0);
20164 mod_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
, 0xfc, 0x0);
20166 mod_radio_reg(pi
, RADIO_2056_SYN_RCCAL_CTRL0
, 0x1, 0x0);
20168 if (pi
->phy_init_por
)
20169 wlc_phy_radio205x_rcal(pi
);
20172 static void wlc_phy_radio_preinit_2055(struct brcms_phy
*pi
)
20175 and_phy_reg(pi
, 0x78, ~RFCC_POR_FORCE
);
20176 or_phy_reg(pi
, 0x78, RFCC_CHIP0_PU
| RFCC_OE_POR_FORCE
);
20178 or_phy_reg(pi
, 0x78, RFCC_POR_FORCE
);
20181 static void wlc_phy_radio_init_2055(struct brcms_phy
*pi
)
20183 wlc_phy_init_radio_regs(pi
, regs_2055
, RADIO_DEFAULT_CORE
);
20186 static void wlc_phy_radio_postinit_2055(struct brcms_phy
*pi
)
20189 and_radio_reg(pi
, RADIO_2055_MASTER_CNTRL1
,
20190 ~(RADIO_2055_JTAGCTRL_MASK
| RADIO_2055_JTAGSYNC_MASK
));
20192 if (((pi
->sh
->sromrev
>= 4)
20193 && !(pi
->sh
->boardflags2
& BFL2_RXBB_INT_REG_DIS
))
20194 || ((pi
->sh
->sromrev
< 4))) {
20195 and_radio_reg(pi
, RADIO_2055_CORE1_RXBB_REGULATOR
, 0x7F);
20196 and_radio_reg(pi
, RADIO_2055_CORE2_RXBB_REGULATOR
, 0x7F);
20199 mod_radio_reg(pi
, RADIO_2055_RRCCAL_N_OPT_SEL
, 0x3F, 0x2C);
20200 write_radio_reg(pi
, RADIO_2055_CAL_MISC
, 0x3C);
20202 and_radio_reg(pi
, RADIO_2055_CAL_MISC
,
20203 ~(RADIO_2055_RRCAL_START
| RADIO_2055_RRCAL_RST_N
));
20205 or_radio_reg(pi
, RADIO_2055_CAL_LPO_CNTRL
, RADIO_2055_CAL_LPO_ENABLE
);
20207 or_radio_reg(pi
, RADIO_2055_CAL_MISC
, RADIO_2055_RRCAL_RST_N
);
20211 or_radio_reg(pi
, RADIO_2055_CAL_MISC
, RADIO_2055_RRCAL_START
);
20213 SPINWAIT(((read_radio_reg(pi
, RADIO_2055_CAL_COUNTER_OUT2
) &
20214 RADIO_2055_RCAL_DONE
) != RADIO_2055_RCAL_DONE
), 2000);
20216 if (WARN((read_radio_reg(pi
, RADIO_2055_CAL_COUNTER_OUT2
) &
20217 RADIO_2055_RCAL_DONE
) != RADIO_2055_RCAL_DONE
,
20218 "HW error: radio calibration1\n"))
20221 and_radio_reg(pi
, RADIO_2055_CAL_LPO_CNTRL
,
20222 ~(RADIO_2055_CAL_LPO_ENABLE
));
20224 wlc_phy_chanspec_set((struct brcms_phy_pub
*) pi
, pi
->radio_chanspec
);
20226 write_radio_reg(pi
, RADIO_2055_CORE1_RXBB_LPF
, 9);
20227 write_radio_reg(pi
, RADIO_2055_CORE2_RXBB_LPF
, 9);
20229 write_radio_reg(pi
, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS
, 0x83);
20230 write_radio_reg(pi
, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS
, 0x83);
20232 mod_radio_reg(pi
, RADIO_2055_CORE1_LNA_GAINBST
,
20233 RADIO_2055_GAINBST_VAL_MASK
, RADIO_2055_GAINBST_CODE
);
20234 mod_radio_reg(pi
, RADIO_2055_CORE2_LNA_GAINBST
,
20235 RADIO_2055_GAINBST_VAL_MASK
, RADIO_2055_GAINBST_CODE
);
20236 if (pi
->nphy_gain_boost
) {
20237 and_radio_reg(pi
, RADIO_2055_CORE1_RXRF_SPC1
,
20238 ~(RADIO_2055_GAINBST_DISABLE
));
20239 and_radio_reg(pi
, RADIO_2055_CORE2_RXRF_SPC1
,
20240 ~(RADIO_2055_GAINBST_DISABLE
));
20242 or_radio_reg(pi
, RADIO_2055_CORE1_RXRF_SPC1
,
20243 RADIO_2055_GAINBST_DISABLE
);
20244 or_radio_reg(pi
, RADIO_2055_CORE2_RXRF_SPC1
,
20245 RADIO_2055_GAINBST_DISABLE
);
20251 void wlc_phy_switch_radio_nphy(struct brcms_phy
*pi
, bool on
)
20254 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
20255 if (!pi
->radio_is_on
) {
20256 wlc_phy_radio_preinit_205x(pi
);
20257 wlc_phy_radio_init_2057(pi
);
20258 wlc_phy_radio_postinit_2057(pi
);
20261 wlc_phy_chanspec_set((struct brcms_phy_pub
*) pi
,
20262 pi
->radio_chanspec
);
20263 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
20264 wlc_phy_radio_preinit_205x(pi
);
20265 wlc_phy_radio_init_2056(pi
);
20266 wlc_phy_radio_postinit_2056(pi
);
20268 wlc_phy_chanspec_set((struct brcms_phy_pub
*) pi
,
20269 pi
->radio_chanspec
);
20271 wlc_phy_radio_preinit_2055(pi
);
20272 wlc_phy_radio_init_2055(pi
);
20273 wlc_phy_radio_postinit_2055(pi
);
20276 pi
->radio_is_on
= true;
20280 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)
20281 && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
20282 and_phy_reg(pi
, 0x78, ~RFCC_CHIP0_PU
);
20283 mod_radio_reg(pi
, RADIO_2056_SYN_COM_PU
, 0x2, 0x0);
20285 write_radio_reg(pi
,
20286 RADIO_2056_TX_PADA_BOOST_TUNE
|
20287 RADIO_2056_TX0
, 0);
20288 write_radio_reg(pi
,
20289 RADIO_2056_TX_PADG_BOOST_TUNE
|
20290 RADIO_2056_TX0
, 0);
20291 write_radio_reg(pi
,
20292 RADIO_2056_TX_PGAA_BOOST_TUNE
|
20293 RADIO_2056_TX0
, 0);
20294 write_radio_reg(pi
,
20295 RADIO_2056_TX_PGAG_BOOST_TUNE
|
20296 RADIO_2056_TX0
, 0);
20298 RADIO_2056_TX_MIXA_BOOST_TUNE
|
20299 RADIO_2056_TX0
, 0xf0, 0);
20300 write_radio_reg(pi
,
20301 RADIO_2056_TX_MIXG_BOOST_TUNE
|
20302 RADIO_2056_TX0
, 0);
20304 write_radio_reg(pi
,
20305 RADIO_2056_TX_PADA_BOOST_TUNE
|
20306 RADIO_2056_TX1
, 0);
20307 write_radio_reg(pi
,
20308 RADIO_2056_TX_PADG_BOOST_TUNE
|
20309 RADIO_2056_TX1
, 0);
20310 write_radio_reg(pi
,
20311 RADIO_2056_TX_PGAA_BOOST_TUNE
|
20312 RADIO_2056_TX1
, 0);
20313 write_radio_reg(pi
,
20314 RADIO_2056_TX_PGAG_BOOST_TUNE
|
20315 RADIO_2056_TX1
, 0);
20317 RADIO_2056_TX_MIXA_BOOST_TUNE
|
20318 RADIO_2056_TX1
, 0xf0, 0);
20319 write_radio_reg(pi
,
20320 RADIO_2056_TX_MIXG_BOOST_TUNE
|
20321 RADIO_2056_TX1
, 0);
20323 pi
->radio_is_on
= false;
20326 if (NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
20327 and_phy_reg(pi
, 0x78, ~RFCC_CHIP0_PU
);
20328 pi
->radio_is_on
= false;
20335 wlc_phy_chan2freq_nphy(struct brcms_phy
*pi
, uint channel
, int *f
,
20336 const struct chan_info_nphy_radio2057
**t0
,
20337 const struct chan_info_nphy_radio205x
**t1
,
20338 const struct chan_info_nphy_radio2057_rev5
**t2
,
20339 const struct chan_info_nphy_2055
**t3
)
20342 const struct chan_info_nphy_radio2057
*chan_info_tbl_p_0
= NULL
;
20343 const struct chan_info_nphy_radio205x
*chan_info_tbl_p_1
= NULL
;
20344 const struct chan_info_nphy_radio2057_rev5
*chan_info_tbl_p_2
= NULL
;
20349 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
20351 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
20353 chan_info_tbl_p_0
= chan_info_nphyrev7_2057_rev4
;
20354 tbl_len
= ARRAY_SIZE(chan_info_nphyrev7_2057_rev4
);
20356 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 8)
20357 || NREV_IS(pi
->pubpi
.phy_rev
, 9)) {
20358 switch (pi
->pubpi
.radiorev
) {
20362 if (pi
->pubpi
.radiover
== 0x0) {
20364 chan_info_tbl_p_2
=
20365 chan_info_nphyrev8_2057_rev5
;
20366 tbl_len
= ARRAY_SIZE(
20367 chan_info_nphyrev8_2057_rev5
);
20369 } else if (pi
->pubpi
.radiover
== 0x1) {
20371 chan_info_tbl_p_2
=
20372 chan_info_nphyrev9_2057_rev5v1
;
20373 tbl_len
= ARRAY_SIZE(
20374 chan_info_nphyrev9_2057_rev5v1
);
20380 chan_info_tbl_p_0
=
20381 chan_info_nphyrev8_2057_rev7
;
20382 tbl_len
= ARRAY_SIZE(
20383 chan_info_nphyrev8_2057_rev7
);
20387 chan_info_tbl_p_0
=
20388 chan_info_nphyrev8_2057_rev8
;
20389 tbl_len
= ARRAY_SIZE(
20390 chan_info_nphyrev8_2057_rev8
);
20396 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 16)) {
20398 chan_info_tbl_p_0
= chan_info_nphyrev8_2057_rev8
;
20399 tbl_len
= ARRAY_SIZE(chan_info_nphyrev8_2057_rev8
);
20404 for (i
= 0; i
< tbl_len
; i
++) {
20405 if (pi
->pubpi
.radiorev
== 5) {
20407 if (chan_info_tbl_p_2
[i
].chan
== channel
)
20411 if (chan_info_tbl_p_0
[i
].chan
== channel
)
20419 if (pi
->pubpi
.radiorev
== 5) {
20420 *t2
= &chan_info_tbl_p_2
[i
];
20421 freq
= chan_info_tbl_p_2
[i
].freq
;
20423 *t0
= &chan_info_tbl_p_0
[i
];
20424 freq
= chan_info_tbl_p_0
[i
].freq
;
20427 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
20428 if (NREV_IS(pi
->pubpi
.phy_rev
, 3)) {
20429 chan_info_tbl_p_1
= chan_info_nphyrev3_2056
;
20430 tbl_len
= ARRAY_SIZE(chan_info_nphyrev3_2056
);
20431 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
20432 chan_info_tbl_p_1
= chan_info_nphyrev4_2056_A1
;
20433 tbl_len
= ARRAY_SIZE(chan_info_nphyrev4_2056_A1
);
20434 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)
20435 || NREV_IS(pi
->pubpi
.phy_rev
, 6)) {
20436 switch (pi
->pubpi
.radiorev
) {
20438 chan_info_tbl_p_1
= chan_info_nphyrev5_2056v5
;
20439 tbl_len
= ARRAY_SIZE(chan_info_nphyrev5_2056v5
);
20442 chan_info_tbl_p_1
= chan_info_nphyrev6_2056v6
;
20443 tbl_len
= ARRAY_SIZE(chan_info_nphyrev6_2056v6
);
20447 chan_info_tbl_p_1
= chan_info_nphyrev5n6_2056v7
;
20449 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7
);
20452 chan_info_tbl_p_1
= chan_info_nphyrev6_2056v8
;
20453 tbl_len
= ARRAY_SIZE(chan_info_nphyrev6_2056v8
);
20456 chan_info_tbl_p_1
= chan_info_nphyrev6_2056v11
;
20457 tbl_len
= ARRAY_SIZE(
20458 chan_info_nphyrev6_2056v11
);
20465 for (i
= 0; i
< tbl_len
; i
++) {
20466 if (chan_info_tbl_p_1
[i
].chan
== channel
)
20473 *t1
= &chan_info_tbl_p_1
[i
];
20474 freq
= chan_info_tbl_p_1
[i
].freq
;
20477 for (i
= 0; i
< ARRAY_SIZE(chan_info_nphy_2055
); i
++)
20478 if (chan_info_nphy_2055
[i
].chan
== channel
)
20481 if (i
>= ARRAY_SIZE(chan_info_nphy_2055
))
20484 *t3
= &chan_info_nphy_2055
[i
];
20485 freq
= chan_info_nphy_2055
[i
].freq
;
20492 *f
= WL_CHAN_FREQ_RANGE_2G
;
20496 u8
wlc_phy_get_chan_freq_range_nphy(struct brcms_phy
*pi
, uint channel
)
20499 const struct chan_info_nphy_radio2057
*t0
= NULL
;
20500 const struct chan_info_nphy_radio205x
*t1
= NULL
;
20501 const struct chan_info_nphy_radio2057_rev5
*t2
= NULL
;
20502 const struct chan_info_nphy_2055
*t3
= NULL
;
20505 channel
= CHSPEC_CHANNEL(pi
->radio_chanspec
);
20507 wlc_phy_chan2freq_nphy(pi
, channel
, &freq
, &t0
, &t1
, &t2
, &t3
);
20509 if (CHSPEC_IS2G(pi
->radio_chanspec
))
20510 return WL_CHAN_FREQ_RANGE_2G
;
20512 if ((freq
>= BASE_LOW_5G_CHAN
) && (freq
< BASE_MID_5G_CHAN
))
20513 return WL_CHAN_FREQ_RANGE_5GL
;
20514 else if ((freq
>= BASE_MID_5G_CHAN
) && (freq
< BASE_HIGH_5G_CHAN
))
20515 return WL_CHAN_FREQ_RANGE_5GM
;
20517 return WL_CHAN_FREQ_RANGE_5GH
;
20521 wlc_phy_chanspec_radio2055_setup(struct brcms_phy
*pi
,
20522 const struct chan_info_nphy_2055
*ci
)
20525 write_radio_reg(pi
, RADIO_2055_PLL_REF
, ci
->RF_pll_ref
);
20526 write_radio_reg(pi
, RADIO_2055_RF_PLL_MOD0
, ci
->RF_rf_pll_mod0
);
20527 write_radio_reg(pi
, RADIO_2055_RF_PLL_MOD1
, ci
->RF_rf_pll_mod1
);
20528 write_radio_reg(pi
, RADIO_2055_VCO_CAP_TAIL
, ci
->RF_vco_cap_tail
);
20530 BRCMS_PHY_WAR_PR51571(pi
);
20532 write_radio_reg(pi
, RADIO_2055_VCO_CAL1
, ci
->RF_vco_cal1
);
20533 write_radio_reg(pi
, RADIO_2055_VCO_CAL2
, ci
->RF_vco_cal2
);
20534 write_radio_reg(pi
, RADIO_2055_PLL_LF_C1
, ci
->RF_pll_lf_c1
);
20535 write_radio_reg(pi
, RADIO_2055_PLL_LF_R1
, ci
->RF_pll_lf_r1
);
20537 BRCMS_PHY_WAR_PR51571(pi
);
20539 write_radio_reg(pi
, RADIO_2055_PLL_LF_C2
, ci
->RF_pll_lf_c2
);
20540 write_radio_reg(pi
, RADIO_2055_LGBUF_CEN_BUF
, ci
->RF_lgbuf_cen_buf
);
20541 write_radio_reg(pi
, RADIO_2055_LGEN_TUNE1
, ci
->RF_lgen_tune1
);
20542 write_radio_reg(pi
, RADIO_2055_LGEN_TUNE2
, ci
->RF_lgen_tune2
);
20544 BRCMS_PHY_WAR_PR51571(pi
);
20546 write_radio_reg(pi
, RADIO_2055_CORE1_LGBUF_A_TUNE
,
20547 ci
->RF_core1_lgbuf_a_tune
);
20548 write_radio_reg(pi
, RADIO_2055_CORE1_LGBUF_G_TUNE
,
20549 ci
->RF_core1_lgbuf_g_tune
);
20550 write_radio_reg(pi
, RADIO_2055_CORE1_RXRF_REG1
, ci
->RF_core1_rxrf_reg1
);
20551 write_radio_reg(pi
, RADIO_2055_CORE1_TX_PGA_PAD_TN
,
20552 ci
->RF_core1_tx_pga_pad_tn
);
20554 BRCMS_PHY_WAR_PR51571(pi
);
20556 write_radio_reg(pi
, RADIO_2055_CORE1_TX_MX_BGTRIM
,
20557 ci
->RF_core1_tx_mx_bgtrim
);
20558 write_radio_reg(pi
, RADIO_2055_CORE2_LGBUF_A_TUNE
,
20559 ci
->RF_core2_lgbuf_a_tune
);
20560 write_radio_reg(pi
, RADIO_2055_CORE2_LGBUF_G_TUNE
,
20561 ci
->RF_core2_lgbuf_g_tune
);
20562 write_radio_reg(pi
, RADIO_2055_CORE2_RXRF_REG1
, ci
->RF_core2_rxrf_reg1
);
20564 BRCMS_PHY_WAR_PR51571(pi
);
20566 write_radio_reg(pi
, RADIO_2055_CORE2_TX_PGA_PAD_TN
,
20567 ci
->RF_core2_tx_pga_pad_tn
);
20568 write_radio_reg(pi
, RADIO_2055_CORE2_TX_MX_BGTRIM
,
20569 ci
->RF_core2_tx_mx_bgtrim
);
20573 write_radio_reg(pi
, RADIO_2055_VCO_CAL10
, 0x05);
20574 write_radio_reg(pi
, RADIO_2055_VCO_CAL10
, 0x45);
20576 BRCMS_PHY_WAR_PR51571(pi
);
20578 write_radio_reg(pi
, RADIO_2055_VCO_CAL10
, 0x65);
20584 wlc_phy_chanspec_radio2056_setup(struct brcms_phy
*pi
,
20585 const struct chan_info_nphy_radio205x
*ci
)
20587 const struct radio_regs
*regs_SYN_2056_ptr
= NULL
;
20589 write_radio_reg(pi
,
20590 RADIO_2056_SYN_PLL_VCOCAL1
| RADIO_2056_SYN
,
20591 ci
->RF_SYN_pll_vcocal1
);
20592 write_radio_reg(pi
, RADIO_2056_SYN_PLL_VCOCAL2
| RADIO_2056_SYN
,
20593 ci
->RF_SYN_pll_vcocal2
);
20594 write_radio_reg(pi
, RADIO_2056_SYN_PLL_REFDIV
| RADIO_2056_SYN
,
20595 ci
->RF_SYN_pll_refdiv
);
20596 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MMD2
| RADIO_2056_SYN
,
20597 ci
->RF_SYN_pll_mmd2
);
20598 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MMD1
| RADIO_2056_SYN
,
20599 ci
->RF_SYN_pll_mmd1
);
20600 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER1
| RADIO_2056_SYN
,
20601 ci
->RF_SYN_pll_loopfilter1
);
20602 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER2
| RADIO_2056_SYN
,
20603 ci
->RF_SYN_pll_loopfilter2
);
20604 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER3
| RADIO_2056_SYN
,
20605 ci
->RF_SYN_pll_loopfilter3
);
20606 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER4
| RADIO_2056_SYN
,
20607 ci
->RF_SYN_pll_loopfilter4
);
20608 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER5
| RADIO_2056_SYN
,
20609 ci
->RF_SYN_pll_loopfilter5
);
20610 write_radio_reg(pi
, RADIO_2056_SYN_RESERVED_ADDR27
| RADIO_2056_SYN
,
20611 ci
->RF_SYN_reserved_addr27
);
20612 write_radio_reg(pi
, RADIO_2056_SYN_RESERVED_ADDR28
| RADIO_2056_SYN
,
20613 ci
->RF_SYN_reserved_addr28
);
20614 write_radio_reg(pi
, RADIO_2056_SYN_RESERVED_ADDR29
| RADIO_2056_SYN
,
20615 ci
->RF_SYN_reserved_addr29
);
20616 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_VCOBUF1
| RADIO_2056_SYN
,
20617 ci
->RF_SYN_logen_VCOBUF1
);
20618 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_MIXER2
| RADIO_2056_SYN
,
20619 ci
->RF_SYN_logen_MIXER2
);
20620 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_BUF3
| RADIO_2056_SYN
,
20621 ci
->RF_SYN_logen_BUF3
);
20622 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_BUF4
| RADIO_2056_SYN
,
20623 ci
->RF_SYN_logen_BUF4
);
20625 write_radio_reg(pi
,
20626 RADIO_2056_RX_LNAA_TUNE
| RADIO_2056_RX0
,
20627 ci
->RF_RX0_lnaa_tune
);
20628 write_radio_reg(pi
, RADIO_2056_RX_LNAG_TUNE
| RADIO_2056_RX0
,
20629 ci
->RF_RX0_lnag_tune
);
20630 write_radio_reg(pi
, RADIO_2056_TX_INTPAA_BOOST_TUNE
| RADIO_2056_TX0
,
20631 ci
->RF_TX0_intpaa_boost_tune
);
20632 write_radio_reg(pi
, RADIO_2056_TX_INTPAG_BOOST_TUNE
| RADIO_2056_TX0
,
20633 ci
->RF_TX0_intpag_boost_tune
);
20634 write_radio_reg(pi
, RADIO_2056_TX_PADA_BOOST_TUNE
| RADIO_2056_TX0
,
20635 ci
->RF_TX0_pada_boost_tune
);
20636 write_radio_reg(pi
, RADIO_2056_TX_PADG_BOOST_TUNE
| RADIO_2056_TX0
,
20637 ci
->RF_TX0_padg_boost_tune
);
20638 write_radio_reg(pi
, RADIO_2056_TX_PGAA_BOOST_TUNE
| RADIO_2056_TX0
,
20639 ci
->RF_TX0_pgaa_boost_tune
);
20640 write_radio_reg(pi
, RADIO_2056_TX_PGAG_BOOST_TUNE
| RADIO_2056_TX0
,
20641 ci
->RF_TX0_pgag_boost_tune
);
20642 write_radio_reg(pi
, RADIO_2056_TX_MIXA_BOOST_TUNE
| RADIO_2056_TX0
,
20643 ci
->RF_TX0_mixa_boost_tune
);
20644 write_radio_reg(pi
, RADIO_2056_TX_MIXG_BOOST_TUNE
| RADIO_2056_TX0
,
20645 ci
->RF_TX0_mixg_boost_tune
);
20647 write_radio_reg(pi
,
20648 RADIO_2056_RX_LNAA_TUNE
| RADIO_2056_RX1
,
20649 ci
->RF_RX1_lnaa_tune
);
20650 write_radio_reg(pi
, RADIO_2056_RX_LNAG_TUNE
| RADIO_2056_RX1
,
20651 ci
->RF_RX1_lnag_tune
);
20652 write_radio_reg(pi
, RADIO_2056_TX_INTPAA_BOOST_TUNE
| RADIO_2056_TX1
,
20653 ci
->RF_TX1_intpaa_boost_tune
);
20654 write_radio_reg(pi
, RADIO_2056_TX_INTPAG_BOOST_TUNE
| RADIO_2056_TX1
,
20655 ci
->RF_TX1_intpag_boost_tune
);
20656 write_radio_reg(pi
, RADIO_2056_TX_PADA_BOOST_TUNE
| RADIO_2056_TX1
,
20657 ci
->RF_TX1_pada_boost_tune
);
20658 write_radio_reg(pi
, RADIO_2056_TX_PADG_BOOST_TUNE
| RADIO_2056_TX1
,
20659 ci
->RF_TX1_padg_boost_tune
);
20660 write_radio_reg(pi
, RADIO_2056_TX_PGAA_BOOST_TUNE
| RADIO_2056_TX1
,
20661 ci
->RF_TX1_pgaa_boost_tune
);
20662 write_radio_reg(pi
, RADIO_2056_TX_PGAG_BOOST_TUNE
| RADIO_2056_TX1
,
20663 ci
->RF_TX1_pgag_boost_tune
);
20664 write_radio_reg(pi
, RADIO_2056_TX_MIXA_BOOST_TUNE
| RADIO_2056_TX1
,
20665 ci
->RF_TX1_mixa_boost_tune
);
20666 write_radio_reg(pi
, RADIO_2056_TX_MIXG_BOOST_TUNE
| RADIO_2056_TX1
,
20667 ci
->RF_TX1_mixg_boost_tune
);
20669 if (NREV_IS(pi
->pubpi
.phy_rev
, 3))
20670 regs_SYN_2056_ptr
= regs_SYN_2056
;
20671 else if (NREV_IS(pi
->pubpi
.phy_rev
, 4))
20672 regs_SYN_2056_ptr
= regs_SYN_2056_A1
;
20674 switch (pi
->pubpi
.radiorev
) {
20676 regs_SYN_2056_ptr
= regs_SYN_2056_rev5
;
20679 regs_SYN_2056_ptr
= regs_SYN_2056_rev6
;
20683 regs_SYN_2056_ptr
= regs_SYN_2056_rev7
;
20686 regs_SYN_2056_ptr
= regs_SYN_2056_rev8
;
20689 regs_SYN_2056_ptr
= regs_SYN_2056_rev11
;
20693 if (CHSPEC_IS2G(pi
->radio_chanspec
))
20694 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
|
20696 (u16
) regs_SYN_2056_ptr
[0x49 - 2].init_g
);
20698 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
|
20700 (u16
) regs_SYN_2056_ptr
[0x49 - 2].init_a
);
20702 if (pi
->sh
->boardflags2
& BFL2_GPLL_WAR
) {
20703 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
20704 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER1
|
20705 RADIO_2056_SYN
, 0x1f);
20706 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER2
|
20707 RADIO_2056_SYN
, 0x1f);
20709 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM4716
) ||
20710 (pi
->sh
->chip
== BCMA_CHIP_ID_BCM47162
)) {
20711 write_radio_reg(pi
,
20712 RADIO_2056_SYN_PLL_LOOPFILTER4
|
20713 RADIO_2056_SYN
, 0x14);
20714 write_radio_reg(pi
,
20715 RADIO_2056_SYN_PLL_CP2
|
20716 RADIO_2056_SYN
, 0x00);
20718 write_radio_reg(pi
,
20719 RADIO_2056_SYN_PLL_LOOPFILTER4
|
20720 RADIO_2056_SYN
, 0xb);
20721 write_radio_reg(pi
,
20722 RADIO_2056_SYN_PLL_CP2
|
20723 RADIO_2056_SYN
, 0x14);
20728 if ((pi
->sh
->boardflags2
& BFL2_GPLL_WAR2
) &&
20729 (CHSPEC_IS2G(pi
->radio_chanspec
))) {
20730 write_radio_reg(pi
,
20731 RADIO_2056_SYN_PLL_LOOPFILTER1
| RADIO_2056_SYN
,
20733 write_radio_reg(pi
,
20734 RADIO_2056_SYN_PLL_LOOPFILTER2
| RADIO_2056_SYN
,
20736 write_radio_reg(pi
,
20737 RADIO_2056_SYN_PLL_LOOPFILTER4
| RADIO_2056_SYN
,
20739 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
| RADIO_2056_SYN
,
20743 if (pi
->sh
->boardflags2
& BFL2_APLL_WAR
) {
20744 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
20745 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER1
|
20746 RADIO_2056_SYN
, 0x1f);
20747 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER2
|
20748 RADIO_2056_SYN
, 0x1f);
20749 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER4
|
20750 RADIO_2056_SYN
, 0x5);
20751 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
|
20752 RADIO_2056_SYN
, 0xc);
20756 if (PHY_IPA(pi
) && CHSPEC_IS2G(pi
->radio_chanspec
)) {
20757 u16 pag_boost_tune
;
20758 u16 padg_boost_tune
;
20759 u16 pgag_boost_tune
;
20760 u16 mixg_boost_tune
;
20761 u16 bias
, cascbias
;
20764 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
20766 if (NREV_GE(pi
->pubpi
.phy_rev
, 5)) {
20768 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20771 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM4716
) ||
20772 (pi
->sh
->chip
== BCMA_CHIP_ID_BCM47162
)) {
20775 pag_boost_tune
= 0x5;
20776 pgag_boost_tune
= 0x33;
20777 padg_boost_tune
= 0x77;
20778 mixg_boost_tune
= 0x55;
20783 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM43224
||
20784 pi
->sh
->chip
== BCMA_CHIP_ID_BCM43225
) &&
20785 pi
->sh
->chippkg
== BCMA_PKG_ID_BCM43224_FAB_SMIC
) {
20790 pag_boost_tune
= 0x4;
20791 pgag_boost_tune
= 0x03;
20792 padg_boost_tune
= 0x77;
20793 mixg_boost_tune
= 0x65;
20796 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20797 INTPAG_IMAIN_STAT
, bias
);
20798 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20799 INTPAG_IAUX_STAT
, bias
);
20800 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20801 INTPAG_CASCBIAS
, cascbias
);
20803 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20806 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20809 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20812 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20817 bias
= (pi
->bw
== WL_CHANSPEC_BW_40
) ?
20820 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20821 INTPAG_IMAIN_STAT
, bias
);
20822 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20823 INTPAG_IAUX_STAT
, bias
);
20824 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20825 INTPAG_CASCBIAS
, 0x30);
20827 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, PA_SPARE1
,
20832 if (PHY_IPA(pi
) && NREV_IS(pi
->pubpi
.phy_rev
, 6)
20833 && CHSPEC_IS5G(pi
->radio_chanspec
)) {
20834 u16 paa_boost_tune
;
20835 u16 pada_boost_tune
;
20836 u16 pgaa_boost_tune
;
20837 u16 mixa_boost_tune
;
20838 u16 freq
, pabias
, cascbias
;
20841 freq
= CHAN5G_FREQ(CHSPEC_CHANNEL(pi
->radio_chanspec
));
20845 paa_boost_tune
= 0xa;
20846 pada_boost_tune
= 0x77;
20847 pgaa_boost_tune
= 0xf;
20848 mixa_boost_tune
= 0xf;
20849 } else if (freq
< 5340) {
20851 paa_boost_tune
= 0x8;
20852 pada_boost_tune
= 0x77;
20853 pgaa_boost_tune
= 0xfb;
20854 mixa_boost_tune
= 0xf;
20855 } else if (freq
< 5650) {
20857 paa_boost_tune
= 0x0;
20858 pada_boost_tune
= 0x77;
20859 pgaa_boost_tune
= 0xb;
20860 mixa_boost_tune
= 0xf;
20863 paa_boost_tune
= 0x0;
20864 pada_boost_tune
= 0x77;
20866 pgaa_boost_tune
= -(int)(freq
- 18) / 36 + 168;
20868 pgaa_boost_tune
= 6;
20870 mixa_boost_tune
= 0xf;
20873 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
20874 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20875 INTPAA_BOOST_TUNE
, paa_boost_tune
);
20876 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20877 PADA_BOOST_TUNE
, pada_boost_tune
);
20878 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20879 PGAA_BOOST_TUNE
, pgaa_boost_tune
);
20880 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20881 MIXA_BOOST_TUNE
, mixa_boost_tune
);
20883 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20885 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20888 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20889 PADA_CASCBIAS
, 0x3);
20893 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM43224
||
20894 pi
->sh
->chip
== BCMA_CHIP_ID_BCM43225
) &&
20895 pi
->sh
->chippkg
== BCMA_PKG_ID_BCM43224_FAB_SMIC
)
20898 pabias
= (pi
->phy_pabias
== 0) ? 0x30 : pi
->phy_pabias
;
20900 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20901 INTPAA_IAUX_STAT
, pabias
);
20902 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20903 INTPAA_IMAIN_STAT
, pabias
);
20904 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
20905 INTPAA_CASCBIAS
, cascbias
);
20911 wlc_phy_radio205x_vcocal_nphy(pi
);
20914 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy
*pi
)
20916 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
20917 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_EN
, 0x01, 0x0);
20918 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x04, 0x0);
20919 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x04,
20921 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_EN
, 0x01, 0x01);
20922 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
20923 write_radio_reg(pi
, RADIO_2056_SYN_PLL_VCOCAL12
, 0x0);
20924 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x38);
20925 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x18);
20926 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x38);
20927 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x39);
20934 wlc_phy_chanspec_radio2057_setup(
20935 struct brcms_phy
*pi
,
20936 const struct chan_info_nphy_radio2057
*ci
,
20937 const struct chan_info_nphy_radio2057_rev5
*
20941 u16 txmix2g_tune_boost_pu
= 0;
20942 u16 pad2g_tune_pus
= 0;
20944 if (pi
->pubpi
.radiorev
== 5) {
20946 write_radio_reg(pi
,
20947 RADIO_2057_VCOCAL_COUNTVAL0
,
20948 ci2
->RF_vcocal_countval0
);
20949 write_radio_reg(pi
, RADIO_2057_VCOCAL_COUNTVAL1
,
20950 ci2
->RF_vcocal_countval1
);
20951 write_radio_reg(pi
, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE
,
20952 ci2
->RF_rfpll_refmaster_sparextalsize
);
20953 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
20954 ci2
->RF_rfpll_loopfilter_r1
);
20955 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
20956 ci2
->RF_rfpll_loopfilter_c2
);
20957 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
20958 ci2
->RF_rfpll_loopfilter_c1
);
20959 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
,
20960 ci2
->RF_cp_kpd_idac
);
20961 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD0
, ci2
->RF_rfpll_mmd0
);
20962 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD1
, ci2
->RF_rfpll_mmd1
);
20963 write_radio_reg(pi
,
20964 RADIO_2057_VCOBUF_TUNE
, ci2
->RF_vcobuf_tune
);
20965 write_radio_reg(pi
,
20966 RADIO_2057_LOGEN_MX2G_TUNE
,
20967 ci2
->RF_logen_mx2g_tune
);
20968 write_radio_reg(pi
, RADIO_2057_LOGEN_INDBUF2G_TUNE
,
20969 ci2
->RF_logen_indbuf2g_tune
);
20971 write_radio_reg(pi
,
20972 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0
,
20973 ci2
->RF_txmix2g_tune_boost_pu_core0
);
20974 write_radio_reg(pi
,
20975 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
20976 ci2
->RF_pad2g_tune_pus_core0
);
20977 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE0
,
20978 ci2
->RF_lna2g_tune_core0
);
20980 write_radio_reg(pi
,
20981 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1
,
20982 ci2
->RF_txmix2g_tune_boost_pu_core1
);
20983 write_radio_reg(pi
,
20984 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
20985 ci2
->RF_pad2g_tune_pus_core1
);
20986 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE1
,
20987 ci2
->RF_lna2g_tune_core1
);
20991 write_radio_reg(pi
,
20992 RADIO_2057_VCOCAL_COUNTVAL0
,
20993 ci
->RF_vcocal_countval0
);
20994 write_radio_reg(pi
, RADIO_2057_VCOCAL_COUNTVAL1
,
20995 ci
->RF_vcocal_countval1
);
20996 write_radio_reg(pi
, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE
,
20997 ci
->RF_rfpll_refmaster_sparextalsize
);
20998 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
20999 ci
->RF_rfpll_loopfilter_r1
);
21000 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
21001 ci
->RF_rfpll_loopfilter_c2
);
21002 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
21003 ci
->RF_rfpll_loopfilter_c1
);
21004 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, ci
->RF_cp_kpd_idac
);
21005 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD0
, ci
->RF_rfpll_mmd0
);
21006 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD1
, ci
->RF_rfpll_mmd1
);
21007 write_radio_reg(pi
, RADIO_2057_VCOBUF_TUNE
, ci
->RF_vcobuf_tune
);
21008 write_radio_reg(pi
,
21009 RADIO_2057_LOGEN_MX2G_TUNE
,
21010 ci
->RF_logen_mx2g_tune
);
21011 write_radio_reg(pi
, RADIO_2057_LOGEN_MX5G_TUNE
,
21012 ci
->RF_logen_mx5g_tune
);
21013 write_radio_reg(pi
, RADIO_2057_LOGEN_INDBUF2G_TUNE
,
21014 ci
->RF_logen_indbuf2g_tune
);
21015 write_radio_reg(pi
, RADIO_2057_LOGEN_INDBUF5G_TUNE
,
21016 ci
->RF_logen_indbuf5g_tune
);
21018 write_radio_reg(pi
,
21019 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0
,
21020 ci
->RF_txmix2g_tune_boost_pu_core0
);
21021 write_radio_reg(pi
,
21022 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
21023 ci
->RF_pad2g_tune_pus_core0
);
21024 write_radio_reg(pi
, RADIO_2057_PGA_BOOST_TUNE_CORE0
,
21025 ci
->RF_pga_boost_tune_core0
);
21026 write_radio_reg(pi
, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0
,
21027 ci
->RF_txmix5g_boost_tune_core0
);
21028 write_radio_reg(pi
, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0
,
21029 ci
->RF_pad5g_tune_misc_pus_core0
);
21030 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE0
,
21031 ci
->RF_lna2g_tune_core0
);
21032 write_radio_reg(pi
, RADIO_2057_LNA5G_TUNE_CORE0
,
21033 ci
->RF_lna5g_tune_core0
);
21035 write_radio_reg(pi
,
21036 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1
,
21037 ci
->RF_txmix2g_tune_boost_pu_core1
);
21038 write_radio_reg(pi
,
21039 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
21040 ci
->RF_pad2g_tune_pus_core1
);
21041 write_radio_reg(pi
, RADIO_2057_PGA_BOOST_TUNE_CORE1
,
21042 ci
->RF_pga_boost_tune_core1
);
21043 write_radio_reg(pi
, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1
,
21044 ci
->RF_txmix5g_boost_tune_core1
);
21045 write_radio_reg(pi
, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1
,
21046 ci
->RF_pad5g_tune_misc_pus_core1
);
21047 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE1
,
21048 ci
->RF_lna2g_tune_core1
);
21049 write_radio_reg(pi
, RADIO_2057_LNA5G_TUNE_CORE1
,
21050 ci
->RF_lna5g_tune_core1
);
21053 if ((pi
->pubpi
.radiorev
<= 4) || (pi
->pubpi
.radiorev
== 6)) {
21055 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
21056 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
21058 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x3f);
21059 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
21061 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
21064 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
21066 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x3f);
21067 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
21069 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
21072 } else if ((pi
->pubpi
.radiorev
== 5) || (pi
->pubpi
.radiorev
== 7) ||
21073 (pi
->pubpi
.radiorev
== 8)) {
21075 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
21076 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
21078 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x30);
21079 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
21081 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
21084 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
21086 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x3f);
21087 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
21089 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
21095 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
21097 if (pi
->pubpi
.radiorev
== 3)
21098 txmix2g_tune_boost_pu
= 0x6b;
21100 if (pi
->pubpi
.radiorev
== 5)
21101 pad2g_tune_pus
= 0x73;
21104 if (pi
->pubpi
.radiorev
!= 5) {
21105 pad2g_tune_pus
= 0x3;
21107 txmix2g_tune_boost_pu
= 0x61;
21111 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
21113 if (txmix2g_tune_boost_pu
!= 0)
21114 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
21115 TXMIX2G_TUNE_BOOST_PU
,
21116 txmix2g_tune_boost_pu
);
21118 if (pad2g_tune_pus
!= 0)
21119 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
21127 wlc_phy_radio205x_vcocal_nphy(pi
);
21131 wlc_phy_chanspec_nphy_setup(struct brcms_phy
*pi
, u16 chanspec
,
21132 const struct nphy_sfo_cfg
*ci
)
21136 val
= read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
;
21137 if (CHSPEC_IS5G(chanspec
) && !val
) {
21139 val
= bcma_read16(pi
->d11core
, D11REGOFFS(psm_phy_hdr_param
));
21140 bcma_write16(pi
->d11core
, D11REGOFFS(psm_phy_hdr_param
),
21141 (val
| MAC_PHY_FORCE_CLK
));
21143 or_phy_reg(pi
, (NPHY_TO_BPHY_OFF
+ BPHY_BB_CONFIG
),
21144 (BBCFG_RESETCCA
| BBCFG_RESETRX
));
21146 bcma_write16(pi
->d11core
, D11REGOFFS(psm_phy_hdr_param
), val
);
21148 or_phy_reg(pi
, 0x09, NPHY_BandControl_currentBand
);
21149 } else if (!CHSPEC_IS5G(chanspec
) && val
) {
21151 and_phy_reg(pi
, 0x09, ~NPHY_BandControl_currentBand
);
21153 val
= bcma_read16(pi
->d11core
, D11REGOFFS(psm_phy_hdr_param
));
21154 bcma_write16(pi
->d11core
, D11REGOFFS(psm_phy_hdr_param
),
21155 (val
| MAC_PHY_FORCE_CLK
));
21157 and_phy_reg(pi
, (NPHY_TO_BPHY_OFF
+ BPHY_BB_CONFIG
),
21158 (u16
) (~(BBCFG_RESETCCA
| BBCFG_RESETRX
)));
21160 bcma_write16(pi
->d11core
, D11REGOFFS(psm_phy_hdr_param
), val
);
21163 write_phy_reg(pi
, 0x1ce, ci
->PHY_BW1a
);
21164 write_phy_reg(pi
, 0x1cf, ci
->PHY_BW2
);
21165 write_phy_reg(pi
, 0x1d0, ci
->PHY_BW3
);
21167 write_phy_reg(pi
, 0x1d1, ci
->PHY_BW4
);
21168 write_phy_reg(pi
, 0x1d2, ci
->PHY_BW5
);
21169 write_phy_reg(pi
, 0x1d3, ci
->PHY_BW6
);
21171 if (CHSPEC_CHANNEL(pi
->radio_chanspec
) == 14) {
21172 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_ofdm_en
, 0);
21174 or_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_TEST
, 0x800);
21176 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_ofdm_en
,
21177 NPHY_ClassifierCtrl_ofdm_en
);
21179 if (CHSPEC_IS2G(chanspec
))
21180 and_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_TEST
, ~0x840);
21183 if (pi
->nphy_txpwrctrl
== PHY_TPC_HW_OFF
)
21184 wlc_phy_txpwr_fixpower_nphy(pi
);
21186 if (NREV_LT(pi
->pubpi
.phy_rev
, 3))
21187 wlc_phy_adjust_lnagaintbl_nphy(pi
);
21189 wlc_phy_txlpfbw_nphy(pi
);
21191 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)
21192 && (pi
->phy_spuravoid
!= SPURAVOID_DISABLE
)) {
21195 val
= CHSPEC_CHANNEL(chanspec
);
21196 if (!CHSPEC_IS40(pi
->radio_chanspec
)) {
21197 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21198 if ((val
== 13) || (val
== 14) || (val
== 153))
21200 } else if (((val
>= 5) && (val
<= 8)) || (val
== 13)
21204 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21207 } else if (pi
->nphy_aband_spurwar_en
&&
21208 ((val
== 38) || (val
== 102) || (val
== 118))) {
21209 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM4716
)
21210 && (pi
->sh
->chippkg
== BCMA_PKG_ID_BCM4717
)) {
21217 if (pi
->phy_spuravoid
== SPURAVOID_FORCEON
)
21220 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM4716
) ||
21221 (pi
->sh
->chip
== BCMA_CHIP_ID_BCM43225
)) {
21222 bcma_pmu_spuravoid_pllupdate(&pi
->d11core
->bus
->drv_cc
,
21225 wlapi_bmac_core_phypll_ctl(pi
->sh
->physhim
, false);
21226 bcma_pmu_spuravoid_pllupdate(&pi
->d11core
->bus
->drv_cc
,
21228 wlapi_bmac_core_phypll_ctl(pi
->sh
->physhim
, true);
21231 if ((pi
->sh
->chip
== BCMA_CHIP_ID_BCM43224
) ||
21232 (pi
->sh
->chip
== BCMA_CHIP_ID_BCM43225
)) {
21233 if (spuravoid
== 1) {
21234 bcma_write16(pi
->d11core
,
21235 D11REGOFFS(tsf_clk_frac_l
),
21237 bcma_write16(pi
->d11core
,
21238 D11REGOFFS(tsf_clk_frac_h
), 0x8);
21240 bcma_write16(pi
->d11core
,
21241 D11REGOFFS(tsf_clk_frac_l
),
21243 bcma_write16(pi
->d11core
,
21244 D11REGOFFS(tsf_clk_frac_h
), 0x8);
21248 if (!((pi
->sh
->chip
== BCMA_CHIP_ID_BCM4716
) ||
21249 (pi
->sh
->chip
== BCMA_CHIP_ID_BCM47162
)))
21250 wlapi_bmac_core_phypll_reset(pi
->sh
->physhim
);
21252 mod_phy_reg(pi
, 0x01, (0x1 << 15),
21253 ((spuravoid
> 0) ? (0x1 << 15) : 0));
21255 wlc_phy_resetcca_nphy(pi
);
21257 pi
->phy_isspuravoid
= (spuravoid
> 0);
21260 if (NREV_LT(pi
->pubpi
.phy_rev
, 7))
21261 write_phy_reg(pi
, 0x17e, 0x3830);
21263 wlc_phy_spurwar_nphy(pi
);
21266 void wlc_phy_chanspec_set_nphy(struct brcms_phy
*pi
, u16 chanspec
)
21269 const struct chan_info_nphy_radio2057
*t0
= NULL
;
21270 const struct chan_info_nphy_radio205x
*t1
= NULL
;
21271 const struct chan_info_nphy_radio2057_rev5
*t2
= NULL
;
21272 const struct chan_info_nphy_2055
*t3
= NULL
;
21274 if (!wlc_phy_chan2freq_nphy
21275 (pi
, CHSPEC_CHANNEL(chanspec
), &freq
, &t0
, &t1
, &t2
, &t3
))
21278 wlc_phy_chanspec_radio_set((struct brcms_phy_pub
*) pi
, chanspec
);
21280 if (CHSPEC_BW(chanspec
) != pi
->bw
)
21281 wlapi_bmac_bw_set(pi
->sh
->physhim
, CHSPEC_BW(chanspec
));
21283 if (CHSPEC_IS40(chanspec
)) {
21284 if (CHSPEC_SB_UPPER(chanspec
)) {
21285 or_phy_reg(pi
, 0xa0, BPHY_BAND_SEL_UP20
);
21286 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
21287 or_phy_reg(pi
, 0x310, PRIM_SEL_UP20
);
21289 and_phy_reg(pi
, 0xa0, ~BPHY_BAND_SEL_UP20
);
21290 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
21291 and_phy_reg(pi
, 0x310,
21292 (~PRIM_SEL_UP20
& 0xffff));
21296 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
21297 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21299 if ((pi
->pubpi
.radiorev
<= 4)
21300 || (pi
->pubpi
.radiorev
== 6)) {
21301 mod_radio_reg(pi
, RADIO_2057_TIA_CONFIG_CORE0
,
21303 (CHSPEC_IS5G(chanspec
) ? (1 << 1)
21305 mod_radio_reg(pi
, RADIO_2057_TIA_CONFIG_CORE1
,
21307 (CHSPEC_IS5G(chanspec
) ? (1 << 1)
21311 wlc_phy_chanspec_radio2057_setup(pi
, t0
, t2
);
21312 wlc_phy_chanspec_nphy_setup(pi
, chanspec
,
21313 (pi
->pubpi
.radiorev
== 5) ?
21314 (const struct nphy_sfo_cfg
*)&(t2
->PHY_BW1a
) :
21315 (const struct nphy_sfo_cfg
*)&(t0
->PHY_BW1a
));
21320 RADIO_2056_SYN_COM_CTRL
| RADIO_2056_SYN
,
21322 (CHSPEC_IS5G(chanspec
) ? (0x1 << 2) : 0));
21323 wlc_phy_chanspec_radio2056_setup(pi
, t1
);
21325 wlc_phy_chanspec_nphy_setup(pi
, chanspec
,
21326 (const struct nphy_sfo_cfg
*) &(t1
->PHY_BW1a
));
21331 mod_radio_reg(pi
, RADIO_2055_MASTER_CNTRL1
, 0x70,
21332 (CHSPEC_IS5G(chanspec
) ? (0x02 << 4)
21335 wlc_phy_chanspec_radio2055_setup(pi
, t3
);
21336 wlc_phy_chanspec_nphy_setup(pi
, chanspec
,
21337 (const struct nphy_sfo_cfg
*)
21343 void wlc_phy_antsel_init(struct brcms_phy_pub
*ppi
, bool lut_init
)
21345 struct brcms_phy
*pi
= (struct brcms_phy
*) ppi
;
21349 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
21352 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
21353 u16 v0
= 0x211, v1
= 0x222, v2
= 0x144, v3
= 0x188;
21358 if (pi
->srom_fem2g
.antswctrllut
== 0) {
21359 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21361 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21363 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21365 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21369 if (pi
->srom_fem5g
.antswctrllut
== 0) {
21370 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21372 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21374 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21376 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
21381 write_phy_reg(pi
, 0xc8, 0x0);
21382 write_phy_reg(pi
, 0xc9, 0x0);
21384 bcma_chipco_gpio_control(&pi
->d11core
->bus
->drv_cc
, mask
, mask
);
21386 mc
= bcma_read32(pi
->d11core
, D11REGOFFS(maccontrol
));
21387 mc
&= ~MCTL_GPOUT_SEL_MASK
;
21388 bcma_write32(pi
->d11core
, D11REGOFFS(maccontrol
), mc
);
21390 bcma_set16(pi
->d11core
, D11REGOFFS(psm_gpio_oe
), mask
);
21392 bcma_mask16(pi
->d11core
, D11REGOFFS(psm_gpio_out
), ~mask
);
21395 write_phy_reg(pi
, 0xf8, 0x02d8);
21396 write_phy_reg(pi
, 0xf9, 0x0301);
21397 write_phy_reg(pi
, 0xfa, 0x02d8);
21398 write_phy_reg(pi
, 0xfb, 0x0301);
21403 u16
wlc_phy_classifier_nphy(struct brcms_phy
*pi
, u16 mask
, u16 val
)
21405 u16 curr_ctl
, new_ctl
;
21406 bool suspended
= false;
21408 if (D11REV_IS(pi
->sh
->corerev
, 16)) {
21409 suspended
= (bcma_read32(pi
->d11core
, D11REGOFFS(maccontrol
)) &
21410 MCTL_EN_MAC
) ? false : true;
21412 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
21415 curr_ctl
= read_phy_reg(pi
, 0xb0) & (0x7 << 0);
21417 new_ctl
= (curr_ctl
& (~mask
)) | (val
& mask
);
21419 mod_phy_reg(pi
, 0xb0, (0x7 << 0), new_ctl
);
21421 if (D11REV_IS(pi
->sh
->corerev
, 16) && !suspended
)
21422 wlapi_enable_mac(pi
->sh
->physhim
);
21427 void wlc_phy_force_rfseq_nphy(struct brcms_phy
*pi
, u8 cmd
)
21429 u16 trigger_mask
, status_mask
;
21430 u16 orig_RfseqCoreActv
;
21433 case NPHY_RFSEQ_RX2TX
:
21434 trigger_mask
= NPHY_RfseqTrigger_rx2tx
;
21435 status_mask
= NPHY_RfseqStatus_rx2tx
;
21437 case NPHY_RFSEQ_TX2RX
:
21438 trigger_mask
= NPHY_RfseqTrigger_tx2rx
;
21439 status_mask
= NPHY_RfseqStatus_tx2rx
;
21441 case NPHY_RFSEQ_RESET2RX
:
21442 trigger_mask
= NPHY_RfseqTrigger_reset2rx
;
21443 status_mask
= NPHY_RfseqStatus_reset2rx
;
21445 case NPHY_RFSEQ_UPDATEGAINH
:
21446 trigger_mask
= NPHY_RfseqTrigger_updategainh
;
21447 status_mask
= NPHY_RfseqStatus_updategainh
;
21449 case NPHY_RFSEQ_UPDATEGAINL
:
21450 trigger_mask
= NPHY_RfseqTrigger_updategainl
;
21451 status_mask
= NPHY_RfseqStatus_updategainl
;
21453 case NPHY_RFSEQ_UPDATEGAINU
:
21454 trigger_mask
= NPHY_RfseqTrigger_updategainu
;
21455 status_mask
= NPHY_RfseqStatus_updategainu
;
21461 orig_RfseqCoreActv
= read_phy_reg(pi
, 0xa1);
21462 or_phy_reg(pi
, 0xa1,
21463 (NPHY_RfseqMode_CoreActv_override
|
21464 NPHY_RfseqMode_Trigger_override
));
21465 or_phy_reg(pi
, 0xa3, trigger_mask
);
21466 SPINWAIT((read_phy_reg(pi
, 0xa4) & status_mask
), 200000);
21467 write_phy_reg(pi
, 0xa1, orig_RfseqCoreActv
);
21468 WARN(read_phy_reg(pi
, 0xa4) & status_mask
, "HW error in rf");
21472 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy
*pi
, u16 cmd
, u16 value
,
21473 u8 core_mask
, u8 off
)
21475 u16 rfmxgain
= 0, lpfgain
= 0;
21478 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21481 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu
:
21482 wlc_phy_rfctrl_override_nphy_rev7(
21484 value
, core_mask
, off
,
21485 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21486 wlc_phy_rfctrl_override_nphy_rev7(
21487 pi
, (0x1 << 4), value
,
21489 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21490 wlc_phy_rfctrl_override_nphy_rev7(
21491 pi
, (0x1 << 3), value
,
21493 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21495 case NPHY_REV7_RfctrlOverride_cmd_rx_pu
:
21496 wlc_phy_rfctrl_override_nphy_rev7(
21498 value
, core_mask
, off
,
21499 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21500 wlc_phy_rfctrl_override_nphy_rev7(
21501 pi
, (0x1 << 1), value
,
21503 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21504 wlc_phy_rfctrl_override_nphy_rev7(
21505 pi
, (0x1 << 0), value
,
21507 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21508 wlc_phy_rfctrl_override_nphy_rev7(
21509 pi
, (0x1 << 1), value
,
21511 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
21512 wlc_phy_rfctrl_override_nphy_rev7(
21513 pi
, (0x1 << 11), 0,
21515 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21517 case NPHY_REV7_RfctrlOverride_cmd_tx_pu
:
21518 wlc_phy_rfctrl_override_nphy_rev7(
21520 value
, core_mask
, off
,
21521 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21522 wlc_phy_rfctrl_override_nphy_rev7(
21523 pi
, (0x1 << 1), value
,
21525 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21526 wlc_phy_rfctrl_override_nphy_rev7(
21527 pi
, (0x1 << 0), value
,
21529 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
21530 wlc_phy_rfctrl_override_nphy_rev7(
21531 pi
, (0x1 << 2), value
,
21533 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
21534 wlc_phy_rfctrl_override_nphy_rev7(
21535 pi
, (0x1 << 11), 1,
21537 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
21539 case NPHY_REV7_RfctrlOverride_cmd_rxgain
:
21540 rfmxgain
= value
& 0x000ff;
21541 lpfgain
= value
& 0x0ff00;
21542 lpfgain
= lpfgain
>> 8;
21544 wlc_phy_rfctrl_override_nphy_rev7(
21546 rfmxgain
, core_mask
,
21548 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21549 wlc_phy_rfctrl_override_nphy_rev7(
21551 lpfgain
, core_mask
,
21553 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21555 case NPHY_REV7_RfctrlOverride_cmd_txgain
:
21556 tgain
= value
& 0x7fff;
21557 lpfgain
= value
& 0x8000;
21558 lpfgain
= lpfgain
>> 14;
21560 wlc_phy_rfctrl_override_nphy_rev7(
21562 tgain
, core_mask
, off
,
21563 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21564 wlc_phy_rfctrl_override_nphy_rev7(
21566 lpfgain
, core_mask
,
21568 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21575 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy
*pi
, u16 scale
, s8 offset
,
21576 u8 coresel
, u8 rail
, u8 rssi_type
)
21580 offset
= (offset
> NPHY_RSSICAL_MAXREAD
) ?
21581 NPHY_RSSICAL_MAXREAD
: offset
;
21582 offset
= (offset
< (-NPHY_RSSICAL_MAXREAD
- 1)) ?
21583 -NPHY_RSSICAL_MAXREAD
- 1 : offset
;
21585 valuetostuff
= ((scale
& 0x3f) << 8) | (offset
& 0x3f);
21587 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21588 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21589 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_NB
))
21590 write_phy_reg(pi
, 0x1a6, valuetostuff
);
21592 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21593 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21594 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_NB
))
21595 write_phy_reg(pi
, 0x1ac, valuetostuff
);
21597 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21598 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21599 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_NB
))
21600 write_phy_reg(pi
, 0x1b2, valuetostuff
);
21602 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21603 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21604 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_NB
))
21605 write_phy_reg(pi
, 0x1b8, valuetostuff
);
21607 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21608 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21609 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W1
))
21610 write_phy_reg(pi
, 0x1a4, valuetostuff
);
21612 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21613 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21614 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W1
))
21615 write_phy_reg(pi
, 0x1aa, valuetostuff
);
21617 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21618 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21619 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W1
))
21620 write_phy_reg(pi
, 0x1b0, valuetostuff
);
21622 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21623 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21624 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W1
))
21625 write_phy_reg(pi
, 0x1b6, valuetostuff
);
21627 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21628 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21629 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W2
))
21630 write_phy_reg(pi
, 0x1a5, valuetostuff
);
21631 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21632 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21633 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W2
))
21634 write_phy_reg(pi
, 0x1ab, valuetostuff
);
21636 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21637 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21638 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W2
))
21639 write_phy_reg(pi
, 0x1b1, valuetostuff
);
21641 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21642 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21643 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W2
))
21644 write_phy_reg(pi
, 0x1b7, valuetostuff
);
21646 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21647 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21648 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_TBD
))
21649 write_phy_reg(pi
, 0x1a7, valuetostuff
);
21650 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21651 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21652 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_TBD
))
21653 write_phy_reg(pi
, 0x1ad, valuetostuff
);
21654 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21655 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21656 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_TBD
))
21657 write_phy_reg(pi
, 0x1b3, valuetostuff
);
21658 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21659 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21660 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_TBD
))
21661 write_phy_reg(pi
, 0x1b9, valuetostuff
);
21663 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21664 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21665 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_IQ
))
21666 write_phy_reg(pi
, 0x1a8, valuetostuff
);
21668 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21669 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21670 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_IQ
))
21671 write_phy_reg(pi
, 0x1ae, valuetostuff
);
21673 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21674 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21675 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_IQ
))
21676 write_phy_reg(pi
, 0x1b4, valuetostuff
);
21678 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21679 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21680 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_IQ
))
21681 write_phy_reg(pi
, 0x1ba, valuetostuff
);
21683 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21684 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21685 (rssi_type
== NPHY_RSSI_SEL_TSSI_2G
))
21686 write_phy_reg(pi
, 0x1a9, valuetostuff
);
21687 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21688 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21689 (rssi_type
== NPHY_RSSI_SEL_TSSI_2G
))
21690 write_phy_reg(pi
, 0x1b5, valuetostuff
);
21692 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
21693 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21694 (rssi_type
== NPHY_RSSI_SEL_TSSI_5G
))
21695 write_phy_reg(pi
, 0x1af, valuetostuff
);
21697 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
21698 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
21699 (rssi_type
== NPHY_RSSI_SEL_TSSI_5G
))
21700 write_phy_reg(pi
, 0x1bb, valuetostuff
);
21703 static void brcms_phy_wr_tx_mux(struct brcms_phy
*pi
, u8 core
)
21706 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
21707 write_radio_reg(pi
,
21708 ((core
== PHY_CORE_0
) ?
21709 RADIO_2057_TX0_TX_SSI_MUX
:
21710 RADIO_2057_TX1_TX_SSI_MUX
),
21711 (CHSPEC_IS5G(pi
->radio_chanspec
) ?
21714 write_radio_reg(pi
,
21715 RADIO_2056_TX_TX_SSI_MUX
|
21716 ((core
== PHY_CORE_0
) ?
21717 RADIO_2056_TX0
: RADIO_2056_TX1
),
21718 (CHSPEC_IS5G(pi
->radio_chanspec
) ?
21721 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21722 write_radio_reg(pi
,
21723 ((core
== PHY_CORE_0
) ?
21724 RADIO_2057_TX0_TX_SSI_MUX
:
21725 RADIO_2057_TX1_TX_SSI_MUX
),
21728 if (pi
->pubpi
.radioid
== BCM2057_ID
)
21729 write_radio_reg(pi
,
21730 RADIO_2057_IQTEST_SEL_PU
, 0x1);
21733 write_radio_reg(pi
,
21734 RADIO_2056_TX_TX_SSI_MUX
|
21735 ((core
== PHY_CORE_0
) ?
21736 RADIO_2056_TX0
: RADIO_2056_TX1
),
21742 void wlc_phy_rssisel_nphy(struct brcms_phy
*pi
, u8 core_code
, u8 rssi_type
)
21745 u16 afectrlovr_rssi_val
, rfctrlcmd_rxen_val
, rfctrlcmd_coresel_val
,
21747 u16 rfctrlovr_rssi_val
, rfctrlovr_rxen_val
, rfctrlovr_coresel_val
,
21748 rfctrlovr_trigger_val
;
21749 u16 afectrlovr_rssi_mask
, rfctrlcmd_mask
, rfctrlovr_mask
;
21750 u16 rfctrlcmd_val
, rfctrlovr_val
;
21753 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
21754 if (core_code
== RADIO_MIMO_CORESEL_OFF
) {
21755 mod_phy_reg(pi
, 0x8f, (0x1 << 9), 0);
21756 mod_phy_reg(pi
, 0xa5, (0x1 << 9), 0);
21758 mod_phy_reg(pi
, 0xa6, (0x3 << 8), 0);
21759 mod_phy_reg(pi
, 0xa7, (0x3 << 8), 0);
21761 mod_phy_reg(pi
, 0xe5, (0x1 << 5), 0);
21762 mod_phy_reg(pi
, 0xe6, (0x1 << 5), 0);
21764 mask
= (0x1 << 2) |
21765 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21766 mod_phy_reg(pi
, 0xf9, mask
, 0);
21767 mod_phy_reg(pi
, 0xfb, mask
, 0);
21770 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
21771 if (core_code
== RADIO_MIMO_CORESEL_CORE1
21772 && core
== PHY_CORE_1
)
21774 else if (core_code
== RADIO_MIMO_CORESEL_CORE2
21775 && core
== PHY_CORE_0
)
21778 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ?
21779 0x8f : 0xa5, (0x1 << 9), 1 << 9);
21781 if (rssi_type
== NPHY_RSSI_SEL_W1
||
21782 rssi_type
== NPHY_RSSI_SEL_W2
||
21783 rssi_type
== NPHY_RSSI_SEL_NB
) {
21786 PHY_CORE_0
) ? 0xa6 : 0xa7,
21789 mask
= (0x1 << 2) |
21791 (0x1 << 4) | (0x1 << 5);
21794 PHY_CORE_0
) ? 0xf9 : 0xfb,
21797 if (rssi_type
== NPHY_RSSI_SEL_W1
) {
21799 pi
->radio_chanspec
)) {
21806 } else if (rssi_type
==
21807 NPHY_RSSI_SEL_W2
) {
21816 PHY_CORE_0
) ? 0xf9 : 0xfb,
21821 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ?
21822 0xe5 : 0xe6, mask
, val
);
21824 if (rssi_type
== NPHY_RSSI_SEL_TBD
) {
21830 : 0xa7, mask
, val
);
21831 mask
= (0x3 << 10);
21836 : 0xa7, mask
, val
);
21837 } else if (rssi_type
==
21838 NPHY_RSSI_SEL_IQ
) {
21844 : 0xa7, mask
, val
);
21845 mask
= (0x3 << 10);
21850 : 0xa7, mask
, val
);
21857 : 0xa7, mask
, val
);
21858 mask
= (0x3 << 10);
21863 : 0xa7, mask
, val
);
21864 brcms_phy_wr_tx_mux(pi
, core
);
21865 afectrlovr_rssi_val
= 1 << 9;
21869 : 0xa5, (0x1 << 9),
21870 afectrlovr_rssi_val
);
21877 if ((rssi_type
== NPHY_RSSI_SEL_W1
) ||
21878 (rssi_type
== NPHY_RSSI_SEL_W2
) ||
21879 (rssi_type
== NPHY_RSSI_SEL_NB
))
21881 else if (rssi_type
== NPHY_RSSI_SEL_TBD
)
21883 else if (rssi_type
== NPHY_RSSI_SEL_IQ
)
21888 mask
= ((0x3 << 12) | (0x3 << 14));
21889 val
= (val
<< 12) | (val
<< 14);
21890 mod_phy_reg(pi
, 0xa6, mask
, val
);
21891 mod_phy_reg(pi
, 0xa7, mask
, val
);
21893 if ((rssi_type
== NPHY_RSSI_SEL_W1
) ||
21894 (rssi_type
== NPHY_RSSI_SEL_W2
) ||
21895 (rssi_type
== NPHY_RSSI_SEL_NB
)) {
21896 if (rssi_type
== NPHY_RSSI_SEL_W1
)
21898 if (rssi_type
== NPHY_RSSI_SEL_W2
)
21900 if (rssi_type
== NPHY_RSSI_SEL_NB
)
21905 mod_phy_reg(pi
, 0x7a, mask
, val
);
21906 mod_phy_reg(pi
, 0x7d, mask
, val
);
21909 if (core_code
== RADIO_MIMO_CORESEL_OFF
) {
21910 afectrlovr_rssi_val
= 0;
21911 rfctrlcmd_rxen_val
= 0;
21912 rfctrlcmd_coresel_val
= 0;
21913 rfctrlovr_rssi_val
= 0;
21914 rfctrlovr_rxen_val
= 0;
21915 rfctrlovr_coresel_val
= 0;
21916 rfctrlovr_trigger_val
= 0;
21919 afectrlovr_rssi_val
= 1;
21920 rfctrlcmd_rxen_val
= 1;
21921 rfctrlcmd_coresel_val
= core_code
;
21922 rfctrlovr_rssi_val
= 1;
21923 rfctrlovr_rxen_val
= 1;
21924 rfctrlovr_coresel_val
= 1;
21925 rfctrlovr_trigger_val
= 1;
21929 afectrlovr_rssi_mask
= ((0x1 << 12) | (0x1 << 13));
21930 afectrlovr_rssi_val
= (afectrlovr_rssi_val
<<
21931 12) | (afectrlovr_rssi_val
<< 13);
21932 mod_phy_reg(pi
, 0xa5, afectrlovr_rssi_mask
,
21933 afectrlovr_rssi_val
);
21935 if ((rssi_type
== NPHY_RSSI_SEL_W1
) ||
21936 (rssi_type
== NPHY_RSSI_SEL_W2
) ||
21937 (rssi_type
== NPHY_RSSI_SEL_NB
)) {
21938 rfctrlcmd_mask
= ((0x1 << 8) | (0x7 << 3));
21939 rfctrlcmd_val
= (rfctrlcmd_rxen_val
<< 8) |
21940 (rfctrlcmd_coresel_val
<< 3);
21942 rfctrlovr_mask
= ((0x1 << 5) |
21944 (0x1 << 1) | (0x1 << 0));
21945 rfctrlovr_val
= (rfctrlovr_rssi_val
<<
21947 (rfctrlovr_rxen_val
<< 12) |
21948 (rfctrlovr_coresel_val
<< 1) |
21949 (rfctrlovr_trigger_val
<< 0);
21951 mod_phy_reg(pi
, 0x78, rfctrlcmd_mask
, rfctrlcmd_val
);
21952 mod_phy_reg(pi
, 0xec, rfctrlovr_mask
, rfctrlovr_val
);
21954 mod_phy_reg(pi
, 0x78, (0x1 << 0), (startseq
<< 0));
21957 mod_phy_reg(pi
, 0xec, (0x1 << 0), 0);
21963 wlc_phy_poll_rssi_nphy(struct brcms_phy
*pi
, u8 rssi_type
, s32
*rssi_buf
,
21967 u16 afectrlCore1_save
= 0;
21968 u16 afectrlCore2_save
= 0;
21969 u16 afectrlOverride1_save
= 0;
21970 u16 afectrlOverride2_save
= 0;
21971 u16 rfctrlOverrideAux0_save
= 0;
21972 u16 rfctrlOverrideAux1_save
= 0;
21973 u16 rfctrlMiscReg1_save
= 0;
21974 u16 rfctrlMiscReg2_save
= 0;
21975 u16 rfctrlcmd_save
= 0;
21976 u16 rfctrloverride_save
= 0;
21977 u16 rfctrlrssiothers1_save
= 0;
21978 u16 rfctrlrssiothers2_save
= 0;
21980 u8 ctr
= 0, samp
= 0;
21984 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
21985 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
21986 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
21987 rfctrlMiscReg1_save
= read_phy_reg(pi
, 0xf9);
21988 rfctrlMiscReg2_save
= read_phy_reg(pi
, 0xfb);
21989 afectrlOverride1_save
= read_phy_reg(pi
, 0x8f);
21990 afectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
21991 rfctrlOverrideAux0_save
= read_phy_reg(pi
, 0xe5);
21992 rfctrlOverrideAux1_save
= read_phy_reg(pi
, 0xe6);
21994 afectrlOverride1_save
= read_phy_reg(pi
, 0xa5);
21995 rfctrlcmd_save
= read_phy_reg(pi
, 0x78);
21996 rfctrloverride_save
= read_phy_reg(pi
, 0xec);
21997 rfctrlrssiothers1_save
= read_phy_reg(pi
, 0x7a);
21998 rfctrlrssiothers2_save
= read_phy_reg(pi
, 0x7d);
22001 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_ALLRX
, rssi_type
);
22003 gpiosel_orig
= read_phy_reg(pi
, 0xca);
22004 if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
22005 write_phy_reg(pi
, 0xca, 5);
22007 for (ctr
= 0; ctr
< 4; ctr
++)
22010 for (samp
= 0; samp
< nsamps
; samp
++) {
22011 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
22012 rssi0
= read_phy_reg(pi
, 0x1c9);
22013 rssi1
= read_phy_reg(pi
, 0x1ca);
22015 rssi0
= read_phy_reg(pi
, 0x219);
22016 rssi1
= read_phy_reg(pi
, 0x21a);
22020 tmp_buf
[ctr
++] = ((s8
) ((rssi0
& 0x3f) << 2)) >> 2;
22021 tmp_buf
[ctr
++] = ((s8
) (((rssi0
>> 8) & 0x3f) << 2)) >> 2;
22022 tmp_buf
[ctr
++] = ((s8
) ((rssi1
& 0x3f) << 2)) >> 2;
22023 tmp_buf
[ctr
++] = ((s8
) (((rssi1
>> 8) & 0x3f) << 2)) >> 2;
22025 for (ctr
= 0; ctr
< 4; ctr
++)
22026 rssi_buf
[ctr
] += tmp_buf
[ctr
];
22030 rssi_out_val
= rssi_buf
[3] & 0xff;
22031 rssi_out_val
|= (rssi_buf
[2] & 0xff) << 8;
22032 rssi_out_val
|= (rssi_buf
[1] & 0xff) << 16;
22033 rssi_out_val
|= (rssi_buf
[0] & 0xff) << 24;
22035 if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
22036 write_phy_reg(pi
, 0xca, gpiosel_orig
);
22038 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
22039 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
22040 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
22041 write_phy_reg(pi
, 0xf9, rfctrlMiscReg1_save
);
22042 write_phy_reg(pi
, 0xfb, rfctrlMiscReg2_save
);
22043 write_phy_reg(pi
, 0x8f, afectrlOverride1_save
);
22044 write_phy_reg(pi
, 0xa5, afectrlOverride2_save
);
22045 write_phy_reg(pi
, 0xe5, rfctrlOverrideAux0_save
);
22046 write_phy_reg(pi
, 0xe6, rfctrlOverrideAux1_save
);
22048 write_phy_reg(pi
, 0xa5, afectrlOverride1_save
);
22049 write_phy_reg(pi
, 0x78, rfctrlcmd_save
);
22050 write_phy_reg(pi
, 0xec, rfctrloverride_save
);
22051 write_phy_reg(pi
, 0x7a, rfctrlrssiothers1_save
);
22052 write_phy_reg(pi
, 0x7d, rfctrlrssiothers2_save
);
22055 return rssi_out_val
;
22058 s16
wlc_phy_tempsense_nphy(struct brcms_phy
*pi
)
22060 u16 core1_txrf_iqcal1_save
, core1_txrf_iqcal2_save
;
22061 u16 core2_txrf_iqcal1_save
, core2_txrf_iqcal2_save
;
22062 u16 pwrdet_rxtx_core1_save
;
22063 u16 pwrdet_rxtx_core2_save
;
22064 u16 afectrlCore1_save
;
22065 u16 afectrlCore2_save
;
22066 u16 afectrlOverride_save
;
22067 u16 afectrlOverride2_save
;
22068 u16 pd_pll_ts_save
;
22071 s32 radio_temp2
[4];
22072 u16 syn_tempprocsense_save
;
22075 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22076 u16 auxADC_Vmid
, auxADC_Av
, auxADC_Vmid_save
, auxADC_Av_save
;
22077 u16 auxADC_rssi_ctrlL_save
, auxADC_rssi_ctrlH_save
;
22078 u16 auxADC_rssi_ctrlL
, auxADC_rssi_ctrlH
;
22080 u16 RfctrlOverride5_save
, RfctrlOverride6_save
;
22081 u16 RfctrlMiscReg5_save
, RfctrlMiscReg6_save
;
22082 u16 RSSIMultCoef0QPowerDet_save
;
22083 u16 tempsense_Rcal
;
22085 syn_tempprocsense_save
=
22086 read_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
);
22088 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
22089 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
22090 afectrlOverride_save
= read_phy_reg(pi
, 0x8f);
22091 afectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
22092 RSSIMultCoef0QPowerDet_save
= read_phy_reg(pi
, 0x1ae);
22093 RfctrlOverride5_save
= read_phy_reg(pi
, 0x346);
22094 RfctrlOverride6_save
= read_phy_reg(pi
, 0x347);
22095 RfctrlMiscReg5_save
= read_phy_reg(pi
, 0x344);
22096 RfctrlMiscReg6_save
= read_phy_reg(pi
, 0x345);
22098 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
22099 &auxADC_Vmid_save
);
22100 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
22102 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x02, 16,
22103 &auxADC_rssi_ctrlL_save
);
22104 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x03, 16,
22105 &auxADC_rssi_ctrlH_save
);
22107 write_phy_reg(pi
, 0x1ae, 0x0);
22109 auxADC_rssi_ctrlL
= 0x0;
22110 auxADC_rssi_ctrlH
= 0x20;
22111 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x02, 16,
22112 &auxADC_rssi_ctrlL
);
22113 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x03, 16,
22114 &auxADC_rssi_ctrlH
);
22116 tempsense_Rcal
= syn_tempprocsense_save
& 0x1c;
22118 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
22119 tempsense_Rcal
| 0x01);
22121 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1),
22123 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
22124 mod_phy_reg(pi
, 0xa6, (0x1 << 7), 0);
22125 mod_phy_reg(pi
, 0xa7, (0x1 << 7), 0);
22126 mod_phy_reg(pi
, 0x8f, (0x1 << 7), (0x1 << 7));
22127 mod_phy_reg(pi
, 0xa5, (0x1 << 7), (0x1 << 7));
22129 mod_phy_reg(pi
, 0xa6, (0x1 << 2), (0x1 << 2));
22130 mod_phy_reg(pi
, 0xa7, (0x1 << 2), (0x1 << 2));
22131 mod_phy_reg(pi
, 0x8f, (0x1 << 2), (0x1 << 2));
22132 mod_phy_reg(pi
, 0xa5, (0x1 << 2), (0x1 << 2));
22134 mod_phy_reg(pi
, 0xa6, (0x1 << 2), 0);
22135 mod_phy_reg(pi
, 0xa7, (0x1 << 2), 0);
22136 mod_phy_reg(pi
, 0xa6, (0x1 << 3), 0);
22137 mod_phy_reg(pi
, 0xa7, (0x1 << 3), 0);
22138 mod_phy_reg(pi
, 0x8f, (0x1 << 3), (0x1 << 3));
22139 mod_phy_reg(pi
, 0xa5, (0x1 << 3), (0x1 << 3));
22140 mod_phy_reg(pi
, 0xa6, (0x1 << 6), 0);
22141 mod_phy_reg(pi
, 0xa7, (0x1 << 6), 0);
22142 mod_phy_reg(pi
, 0x8f, (0x1 << 6), (0x1 << 6));
22143 mod_phy_reg(pi
, 0xa5, (0x1 << 6), (0x1 << 6));
22145 auxADC_Vmid
= 0xA3;
22147 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
22149 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
22154 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
22155 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
22156 tempsense_Rcal
| 0x03);
22159 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
22162 if (radio_temp
[1] + radio_temp2
[1] < -30) {
22163 auxADC_Vmid
= 0x45;
22165 } else if (radio_temp
[1] + radio_temp2
[1] < -9) {
22166 auxADC_Vmid
= 0x200;
22168 } else if (radio_temp
[1] + radio_temp2
[1] < 11) {
22169 auxADC_Vmid
= 0x266;
22172 auxADC_Vmid
= 0x2D5;
22176 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
22178 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
22183 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
22184 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
22185 tempsense_Rcal
| 0x01);
22188 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
22190 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
22191 syn_tempprocsense_save
);
22193 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
22194 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
22195 write_phy_reg(pi
, 0x8f, afectrlOverride_save
);
22196 write_phy_reg(pi
, 0xa5, afectrlOverride2_save
);
22197 write_phy_reg(pi
, 0x1ae, RSSIMultCoef0QPowerDet_save
);
22198 write_phy_reg(pi
, 0x346, RfctrlOverride5_save
);
22199 write_phy_reg(pi
, 0x347, RfctrlOverride6_save
);
22200 write_phy_reg(pi
, 0x344, RfctrlMiscReg5_save
);
22201 write_phy_reg(pi
, 0x345, RfctrlMiscReg5_save
);
22203 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
22204 &auxADC_Vmid_save
);
22205 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
22207 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x02, 16,
22208 &auxADC_rssi_ctrlL_save
);
22209 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x03, 16,
22210 &auxADC_rssi_ctrlH_save
);
22212 if (pi
->sh
->chip
== BCMA_CHIP_ID_BCM5357
) {
22213 radio_temp
[0] = (193 * (radio_temp
[1] + radio_temp2
[1])
22214 + 88 * (auxADC_Vl
) - 27111 +
22217 radio_temp
[0] = (179 * (radio_temp
[1] + radio_temp2
[1])
22218 + 82 * (auxADC_Vl
) - 28861 +
22222 offset
= (s16
) pi
->phy_tempsense_offset
;
22224 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
22225 syn_tempprocsense_save
=
22226 read_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
);
22228 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
22229 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
22230 afectrlOverride_save
= read_phy_reg(pi
, 0x8f);
22231 afectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
22232 gpioSel_save
= read_phy_reg(pi
, 0xca);
22234 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
, 0x01);
22236 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
22237 if (NREV_LT(pi
->pubpi
.phy_rev
, 7))
22238 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
, 0x05);
22240 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
22241 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
22242 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
, 0x01);
22244 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
, 0x01);
22247 (126 * (radio_temp
[1] + radio_temp2
[1]) + 3987) / 64;
22249 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
,
22250 syn_tempprocsense_save
);
22252 write_phy_reg(pi
, 0xca, gpioSel_save
);
22253 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
22254 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
22255 write_phy_reg(pi
, 0x8f, afectrlOverride_save
);
22256 write_phy_reg(pi
, 0xa5, afectrlOverride2_save
);
22258 offset
= (s16
) pi
->phy_tempsense_offset
;
22261 pwrdet_rxtx_core1_save
=
22262 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
);
22263 pwrdet_rxtx_core2_save
=
22264 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
);
22265 core1_txrf_iqcal1_save
=
22266 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
);
22267 core1_txrf_iqcal2_save
=
22268 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
);
22269 core2_txrf_iqcal1_save
=
22270 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
);
22271 core2_txrf_iqcal2_save
=
22272 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
);
22273 pd_pll_ts_save
= read_radio_reg(pi
, RADIO_2055_PD_PLL_TS
);
22275 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
22276 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
22277 afectrlOverride_save
= read_phy_reg(pi
, 0xa5);
22278 gpioSel_save
= read_phy_reg(pi
, 0xca);
22280 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
, 0x01);
22281 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
, 0x01);
22282 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
, 0x08);
22283 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
, 0x08);
22284 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
, 0x04);
22285 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
, 0x04);
22286 write_radio_reg(pi
, RADIO_2055_PD_PLL_TS
, 0x00);
22288 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
22289 xor_radio_reg(pi
, RADIO_2055_CAL_TS
, 0x80);
22291 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
22292 xor_radio_reg(pi
, RADIO_2055_CAL_TS
, 0x80);
22294 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
22295 xor_radio_reg(pi
, RADIO_2055_CAL_TS
, 0x80);
22297 radio_temp
[0] = (radio_temp
[0] + radio_temp2
[0]);
22298 radio_temp
[1] = (radio_temp
[1] + radio_temp2
[1]);
22299 radio_temp
[2] = (radio_temp
[2] + radio_temp2
[2]);
22300 radio_temp
[3] = (radio_temp
[3] + radio_temp2
[3]);
22303 (radio_temp
[0] + radio_temp
[1] + radio_temp
[2] +
22308 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22310 radio_temp
[0] = (radio_temp
[0] - (8 * 420)) / 38;
22312 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
,
22313 pwrdet_rxtx_core1_save
);
22314 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
,
22315 pwrdet_rxtx_core2_save
);
22316 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
,
22317 core1_txrf_iqcal1_save
);
22318 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
,
22319 core2_txrf_iqcal1_save
);
22320 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
,
22321 core1_txrf_iqcal2_save
);
22322 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
,
22323 core2_txrf_iqcal2_save
);
22324 write_radio_reg(pi
, RADIO_2055_PD_PLL_TS
, pd_pll_ts_save
);
22326 write_phy_reg(pi
, 0xca, gpioSel_save
);
22327 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
22328 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
22329 write_phy_reg(pi
, 0xa5, afectrlOverride_save
);
22332 return (s16
) radio_temp
[0] + offset
;
22336 wlc_phy_set_rssi_2055_vcm(struct brcms_phy
*pi
, u8 rssi_type
, u8
*vcm_buf
)
22340 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
22341 if (rssi_type
== NPHY_RSSI_SEL_NB
) {
22342 if (core
== PHY_CORE_0
) {
22344 RADIO_2055_CORE1_B0_NBRSSI_VCM
,
22345 RADIO_2055_NBRSSI_VCM_I_MASK
,
22348 RADIO_2055_NBRSSI_VCM_I_SHIFT
);
22350 RADIO_2055_CORE1_RXBB_RSSI_CTRL5
,
22351 RADIO_2055_NBRSSI_VCM_Q_MASK
,
22354 RADIO_2055_NBRSSI_VCM_Q_SHIFT
);
22357 RADIO_2055_CORE2_B0_NBRSSI_VCM
,
22358 RADIO_2055_NBRSSI_VCM_I_MASK
,
22361 RADIO_2055_NBRSSI_VCM_I_SHIFT
);
22363 RADIO_2055_CORE2_RXBB_RSSI_CTRL5
,
22364 RADIO_2055_NBRSSI_VCM_Q_MASK
,
22367 RADIO_2055_NBRSSI_VCM_Q_SHIFT
);
22370 if (core
== PHY_CORE_0
)
22372 RADIO_2055_CORE1_RXBB_RSSI_CTRL5
,
22373 RADIO_2055_WBRSSI_VCM_IQ_MASK
,
22376 RADIO_2055_WBRSSI_VCM_IQ_SHIFT
);
22379 RADIO_2055_CORE2_RXBB_RSSI_CTRL5
,
22380 RADIO_2055_WBRSSI_VCM_IQ_MASK
,
22383 RADIO_2055_WBRSSI_VCM_IQ_SHIFT
);
22388 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy
*pi
)
22392 u16 clip_off
[] = { 0xffff, 0xffff };
22397 s32 poll_results
[8][4] = {
22407 s32 poll_result_core
[4] = { 0, 0, 0, 0 };
22408 s32 min_d
= NPHY_RSSICAL_MAXD
, curr_d
;
22409 s32 fine_digital_offset
[4];
22410 s32 poll_results_min
[4] = { 0, 0, 0, 0 };
22416 u16 NPHY_Rfctrlintc1_save
, NPHY_Rfctrlintc2_save
;
22417 u16 NPHY_AfectrlOverride1_save
, NPHY_AfectrlOverride2_save
;
22418 u16 NPHY_AfectrlCore1_save
, NPHY_AfectrlCore2_save
;
22419 u16 NPHY_RfctrlOverride0_save
, NPHY_RfctrlOverride1_save
;
22420 u16 NPHY_RfctrlOverrideAux0_save
, NPHY_RfctrlOverrideAux1_save
;
22421 u16 NPHY_RfctrlCmd_save
;
22422 u16 NPHY_RfctrlMiscReg1_save
, NPHY_RfctrlMiscReg2_save
;
22423 u16 NPHY_RfctrlRSSIOTHERS1_save
, NPHY_RfctrlRSSIOTHERS2_save
;
22425 u16 NPHY_REV7_RfctrlOverride3_save
, NPHY_REV7_RfctrlOverride4_save
;
22426 u16 NPHY_REV7_RfctrlOverride5_save
, NPHY_REV7_RfctrlOverride6_save
;
22427 u16 NPHY_REV7_RfctrlMiscReg3_save
, NPHY_REV7_RfctrlMiscReg4_save
;
22428 u16 NPHY_REV7_RfctrlMiscReg5_save
, NPHY_REV7_RfctrlMiscReg6_save
;
22430 NPHY_REV7_RfctrlOverride3_save
=
22431 NPHY_REV7_RfctrlOverride4_save
=
22432 NPHY_REV7_RfctrlOverride5_save
=
22433 NPHY_REV7_RfctrlOverride6_save
=
22434 NPHY_REV7_RfctrlMiscReg3_save
=
22435 NPHY_REV7_RfctrlMiscReg4_save
=
22436 NPHY_REV7_RfctrlMiscReg5_save
=
22437 NPHY_REV7_RfctrlMiscReg6_save
= 0;
22439 classif_state
= wlc_phy_classifier_nphy(pi
, 0, 0);
22440 wlc_phy_classifier_nphy(pi
, (0x7 << 0), 4);
22441 wlc_phy_clip_det_nphy(pi
, 0, clip_state
);
22442 wlc_phy_clip_det_nphy(pi
, 1, clip_off
);
22444 NPHY_Rfctrlintc1_save
= read_phy_reg(pi
, 0x91);
22445 NPHY_Rfctrlintc2_save
= read_phy_reg(pi
, 0x92);
22446 NPHY_AfectrlOverride1_save
= read_phy_reg(pi
, 0x8f);
22447 NPHY_AfectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
22448 NPHY_AfectrlCore1_save
= read_phy_reg(pi
, 0xa6);
22449 NPHY_AfectrlCore2_save
= read_phy_reg(pi
, 0xa7);
22450 NPHY_RfctrlOverride0_save
= read_phy_reg(pi
, 0xe7);
22451 NPHY_RfctrlOverride1_save
= read_phy_reg(pi
, 0xec);
22452 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22453 NPHY_REV7_RfctrlOverride3_save
= read_phy_reg(pi
, 0x342);
22454 NPHY_REV7_RfctrlOverride4_save
= read_phy_reg(pi
, 0x343);
22455 NPHY_REV7_RfctrlOverride5_save
= read_phy_reg(pi
, 0x346);
22456 NPHY_REV7_RfctrlOverride6_save
= read_phy_reg(pi
, 0x347);
22458 NPHY_RfctrlOverrideAux0_save
= read_phy_reg(pi
, 0xe5);
22459 NPHY_RfctrlOverrideAux1_save
= read_phy_reg(pi
, 0xe6);
22460 NPHY_RfctrlCmd_save
= read_phy_reg(pi
, 0x78);
22461 NPHY_RfctrlMiscReg1_save
= read_phy_reg(pi
, 0xf9);
22462 NPHY_RfctrlMiscReg2_save
= read_phy_reg(pi
, 0xfb);
22463 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22464 NPHY_REV7_RfctrlMiscReg3_save
= read_phy_reg(pi
, 0x340);
22465 NPHY_REV7_RfctrlMiscReg4_save
= read_phy_reg(pi
, 0x341);
22466 NPHY_REV7_RfctrlMiscReg5_save
= read_phy_reg(pi
, 0x344);
22467 NPHY_REV7_RfctrlMiscReg6_save
= read_phy_reg(pi
, 0x345);
22469 NPHY_RfctrlRSSIOTHERS1_save
= read_phy_reg(pi
, 0x7a);
22470 NPHY_RfctrlRSSIOTHERS2_save
= read_phy_reg(pi
, 0x7d);
22472 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_OFF
, 0,
22473 RADIO_MIMO_CORESEL_ALLRXTX
);
22474 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_TRSW
, 1,
22475 RADIO_MIMO_CORESEL_ALLRXTX
);
22477 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
22478 wlc_phy_rfctrl_override_1tomany_nphy(
22480 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu
,
22483 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 0), 0, 0, 0);
22485 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
22486 wlc_phy_rfctrl_override_1tomany_nphy(
22488 NPHY_REV7_RfctrlOverride_cmd_rx_pu
,
22491 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 1), 1, 0, 0);
22493 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22494 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7),
22496 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
22497 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 6), 1, 0, 0,
22498 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
22500 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 7), 1, 0, 0);
22501 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 6), 1, 0, 0);
22504 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
22505 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22506 wlc_phy_rfctrl_override_nphy_rev7(
22509 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
22510 wlc_phy_rfctrl_override_nphy_rev7(
22511 pi
, (0x1 << 4), 1, 0,
22513 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
22515 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 5), 0, 0, 0);
22516 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 4), 1, 0, 0);
22520 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22521 wlc_phy_rfctrl_override_nphy_rev7(
22524 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
22525 wlc_phy_rfctrl_override_nphy_rev7(
22526 pi
, (0x1 << 5), 1, 0,
22528 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
22530 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 4), 0, 0, 0);
22531 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 5), 1, 0, 0);
22535 rxcore_state
= wlc_phy_rxcore_getstate_nphy(
22536 (struct brcms_phy_pub
*) pi
);
22540 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
22542 if ((rxcore_state
& (1 << core
)) == 0)
22545 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
22548 RADIO_MIMO_CORESEL_CORE1
:
22549 RADIO_MIMO_CORESEL_CORE2
,
22550 NPHY_RAIL_I
, NPHY_RSSI_SEL_NB
);
22551 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
22554 RADIO_MIMO_CORESEL_CORE1
:
22555 RADIO_MIMO_CORESEL_CORE2
,
22556 NPHY_RAIL_Q
, NPHY_RSSI_SEL_NB
);
22558 for (vcm
= 0; vcm
< vcm_level_max
; vcm
++) {
22559 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
22560 mod_radio_reg(pi
, (core
== PHY_CORE_0
) ?
22561 RADIO_2057_NB_MASTER_CORE0
:
22562 RADIO_2057_NB_MASTER_CORE1
,
22563 RADIO_2057_VCM_MASK
, vcm
);
22565 mod_radio_reg(pi
, RADIO_2056_RX_RSSI_MISC
|
22567 PHY_CORE_0
) ? RADIO_2056_RX0
:
22569 RADIO_2056_VCM_MASK
,
22570 vcm
<< RADIO_2056_RSSI_VCM_SHIFT
);
22572 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_NB
,
22573 &poll_results
[vcm
][0],
22574 NPHY_RSSICAL_NPOLL
);
22577 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
22578 if ((core
== result_idx
/ 2) &&
22579 (result_idx
% 2 == 0)) {
22581 min_d
= NPHY_RSSICAL_MAXD
;
22584 NPHY_RSSICAL_MAXREAD
*
22585 NPHY_RSSICAL_NPOLL
+ 1;
22586 for (vcm
= 0; vcm
< vcm_level_max
; vcm
++) {
22588 poll_results
[vcm
][result_idx
] *
22589 poll_results
[vcm
][result_idx
] +
22590 poll_results
[vcm
][result_idx
+
22592 poll_results
[vcm
][result_idx
+
22594 if (curr_d
< min_d
) {
22598 if (poll_results
[vcm
][result_idx
] <
22604 vcm_final
= min_vcm
;
22605 poll_results_min
[result_idx
] = min_poll
;
22609 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
22610 mod_radio_reg(pi
, (core
== PHY_CORE_0
) ?
22611 RADIO_2057_NB_MASTER_CORE0
:
22612 RADIO_2057_NB_MASTER_CORE1
,
22613 RADIO_2057_VCM_MASK
, vcm_final
);
22615 mod_radio_reg(pi
, RADIO_2056_RX_RSSI_MISC
|
22617 PHY_CORE_0
) ? RADIO_2056_RX0
:
22618 RADIO_2056_RX1
), RADIO_2056_VCM_MASK
,
22619 vcm_final
<< RADIO_2056_RSSI_VCM_SHIFT
);
22621 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
22622 if (core
== result_idx
/ 2) {
22623 fine_digital_offset
[result_idx
] =
22624 (NPHY_RSSICAL_NB_TARGET
*
22625 NPHY_RSSICAL_NPOLL
) -
22626 poll_results
[vcm_final
][result_idx
];
22627 if (fine_digital_offset
[result_idx
] < 0) {
22628 fine_digital_offset
[result_idx
] =
22629 abs(fine_digital_offset
22631 fine_digital_offset
[result_idx
] +=
22632 (NPHY_RSSICAL_NPOLL
/ 2);
22633 fine_digital_offset
[result_idx
] /=
22634 NPHY_RSSICAL_NPOLL
;
22635 fine_digital_offset
[result_idx
] =
22636 -fine_digital_offset
[
22639 fine_digital_offset
[result_idx
] +=
22640 (NPHY_RSSICAL_NPOLL
/ 2);
22641 fine_digital_offset
[result_idx
] /=
22642 NPHY_RSSICAL_NPOLL
;
22645 if (poll_results_min
[result_idx
] ==
22646 NPHY_RSSICAL_MAXREAD
* NPHY_RSSICAL_NPOLL
)
22647 fine_digital_offset
[result_idx
] =
22648 (NPHY_RSSICAL_NB_TARGET
-
22649 NPHY_RSSICAL_MAXREAD
- 1);
22651 wlc_phy_scale_offset_rssi_nphy(
22654 fine_digital_offset
22656 (result_idx
/ 2 == 0) ?
22657 RADIO_MIMO_CORESEL_CORE1
:
22658 RADIO_MIMO_CORESEL_CORE2
,
22659 (result_idx
% 2 == 0) ?
22660 NPHY_RAIL_I
: NPHY_RAIL_Q
,
22667 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
22669 if ((rxcore_state
& (1 << core
)) == 0)
22672 for (wb_cnt
= 0; wb_cnt
< 2; wb_cnt
++) {
22674 rssi_type
= NPHY_RSSI_SEL_W1
;
22675 target_code
= NPHY_RSSICAL_W1_TARGET_REV3
;
22677 rssi_type
= NPHY_RSSI_SEL_W2
;
22678 target_code
= NPHY_RSSICAL_W2_TARGET_REV3
;
22681 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
22684 RADIO_MIMO_CORESEL_CORE1
22686 RADIO_MIMO_CORESEL_CORE2
,
22687 NPHY_RAIL_I
, rssi_type
);
22688 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
22691 RADIO_MIMO_CORESEL_CORE1
22693 RADIO_MIMO_CORESEL_CORE2
,
22694 NPHY_RAIL_Q
, rssi_type
);
22696 wlc_phy_poll_rssi_nphy(pi
, rssi_type
, poll_result_core
,
22697 NPHY_RSSICAL_NPOLL
);
22699 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
22700 if (core
== result_idx
/ 2) {
22701 fine_digital_offset
[result_idx
] =
22703 NPHY_RSSICAL_NPOLL
) -
22704 poll_result_core
[result_idx
];
22705 if (fine_digital_offset
[result_idx
] <
22707 fine_digital_offset
[result_idx
]
22709 fine_digital_offset
22711 fine_digital_offset
[result_idx
]
22712 += (NPHY_RSSICAL_NPOLL
22714 fine_digital_offset
[result_idx
]
22715 /= NPHY_RSSICAL_NPOLL
;
22716 fine_digital_offset
[result_idx
]
22717 = -fine_digital_offset
22720 fine_digital_offset
[result_idx
]
22721 += (NPHY_RSSICAL_NPOLL
22723 fine_digital_offset
[result_idx
]
22724 /= NPHY_RSSICAL_NPOLL
;
22727 wlc_phy_scale_offset_rssi_nphy(
22730 fine_digital_offset
22733 (core
== PHY_CORE_0
) ?
22734 RADIO_MIMO_CORESEL_CORE1
:
22735 RADIO_MIMO_CORESEL_CORE2
,
22736 (result_idx
% 2 == 0) ?
22746 write_phy_reg(pi
, 0x91, NPHY_Rfctrlintc1_save
);
22747 write_phy_reg(pi
, 0x92, NPHY_Rfctrlintc2_save
);
22749 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
22751 mod_phy_reg(pi
, 0xe7, (0x1 << 0), 1 << 0);
22752 mod_phy_reg(pi
, 0x78, (0x1 << 0), 1 << 0);
22753 mod_phy_reg(pi
, 0xe7, (0x1 << 0), 0);
22755 mod_phy_reg(pi
, 0xec, (0x1 << 0), 1 << 0);
22756 mod_phy_reg(pi
, 0x78, (0x1 << 1), 1 << 1);
22757 mod_phy_reg(pi
, 0xec, (0x1 << 0), 0);
22759 write_phy_reg(pi
, 0x8f, NPHY_AfectrlOverride1_save
);
22760 write_phy_reg(pi
, 0xa5, NPHY_AfectrlOverride2_save
);
22761 write_phy_reg(pi
, 0xa6, NPHY_AfectrlCore1_save
);
22762 write_phy_reg(pi
, 0xa7, NPHY_AfectrlCore2_save
);
22763 write_phy_reg(pi
, 0xe7, NPHY_RfctrlOverride0_save
);
22764 write_phy_reg(pi
, 0xec, NPHY_RfctrlOverride1_save
);
22765 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22766 write_phy_reg(pi
, 0x342, NPHY_REV7_RfctrlOverride3_save
);
22767 write_phy_reg(pi
, 0x343, NPHY_REV7_RfctrlOverride4_save
);
22768 write_phy_reg(pi
, 0x346, NPHY_REV7_RfctrlOverride5_save
);
22769 write_phy_reg(pi
, 0x347, NPHY_REV7_RfctrlOverride6_save
);
22771 write_phy_reg(pi
, 0xe5, NPHY_RfctrlOverrideAux0_save
);
22772 write_phy_reg(pi
, 0xe6, NPHY_RfctrlOverrideAux1_save
);
22773 write_phy_reg(pi
, 0x78, NPHY_RfctrlCmd_save
);
22774 write_phy_reg(pi
, 0xf9, NPHY_RfctrlMiscReg1_save
);
22775 write_phy_reg(pi
, 0xfb, NPHY_RfctrlMiscReg2_save
);
22776 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22777 write_phy_reg(pi
, 0x340, NPHY_REV7_RfctrlMiscReg3_save
);
22778 write_phy_reg(pi
, 0x341, NPHY_REV7_RfctrlMiscReg4_save
);
22779 write_phy_reg(pi
, 0x344, NPHY_REV7_RfctrlMiscReg5_save
);
22780 write_phy_reg(pi
, 0x345, NPHY_REV7_RfctrlMiscReg6_save
);
22782 write_phy_reg(pi
, 0x7a, NPHY_RfctrlRSSIOTHERS1_save
);
22783 write_phy_reg(pi
, 0x7d, NPHY_RfctrlRSSIOTHERS2_save
);
22785 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
22786 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22787 pi
->rssical_cache
.rssical_radio_regs_2G
[0] =
22788 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
);
22789 pi
->rssical_cache
.rssical_radio_regs_2G
[1] =
22790 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
);
22792 pi
->rssical_cache
.rssical_radio_regs_2G
[0] =
22794 RADIO_2056_RX_RSSI_MISC
|
22796 pi
->rssical_cache
.rssical_radio_regs_2G
[1] =
22798 RADIO_2056_RX_RSSI_MISC
|
22802 pi
->rssical_cache
.rssical_phyregs_2G
[0] =
22803 read_phy_reg(pi
, 0x1a6);
22804 pi
->rssical_cache
.rssical_phyregs_2G
[1] =
22805 read_phy_reg(pi
, 0x1ac);
22806 pi
->rssical_cache
.rssical_phyregs_2G
[2] =
22807 read_phy_reg(pi
, 0x1b2);
22808 pi
->rssical_cache
.rssical_phyregs_2G
[3] =
22809 read_phy_reg(pi
, 0x1b8);
22810 pi
->rssical_cache
.rssical_phyregs_2G
[4] =
22811 read_phy_reg(pi
, 0x1a4);
22812 pi
->rssical_cache
.rssical_phyregs_2G
[5] =
22813 read_phy_reg(pi
, 0x1aa);
22814 pi
->rssical_cache
.rssical_phyregs_2G
[6] =
22815 read_phy_reg(pi
, 0x1b0);
22816 pi
->rssical_cache
.rssical_phyregs_2G
[7] =
22817 read_phy_reg(pi
, 0x1b6);
22818 pi
->rssical_cache
.rssical_phyregs_2G
[8] =
22819 read_phy_reg(pi
, 0x1a5);
22820 pi
->rssical_cache
.rssical_phyregs_2G
[9] =
22821 read_phy_reg(pi
, 0x1ab);
22822 pi
->rssical_cache
.rssical_phyregs_2G
[10] =
22823 read_phy_reg(pi
, 0x1b1);
22824 pi
->rssical_cache
.rssical_phyregs_2G
[11] =
22825 read_phy_reg(pi
, 0x1b7);
22827 pi
->nphy_rssical_chanspec_2G
= pi
->radio_chanspec
;
22829 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22830 pi
->rssical_cache
.rssical_radio_regs_5G
[0] =
22831 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
);
22832 pi
->rssical_cache
.rssical_radio_regs_5G
[1] =
22833 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
);
22835 pi
->rssical_cache
.rssical_radio_regs_5G
[0] =
22837 RADIO_2056_RX_RSSI_MISC
|
22839 pi
->rssical_cache
.rssical_radio_regs_5G
[1] =
22841 RADIO_2056_RX_RSSI_MISC
|
22845 pi
->rssical_cache
.rssical_phyregs_5G
[0] =
22846 read_phy_reg(pi
, 0x1a6);
22847 pi
->rssical_cache
.rssical_phyregs_5G
[1] =
22848 read_phy_reg(pi
, 0x1ac);
22849 pi
->rssical_cache
.rssical_phyregs_5G
[2] =
22850 read_phy_reg(pi
, 0x1b2);
22851 pi
->rssical_cache
.rssical_phyregs_5G
[3] =
22852 read_phy_reg(pi
, 0x1b8);
22853 pi
->rssical_cache
.rssical_phyregs_5G
[4] =
22854 read_phy_reg(pi
, 0x1a4);
22855 pi
->rssical_cache
.rssical_phyregs_5G
[5] =
22856 read_phy_reg(pi
, 0x1aa);
22857 pi
->rssical_cache
.rssical_phyregs_5G
[6] =
22858 read_phy_reg(pi
, 0x1b0);
22859 pi
->rssical_cache
.rssical_phyregs_5G
[7] =
22860 read_phy_reg(pi
, 0x1b6);
22861 pi
->rssical_cache
.rssical_phyregs_5G
[8] =
22862 read_phy_reg(pi
, 0x1a5);
22863 pi
->rssical_cache
.rssical_phyregs_5G
[9] =
22864 read_phy_reg(pi
, 0x1ab);
22865 pi
->rssical_cache
.rssical_phyregs_5G
[10] =
22866 read_phy_reg(pi
, 0x1b1);
22867 pi
->rssical_cache
.rssical_phyregs_5G
[11] =
22868 read_phy_reg(pi
, 0x1b7);
22870 pi
->nphy_rssical_chanspec_5G
= pi
->radio_chanspec
;
22873 wlc_phy_classifier_nphy(pi
, (0x7 << 0), classif_state
);
22874 wlc_phy_clip_det_nphy(pi
, 1, clip_state
);
22877 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy
*pi
, u8 rssi_type
)
22882 u16 rssi_ctrl_state
[2], pd_state
[2];
22883 u16 rfctrlintc_state
[2], rfpdcorerxtx_state
[2];
22884 u16 rfctrlintc_override_val
;
22885 u16 clip_off
[] = { 0xffff, 0xffff };
22886 u16 rf_pd_val
, pd_mask
, rssi_ctrl_mask
;
22887 u8 vcm
, min_vcm
, vcm_tmp
[4];
22888 u8 vcm_final
[4] = { 0, 0, 0, 0 };
22889 u8 result_idx
, ctr
;
22890 s32 poll_results
[4][4] = {
22896 s32 poll_miniq
[4][2] = {
22903 s32 fine_digital_offset
[4];
22904 s32 poll_results_min
[4] = { 0, 0, 0, 0 };
22907 switch (rssi_type
) {
22908 case NPHY_RSSI_SEL_NB
:
22909 target_code
= NPHY_RSSICAL_NB_TARGET
;
22911 case NPHY_RSSI_SEL_W1
:
22912 target_code
= NPHY_RSSICAL_W1_TARGET
;
22914 case NPHY_RSSI_SEL_W2
:
22915 target_code
= NPHY_RSSICAL_W2_TARGET
;
22922 classif_state
= wlc_phy_classifier_nphy(pi
, 0, 0);
22923 wlc_phy_classifier_nphy(pi
, (0x7 << 0), 4);
22924 wlc_phy_clip_det_nphy(pi
, 0, clip_state
);
22925 wlc_phy_clip_det_nphy(pi
, 1, clip_off
);
22927 rf_pd_val
= (rssi_type
== NPHY_RSSI_SEL_NB
) ? 0x6 : 0x4;
22928 rfctrlintc_override_val
=
22929 CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x140 : 0x110;
22931 rfctrlintc_state
[0] = read_phy_reg(pi
, 0x91);
22932 rfpdcorerxtx_state
[0] = read_radio_reg(pi
, RADIO_2055_PD_CORE1_RXTX
);
22933 write_phy_reg(pi
, 0x91, rfctrlintc_override_val
);
22934 write_radio_reg(pi
, RADIO_2055_PD_CORE1_RXTX
, rf_pd_val
);
22936 rfctrlintc_state
[1] = read_phy_reg(pi
, 0x92);
22937 rfpdcorerxtx_state
[1] = read_radio_reg(pi
, RADIO_2055_PD_CORE2_RXTX
);
22938 write_phy_reg(pi
, 0x92, rfctrlintc_override_val
);
22939 write_radio_reg(pi
, RADIO_2055_PD_CORE2_RXTX
, rf_pd_val
);
22941 pd_mask
= RADIO_2055_NBRSSI_PD
| RADIO_2055_WBRSSI_G1_PD
|
22942 RADIO_2055_WBRSSI_G2_PD
;
22944 read_radio_reg(pi
, RADIO_2055_PD_CORE1_RSSI_MISC
) & pd_mask
;
22946 read_radio_reg(pi
, RADIO_2055_PD_CORE2_RSSI_MISC
) & pd_mask
;
22947 mod_radio_reg(pi
, RADIO_2055_PD_CORE1_RSSI_MISC
, pd_mask
, 0);
22948 mod_radio_reg(pi
, RADIO_2055_PD_CORE2_RSSI_MISC
, pd_mask
, 0);
22949 rssi_ctrl_mask
= RADIO_2055_NBRSSI_SEL
| RADIO_2055_WBRSSI_G1_SEL
|
22950 RADIO_2055_WBRSSI_G2_SEL
;
22951 rssi_ctrl_state
[0] =
22952 read_radio_reg(pi
, RADIO_2055_SP_RSSI_CORE1
) & rssi_ctrl_mask
;
22953 rssi_ctrl_state
[1] =
22954 read_radio_reg(pi
, RADIO_2055_SP_RSSI_CORE2
) & rssi_ctrl_mask
;
22955 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_ALLRX
, rssi_type
);
22957 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX
,
22958 NPHY_RAIL_I
, rssi_type
);
22959 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX
,
22960 NPHY_RAIL_Q
, rssi_type
);
22962 for (vcm
= 0; vcm
< 4; vcm
++) {
22964 vcm_tmp
[0] = vcm_tmp
[1] = vcm_tmp
[2] = vcm_tmp
[3] = vcm
;
22965 if (rssi_type
!= NPHY_RSSI_SEL_W2
)
22966 wlc_phy_set_rssi_2055_vcm(pi
, rssi_type
, vcm_tmp
);
22968 wlc_phy_poll_rssi_nphy(pi
, rssi_type
, &poll_results
[vcm
][0],
22969 NPHY_RSSICAL_NPOLL
);
22971 if ((rssi_type
== NPHY_RSSI_SEL_W1
)
22972 || (rssi_type
== NPHY_RSSI_SEL_W2
)) {
22973 for (ctr
= 0; ctr
< 2; ctr
++)
22974 poll_miniq
[vcm
][ctr
] =
22975 min(poll_results
[vcm
][ctr
* 2 + 0],
22976 poll_results
[vcm
][ctr
* 2 + 1]);
22980 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
22981 min_d
= NPHY_RSSICAL_MAXD
;
22983 min_poll
= NPHY_RSSICAL_MAXREAD
* NPHY_RSSICAL_NPOLL
+ 1;
22984 for (vcm
= 0; vcm
< 4; vcm
++) {
22985 curr_d
= abs(((rssi_type
== NPHY_RSSI_SEL_NB
) ?
22986 poll_results
[vcm
][result_idx
] :
22987 poll_miniq
[vcm
][result_idx
/ 2]) -
22988 (target_code
* NPHY_RSSICAL_NPOLL
));
22989 if (curr_d
< min_d
) {
22993 if (poll_results
[vcm
][result_idx
] < min_poll
)
22994 min_poll
= poll_results
[vcm
][result_idx
];
22996 vcm_final
[result_idx
] = min_vcm
;
22997 poll_results_min
[result_idx
] = min_poll
;
23000 if (rssi_type
!= NPHY_RSSI_SEL_W2
)
23001 wlc_phy_set_rssi_2055_vcm(pi
, rssi_type
, vcm_final
);
23003 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
23004 fine_digital_offset
[result_idx
] =
23005 (target_code
* NPHY_RSSICAL_NPOLL
) -
23006 poll_results
[vcm_final
[result_idx
]][result_idx
];
23007 if (fine_digital_offset
[result_idx
] < 0) {
23008 fine_digital_offset
[result_idx
] =
23009 abs(fine_digital_offset
[result_idx
]);
23010 fine_digital_offset
[result_idx
] +=
23011 (NPHY_RSSICAL_NPOLL
/ 2);
23012 fine_digital_offset
[result_idx
] /= NPHY_RSSICAL_NPOLL
;
23013 fine_digital_offset
[result_idx
] =
23014 -fine_digital_offset
[result_idx
];
23016 fine_digital_offset
[result_idx
] +=
23017 (NPHY_RSSICAL_NPOLL
/ 2);
23018 fine_digital_offset
[result_idx
] /= NPHY_RSSICAL_NPOLL
;
23021 if (poll_results_min
[result_idx
] ==
23022 NPHY_RSSICAL_MAXREAD
* NPHY_RSSICAL_NPOLL
)
23023 fine_digital_offset
[result_idx
] =
23024 (target_code
- NPHY_RSSICAL_MAXREAD
- 1);
23026 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0,
23028 fine_digital_offset
[result_idx
],
23030 0) ? RADIO_MIMO_CORESEL_CORE1
:
23031 RADIO_MIMO_CORESEL_CORE2
,
23033 0) ? NPHY_RAIL_I
: NPHY_RAIL_Q
,
23037 mod_radio_reg(pi
, RADIO_2055_PD_CORE1_RSSI_MISC
, pd_mask
, pd_state
[0]);
23038 mod_radio_reg(pi
, RADIO_2055_PD_CORE2_RSSI_MISC
, pd_mask
, pd_state
[1]);
23039 if (rssi_ctrl_state
[0] == RADIO_2055_NBRSSI_SEL
)
23040 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
23042 else if (rssi_ctrl_state
[0] == RADIO_2055_WBRSSI_G1_SEL
)
23043 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
23045 else if (rssi_ctrl_state
[0] == RADIO_2055_WBRSSI_G2_SEL
)
23046 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
23049 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
23051 if (rssi_ctrl_state
[1] == RADIO_2055_NBRSSI_SEL
)
23052 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
23054 else if (rssi_ctrl_state
[1] == RADIO_2055_WBRSSI_G1_SEL
)
23055 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
23057 else if (rssi_ctrl_state
[1] == RADIO_2055_WBRSSI_G2_SEL
)
23058 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
23061 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
23064 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_OFF
, rssi_type
);
23066 write_phy_reg(pi
, 0x91, rfctrlintc_state
[0]);
23067 write_radio_reg(pi
, RADIO_2055_PD_CORE1_RXTX
, rfpdcorerxtx_state
[0]);
23068 write_phy_reg(pi
, 0x92, rfctrlintc_state
[1]);
23069 write_radio_reg(pi
, RADIO_2055_PD_CORE2_RXTX
, rfpdcorerxtx_state
[1]);
23071 wlc_phy_classifier_nphy(pi
, (0x7 << 0), classif_state
);
23072 wlc_phy_clip_det_nphy(pi
, 1, clip_state
);
23074 wlc_phy_resetcca_nphy(pi
);
23077 void wlc_phy_rssi_cal_nphy(struct brcms_phy
*pi
)
23079 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23080 wlc_phy_rssi_cal_nphy_rev3(pi
);
23082 wlc_phy_rssi_cal_nphy_rev2(pi
, NPHY_RSSI_SEL_NB
);
23083 wlc_phy_rssi_cal_nphy_rev2(pi
, NPHY_RSSI_SEL_W1
);
23084 wlc_phy_rssi_cal_nphy_rev2(pi
, NPHY_RSSI_SEL_W2
);
23089 wlc_phy_rssi_compute_nphy(struct brcms_phy
*pi
, struct d11rxhdr
*rxh
)
23091 s16 rxpwr
, rxpwr0
, rxpwr1
;
23092 s16 phyRx0_l
, phyRx2_l
;
23095 rxpwr0
= rxh
->PhyRxStatus_1
& PRXS1_nphy_PWR0_MASK
;
23096 rxpwr1
= (rxh
->PhyRxStatus_1
& PRXS1_nphy_PWR1_MASK
) >> 8;
23103 phyRx0_l
= rxh
->PhyRxStatus_0
& 0x00ff;
23104 phyRx2_l
= rxh
->PhyRxStatus_2
& 0x00ff;
23105 if (phyRx2_l
> 127)
23108 if (((rxpwr0
== 16) || (rxpwr0
== 32))) {
23113 if (pi
->sh
->rssi_mode
== RSSI_ANT_MERGE_MAX
)
23114 rxpwr
= (rxpwr0
> rxpwr1
) ? rxpwr0
: rxpwr1
;
23115 else if (pi
->sh
->rssi_mode
== RSSI_ANT_MERGE_MIN
)
23116 rxpwr
= (rxpwr0
< rxpwr1
) ? rxpwr0
: rxpwr1
;
23117 else if (pi
->sh
->rssi_mode
== RSSI_ANT_MERGE_AVG
)
23118 rxpwr
= (rxpwr0
+ rxpwr1
) >> 1;
23124 wlc_phy_loadsampletable_nphy(struct brcms_phy
*pi
, struct cordic_iq
*tone_buf
,
23128 u32
*data_buf
= NULL
;
23130 data_buf
= kmalloc(sizeof(u32
) * num_samps
, GFP_ATOMIC
);
23131 if (data_buf
== NULL
)
23134 if (pi
->phyhang_avoid
)
23135 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
23137 for (t
= 0; t
< num_samps
; t
++)
23138 data_buf
[t
] = ((((unsigned int)tone_buf
[t
].i
) & 0x3ff) << 10) |
23139 (((unsigned int)tone_buf
[t
].q
) & 0x3ff);
23140 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_SAMPLEPLAY
, num_samps
, 0, 32,
23145 if (pi
->phyhang_avoid
)
23146 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
23150 wlc_phy_gen_load_samples_nphy(struct brcms_phy
*pi
, u32 f_kHz
, u16 max_val
,
23153 u8 phy_bw
, is_phybw40
;
23154 u16 num_samps
, t
, spur
;
23155 s32 theta
= 0, rot
= 0;
23157 struct cordic_iq
*tone_buf
= NULL
;
23159 is_phybw40
= CHSPEC_IS40(pi
->radio_chanspec
);
23160 phy_bw
= (is_phybw40
== 1) ? 40 : 20;
23161 tbl_len
= (phy_bw
<< 3);
23163 if (dac_test_mode
== 1) {
23164 spur
= read_phy_reg(pi
, 0x01);
23165 spur
= (spur
>> 15) & 1;
23166 phy_bw
= (spur
== 1) ? 82 : 80;
23167 phy_bw
= (is_phybw40
== 1) ? (phy_bw
<< 1) : phy_bw
;
23169 tbl_len
= (phy_bw
<< 1);
23172 tone_buf
= kmalloc(sizeof(struct cordic_iq
) * tbl_len
, GFP_ATOMIC
);
23173 if (tone_buf
== NULL
)
23176 num_samps
= (u16
) tbl_len
;
23177 rot
= ((f_kHz
* 36) / phy_bw
) / 100;
23180 for (t
= 0; t
< num_samps
; t
++) {
23182 tone_buf
[t
] = cordic_calc_iq(theta
);
23186 tone_buf
[t
].q
= (s32
) FLOAT(tone_buf
[t
].q
* max_val
);
23187 tone_buf
[t
].i
= (s32
) FLOAT(tone_buf
[t
].i
* max_val
);
23190 wlc_phy_loadsampletable_nphy(pi
, tone_buf
, num_samps
);
23198 wlc_phy_runsamples_nphy(struct brcms_phy
*pi
, u16 num_samps
, u16 loops
,
23199 u16 wait
, u8 iqmode
, u8 dac_test_mode
,
23200 bool modify_bbmult
)
23203 u8 phy_bw
, sample_cmd
;
23204 u16 orig_RfseqCoreActv
;
23205 u16 lpf_bw_ctl_override3
, lpf_bw_ctl_override4
, lpf_bw_ctl_miscreg3
,
23206 lpf_bw_ctl_miscreg4
;
23208 if (pi
->phyhang_avoid
)
23209 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
23212 if (CHSPEC_IS40(pi
->radio_chanspec
))
23215 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
23217 lpf_bw_ctl_override3
= read_phy_reg(pi
, 0x342) & (0x1 << 7);
23218 lpf_bw_ctl_override4
= read_phy_reg(pi
, 0x343) & (0x1 << 7);
23219 if (lpf_bw_ctl_override3
| lpf_bw_ctl_override4
) {
23220 lpf_bw_ctl_miscreg3
= read_phy_reg(pi
, 0x340) &
23222 lpf_bw_ctl_miscreg4
= read_phy_reg(pi
, 0x341) &
23225 wlc_phy_rfctrl_override_nphy_rev7(
23228 wlc_phy_read_lpf_bw_ctl_nphy
23231 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
23233 pi
->nphy_sample_play_lpf_bw_ctl_ovr
= true;
23235 lpf_bw_ctl_miscreg3
= read_phy_reg(pi
, 0x340) &
23237 lpf_bw_ctl_miscreg4
= read_phy_reg(pi
, 0x341) &
23242 if ((pi
->nphy_bb_mult_save
& BB_MULT_VALID_MASK
) == 0) {
23244 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, 87, 16,
23246 pi
->nphy_bb_mult_save
=
23247 BB_MULT_VALID_MASK
| (bb_mult
& BB_MULT_MASK
);
23250 if (modify_bbmult
) {
23251 bb_mult
= (phy_bw
== 20) ? 100 : 71;
23252 bb_mult
= (bb_mult
<< 8) + bb_mult
;
23253 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, 87, 16,
23257 if (pi
->phyhang_avoid
)
23258 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
23260 write_phy_reg(pi
, 0xc6, num_samps
- 1);
23262 if (loops
!= 0xffff)
23263 write_phy_reg(pi
, 0xc4, loops
- 1);
23265 write_phy_reg(pi
, 0xc4, loops
);
23267 write_phy_reg(pi
, 0xc5, wait
);
23269 orig_RfseqCoreActv
= read_phy_reg(pi
, 0xa1);
23270 or_phy_reg(pi
, 0xa1, NPHY_RfseqMode_CoreActv_override
);
23273 and_phy_reg(pi
, 0xc2, 0x7FFF);
23275 or_phy_reg(pi
, 0xc2, 0x8000);
23278 sample_cmd
= (dac_test_mode
== 1) ? 0x5 : 0x1;
23279 write_phy_reg(pi
, 0xc3, sample_cmd
);
23282 SPINWAIT(((read_phy_reg(pi
, 0xa4) & 0x1) == 1), 1000);
23284 write_phy_reg(pi
, 0xa1, orig_RfseqCoreActv
);
23288 wlc_phy_tx_tone_nphy(struct brcms_phy
*pi
, u32 f_kHz
, u16 max_val
,
23289 u8 iqmode
, u8 dac_test_mode
, bool modify_bbmult
)
23292 u16 loops
= 0xffff;
23295 num_samps
= wlc_phy_gen_load_samples_nphy(pi
, f_kHz
, max_val
,
23297 if (num_samps
== 0)
23300 wlc_phy_runsamples_nphy(pi
, num_samps
, loops
, wait
, iqmode
,
23301 dac_test_mode
, modify_bbmult
);
23306 void wlc_phy_stopplayback_nphy(struct brcms_phy
*pi
)
23308 u16 playback_status
;
23311 if (pi
->phyhang_avoid
)
23312 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
23314 playback_status
= read_phy_reg(pi
, 0xc7);
23315 if (playback_status
& 0x1)
23316 or_phy_reg(pi
, 0xc3, NPHY_sampleCmd_STOP
);
23317 else if (playback_status
& 0x2)
23318 and_phy_reg(pi
, 0xc2,
23319 (u16
) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN
);
23321 and_phy_reg(pi
, 0xc3, (u16
) ~(0x1 << 2));
23323 if ((pi
->nphy_bb_mult_save
& BB_MULT_VALID_MASK
) != 0) {
23325 bb_mult
= pi
->nphy_bb_mult_save
& BB_MULT_MASK
;
23326 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, 87, 16,
23329 pi
->nphy_bb_mult_save
= 0;
23332 if (NREV_IS(pi
->pubpi
.phy_rev
, 7) || NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
23333 if (pi
->nphy_sample_play_lpf_bw_ctl_ovr
) {
23334 wlc_phy_rfctrl_override_nphy_rev7(
23338 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
23339 pi
->nphy_sample_play_lpf_bw_ctl_ovr
= false;
23343 if (pi
->phyhang_avoid
)
23344 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
23347 static u32
*brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy
*pi
)
23349 u32
*tx_pwrctrl_tbl
= NULL
;
23350 uint phyrev
= pi
->pubpi
.phy_rev
;
23354 wlc_phy_get_ipa_gaintbl_nphy(pi
);
23356 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
23357 if (NREV_IS(phyrev
, 3))
23358 tx_pwrctrl_tbl
= nphy_tpc_5GHz_txgain_rev3
;
23359 else if (NREV_IS(phyrev
, 4))
23361 (pi
->srom_fem5g
.extpagain
== 3) ?
23362 nphy_tpc_5GHz_txgain_HiPwrEPA
:
23363 nphy_tpc_5GHz_txgain_rev4
;
23365 tx_pwrctrl_tbl
= nphy_tpc_5GHz_txgain_rev5
;
23367 if (NREV_GE(phyrev
, 7)) {
23368 if (pi
->pubpi
.radiorev
== 3)
23370 nphy_tpc_txgain_epa_2057rev3
;
23371 else if (pi
->pubpi
.radiorev
== 5)
23373 nphy_tpc_txgain_epa_2057rev5
;
23375 if (NREV_GE(phyrev
, 5) &&
23376 (pi
->srom_fem2g
.extpagain
== 3))
23378 nphy_tpc_txgain_HiPwrEPA
;
23381 nphy_tpc_txgain_rev3
;
23385 return tx_pwrctrl_tbl
;
23388 struct nphy_txgains
wlc_phy_get_tx_gain_nphy(struct brcms_phy
*pi
)
23390 u16 base_idx
[2], curr_gain
[2];
23392 struct nphy_txgains target_gain
;
23393 u32
*tx_pwrctrl_tbl
= NULL
;
23395 if (pi
->nphy_txpwrctrl
== PHY_TPC_HW_OFF
) {
23396 if (pi
->phyhang_avoid
)
23397 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
23399 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
23402 if (pi
->phyhang_avoid
)
23403 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
23405 for (core_no
= 0; core_no
< 2; core_no
++) {
23406 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
23407 target_gain
.ipa
[core_no
] =
23408 curr_gain
[core_no
] & 0x0007;
23409 target_gain
.pad
[core_no
] =
23410 ((curr_gain
[core_no
] & 0x00F8) >> 3);
23411 target_gain
.pga
[core_no
] =
23412 ((curr_gain
[core_no
] & 0x0F00) >> 8);
23413 target_gain
.txgm
[core_no
] =
23414 ((curr_gain
[core_no
] & 0x7000) >> 12);
23415 target_gain
.txlpf
[core_no
] =
23416 ((curr_gain
[core_no
] & 0x8000) >> 15);
23417 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23418 target_gain
.ipa
[core_no
] =
23419 curr_gain
[core_no
] & 0x000F;
23420 target_gain
.pad
[core_no
] =
23421 ((curr_gain
[core_no
] & 0x00F0) >> 4);
23422 target_gain
.pga
[core_no
] =
23423 ((curr_gain
[core_no
] & 0x0F00) >> 8);
23424 target_gain
.txgm
[core_no
] =
23425 ((curr_gain
[core_no
] & 0x7000) >> 12);
23427 target_gain
.ipa
[core_no
] =
23428 curr_gain
[core_no
] & 0x0003;
23429 target_gain
.pad
[core_no
] =
23430 ((curr_gain
[core_no
] & 0x000C) >> 2);
23431 target_gain
.pga
[core_no
] =
23432 ((curr_gain
[core_no
] & 0x0070) >> 4);
23433 target_gain
.txgm
[core_no
] =
23434 ((curr_gain
[core_no
] & 0x0380) >> 7);
23438 uint phyrev
= pi
->pubpi
.phy_rev
;
23440 base_idx
[0] = (read_phy_reg(pi
, 0x1ed) >> 8) & 0x7f;
23441 base_idx
[1] = (read_phy_reg(pi
, 0x1ee) >> 8) & 0x7f;
23442 for (core_no
= 0; core_no
< 2; core_no
++) {
23443 if (NREV_GE(phyrev
, 3)) {
23445 brcms_phy_get_tx_pwrctrl_tbl(pi
);
23446 if (NREV_GE(phyrev
, 7)) {
23447 target_gain
.ipa
[core_no
] =
23449 [base_idx
[core_no
]]
23451 target_gain
.pad
[core_no
] =
23453 [base_idx
[core_no
]]
23455 target_gain
.pga
[core_no
] =
23457 [base_idx
[core_no
]]
23459 target_gain
.txgm
[core_no
] =
23461 [base_idx
[core_no
]]
23463 target_gain
.txlpf
[core_no
] =
23465 [base_idx
[core_no
]]
23468 target_gain
.ipa
[core_no
] =
23470 [base_idx
[core_no
]]
23472 target_gain
.pad
[core_no
] =
23474 [base_idx
[core_no
]]
23476 target_gain
.pga
[core_no
] =
23478 [base_idx
[core_no
]]
23480 target_gain
.txgm
[core_no
] =
23482 [base_idx
[core_no
]]
23486 target_gain
.ipa
[core_no
] =
23487 (nphy_tpc_txgain
[base_idx
[core_no
]] >>
23489 target_gain
.pad
[core_no
] =
23490 (nphy_tpc_txgain
[base_idx
[core_no
]] >>
23492 target_gain
.pga
[core_no
] =
23493 (nphy_tpc_txgain
[base_idx
[core_no
]] >>
23495 target_gain
.txgm
[core_no
] =
23496 (nphy_tpc_txgain
[base_idx
[core_no
]] >>
23502 return target_gain
;
23506 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy
*pi
, u16 core_no
,
23507 struct nphy_txgains target_gain
,
23508 struct nphy_iqcal_params
*params
)
23513 u8 band_idx
= (CHSPEC_IS5G(pi
->radio_chanspec
) ? 1 : 0);
23515 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23516 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
23517 params
->txlpf
= target_gain
.txlpf
[core_no
];
23519 params
->txgm
= target_gain
.txgm
[core_no
];
23520 params
->pga
= target_gain
.pga
[core_no
];
23521 params
->pad
= target_gain
.pad
[core_no
];
23522 params
->ipa
= target_gain
.ipa
[core_no
];
23523 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
23525 ((params
->txlpf
<< 15) | (params
->txgm
<< 12) |
23526 (params
->pga
<< 8) |
23527 (params
->pad
<< 3) | (params
->ipa
));
23530 ((params
->txgm
<< 12) | (params
->pga
<< 8) |
23531 (params
->pad
<< 4) | (params
->ipa
));
23533 params
->ncorr
[0] = 0x79;
23534 params
->ncorr
[1] = 0x79;
23535 params
->ncorr
[2] = 0x79;
23536 params
->ncorr
[3] = 0x79;
23537 params
->ncorr
[4] = 0x79;
23540 gain_index
= ((target_gain
.pad
[core_no
] << 0) |
23541 (target_gain
.pga
[core_no
] << 4) |
23542 (target_gain
.txgm
[core_no
] << 8));
23545 for (k
= 0; k
< NPHY_IQCAL_NUMGAINS
; k
++) {
23546 if (tbl_iqcal_gainparams_nphy
[band_idx
][k
][0] ==
23553 params
->txgm
= tbl_iqcal_gainparams_nphy
[band_idx
][k
][1];
23554 params
->pga
= tbl_iqcal_gainparams_nphy
[band_idx
][k
][2];
23555 params
->pad
= tbl_iqcal_gainparams_nphy
[band_idx
][k
][3];
23556 params
->cal_gain
= ((params
->txgm
<< 7) | (params
->pga
<< 4) |
23557 (params
->pad
<< 2));
23558 params
->ncorr
[0] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][4];
23559 params
->ncorr
[1] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][5];
23560 params
->ncorr
[2] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][6];
23561 params
->ncorr
[3] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][7];
23565 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy
*pi
)
23567 u16 jtag_core
, core
;
23569 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
23571 for (core
= 0; core
<= 1; core
++) {
23573 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 0] =
23574 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23577 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 1] =
23578 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23581 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 2] =
23582 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23585 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 3] =
23586 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23589 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 4] = 0;
23591 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 5] =
23592 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23595 if (pi
->pubpi
.radiorev
!= 5)
23596 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 6] =
23597 READ_RADIO_REG3(pi
, RADIO_2057
, TX
,
23601 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 7] =
23602 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSIG
);
23604 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 8] =
23605 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23608 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
23609 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23610 TX_SSI_MASTER
, 0x0a);
23611 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23612 IQCAL_VCM_HG
, 0x43);
23613 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23615 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23617 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23619 if (pi
->use_int_tx_iqlo_cal_nphy
) {
23620 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
23621 core
, TX_SSI_MUX
, 0x4);
23623 internal_tx_iqlo_cal_tapoff_intpa_nphy
))
23624 WRITE_RADIO_REG3(pi
, RADIO_2057
,
23628 WRITE_RADIO_REG3(pi
, RADIO_2057
,
23632 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23635 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23636 TX_SSI_MASTER
, 0x06);
23637 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23638 IQCAL_VCM_HG
, 0x43);
23639 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23641 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23644 if (pi
->pubpi
.radiorev
!= 5)
23645 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
23646 core
, TSSIA
, 0x00);
23647 if (pi
->use_int_tx_iqlo_cal_nphy
) {
23648 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
23652 internal_tx_iqlo_cal_tapoff_intpa_nphy
))
23653 WRITE_RADIO_REG3(pi
, RADIO_2057
,
23657 WRITE_RADIO_REG3(pi
, RADIO_2057
,
23661 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23665 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23667 for (core
= 0; core
<= 1; core
++) {
23670 PHY_CORE_0
) ? RADIO_2056_TX0
: RADIO_2056_TX1
;
23672 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 0] =
23674 RADIO_2056_TX_TX_SSI_MASTER
|
23677 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 1] =
23679 RADIO_2056_TX_IQCAL_VCM_HG
|
23682 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 2] =
23684 RADIO_2056_TX_IQCAL_IDAC
|
23687 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 3] =
23690 RADIO_2056_TX_TSSI_VCM
|
23693 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 4] =
23695 RADIO_2056_TX_TX_AMP_DET
|
23698 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 5] =
23700 RADIO_2056_TX_TX_SSI_MUX
|
23703 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 6] =
23705 RADIO_2056_TX_TSSIA
| jtag_core
);
23707 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 7] =
23709 RADIO_2056_TX_TSSIG
| jtag_core
);
23711 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 8] =
23713 RADIO_2056_TX_TSSI_MISC1
|
23716 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 9] =
23718 RADIO_2056_TX_TSSI_MISC2
|
23721 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 10] =
23723 RADIO_2056_TX_TSSI_MISC3
|
23726 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
23727 write_radio_reg(pi
,
23728 RADIO_2056_TX_TX_SSI_MASTER
|
23730 write_radio_reg(pi
,
23731 RADIO_2056_TX_IQCAL_VCM_HG
|
23733 write_radio_reg(pi
,
23734 RADIO_2056_TX_IQCAL_IDAC
|
23736 write_radio_reg(pi
,
23737 RADIO_2056_TX_TSSI_VCM
|
23739 write_radio_reg(pi
,
23740 RADIO_2056_TX_TX_AMP_DET
|
23746 RADIO_2056_TX_TX_SSI_MUX
23748 write_radio_reg(pi
,
23749 RADIO_2056_TX_TSSIA
|
23754 RADIO_2056_TX_TX_SSI_MUX
23755 | jtag_core
, 0x00);
23756 write_radio_reg(pi
,
23757 RADIO_2056_TX_TSSIA
|
23760 write_radio_reg(pi
,
23761 RADIO_2056_TX_TSSIG
| jtag_core
,
23763 write_radio_reg(pi
,
23764 RADIO_2056_TX_TSSI_MISC1
|
23767 write_radio_reg(pi
,
23768 RADIO_2056_TX_TSSI_MISC2
|
23770 write_radio_reg(pi
,
23771 RADIO_2056_TX_TSSI_MISC3
|
23774 write_radio_reg(pi
,
23775 RADIO_2056_TX_TX_SSI_MASTER
|
23777 write_radio_reg(pi
,
23778 RADIO_2056_TX_IQCAL_VCM_HG
|
23780 write_radio_reg(pi
,
23781 RADIO_2056_TX_IQCAL_IDAC
|
23783 write_radio_reg(pi
,
23784 RADIO_2056_TX_TSSI_VCM
|
23786 write_radio_reg(pi
,
23787 RADIO_2056_TX_TX_AMP_DET
|
23789 write_radio_reg(pi
,
23790 RADIO_2056_TX_TSSIA
| jtag_core
,
23797 RADIO_2056_TX_TX_SSI_MUX
23798 | jtag_core
, 0x06);
23799 if (NREV_LT(pi
->pubpi
.phy_rev
, 5))
23802 RADIO_2056_TX_TSSIG
23808 RADIO_2056_TX_TSSIG
23814 RADIO_2056_TX_TX_SSI_MUX
23815 | jtag_core
, 0x00);
23816 write_radio_reg(pi
,
23817 RADIO_2056_TX_TSSIG
|
23821 write_radio_reg(pi
,
23822 RADIO_2056_TX_TSSI_MISC1
|
23824 write_radio_reg(pi
,
23825 RADIO_2056_TX_TSSI_MISC2
|
23827 write_radio_reg(pi
,
23828 RADIO_2056_TX_TSSI_MISC3
|
23834 pi
->tx_rx_cal_radio_saveregs
[0] =
23835 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
);
23836 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
, 0x29);
23837 pi
->tx_rx_cal_radio_saveregs
[1] =
23838 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
);
23839 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
, 0x54);
23841 pi
->tx_rx_cal_radio_saveregs
[2] =
23842 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
);
23843 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
, 0x29);
23844 pi
->tx_rx_cal_radio_saveregs
[3] =
23845 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
);
23846 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
, 0x54);
23848 pi
->tx_rx_cal_radio_saveregs
[4] =
23849 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
);
23850 pi
->tx_rx_cal_radio_saveregs
[5] =
23851 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
);
23853 if ((read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
) ==
23856 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
, 0x04);
23857 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
, 0x04);
23860 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
, 0x20);
23861 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
, 0x20);
23864 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
23866 or_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
, 0x20);
23867 or_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
, 0x20);
23870 and_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
, 0xdf);
23871 and_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
, 0xdf);
23876 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy
*pi
)
23878 u16 jtag_core
, core
;
23880 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
23881 for (core
= 0; core
<= 1; core
++) {
23883 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23886 tx_rx_cal_radio_saveregs
[(core
* 11) +
23889 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_VCM_HG
,
23891 tx_rx_cal_radio_saveregs
[(core
* 11) +
23894 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_IDAC
,
23896 tx_rx_cal_radio_saveregs
[(core
* 11) +
23899 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_VCM
,
23901 tx_rx_cal_radio_saveregs
[(core
* 11) +
23904 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TX_SSI_MUX
,
23906 tx_rx_cal_radio_saveregs
[(core
* 11) +
23909 if (pi
->pubpi
.radiorev
!= 5)
23910 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23912 pi
->tx_rx_cal_radio_saveregs
23913 [(core
* 11) + 6]);
23915 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSIG
,
23917 tx_rx_cal_radio_saveregs
[(core
* 11) +
23920 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_MISC1
,
23922 tx_rx_cal_radio_saveregs
[(core
* 11) +
23925 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23926 for (core
= 0; core
<= 1; core
++) {
23927 jtag_core
= (core
== PHY_CORE_0
) ?
23928 RADIO_2056_TX0
: RADIO_2056_TX1
;
23930 write_radio_reg(pi
,
23931 RADIO_2056_TX_TX_SSI_MASTER
| jtag_core
,
23933 tx_rx_cal_radio_saveregs
[(core
* 11) +
23936 write_radio_reg(pi
,
23937 RADIO_2056_TX_IQCAL_VCM_HG
| jtag_core
,
23939 tx_rx_cal_radio_saveregs
[(core
* 11) +
23942 write_radio_reg(pi
,
23943 RADIO_2056_TX_IQCAL_IDAC
| jtag_core
,
23945 tx_rx_cal_radio_saveregs
[(core
* 11) +
23948 write_radio_reg(pi
, RADIO_2056_TX_TSSI_VCM
| jtag_core
,
23950 tx_rx_cal_radio_saveregs
[(core
* 11) +
23953 write_radio_reg(pi
,
23954 RADIO_2056_TX_TX_AMP_DET
| jtag_core
,
23956 tx_rx_cal_radio_saveregs
[(core
* 11) +
23959 write_radio_reg(pi
,
23960 RADIO_2056_TX_TX_SSI_MUX
| jtag_core
,
23962 tx_rx_cal_radio_saveregs
[(core
* 11) +
23965 write_radio_reg(pi
, RADIO_2056_TX_TSSIA
| jtag_core
,
23967 tx_rx_cal_radio_saveregs
[(core
* 11) +
23970 write_radio_reg(pi
, RADIO_2056_TX_TSSIG
| jtag_core
,
23972 tx_rx_cal_radio_saveregs
[(core
* 11) +
23975 write_radio_reg(pi
,
23976 RADIO_2056_TX_TSSI_MISC1
| jtag_core
,
23978 tx_rx_cal_radio_saveregs
[(core
* 11) +
23981 write_radio_reg(pi
,
23982 RADIO_2056_TX_TSSI_MISC2
| jtag_core
,
23984 tx_rx_cal_radio_saveregs
[(core
* 11) +
23987 write_radio_reg(pi
,
23988 RADIO_2056_TX_TSSI_MISC3
| jtag_core
,
23990 tx_rx_cal_radio_saveregs
[(core
* 11) +
23995 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
,
23996 pi
->tx_rx_cal_radio_saveregs
[0]);
23997 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
,
23998 pi
->tx_rx_cal_radio_saveregs
[1]);
23999 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
,
24000 pi
->tx_rx_cal_radio_saveregs
[2]);
24001 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
,
24002 pi
->tx_rx_cal_radio_saveregs
[3]);
24003 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
,
24004 pi
->tx_rx_cal_radio_saveregs
[4]);
24005 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
,
24006 pi
->tx_rx_cal_radio_saveregs
[5]);
24010 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy
*pi
)
24014 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
24015 pi
->tx_rx_cal_phy_saveregs
[0] = read_phy_reg(pi
, 0xa6);
24016 pi
->tx_rx_cal_phy_saveregs
[1] = read_phy_reg(pi
, 0xa7);
24018 mask
= ((0x3 << 8) | (0x3 << 10));
24020 val
|= (0x2 << 10);
24021 mod_phy_reg(pi
, 0xa6, mask
, val
);
24022 mod_phy_reg(pi
, 0xa7, mask
, val
);
24024 val
= read_phy_reg(pi
, 0x8f);
24025 pi
->tx_rx_cal_phy_saveregs
[2] = val
;
24026 val
|= ((0x1 << 9) | (0x1 << 10));
24027 write_phy_reg(pi
, 0x8f, val
);
24029 val
= read_phy_reg(pi
, 0xa5);
24030 pi
->tx_rx_cal_phy_saveregs
[3] = val
;
24031 val
|= ((0x1 << 9) | (0x1 << 10));
24032 write_phy_reg(pi
, 0xa5, val
);
24034 pi
->tx_rx_cal_phy_saveregs
[4] = read_phy_reg(pi
, 0x01);
24035 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
24037 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 3, 16,
24039 pi
->tx_rx_cal_phy_saveregs
[5] = val
;
24041 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 3, 16,
24044 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 19, 16,
24046 pi
->tx_rx_cal_phy_saveregs
[6] = val
;
24048 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 19, 16,
24051 pi
->tx_rx_cal_phy_saveregs
[7] = read_phy_reg(pi
, 0x91);
24052 pi
->tx_rx_cal_phy_saveregs
[8] = read_phy_reg(pi
, 0x92);
24054 if (!(pi
->use_int_tx_iqlo_cal_nphy
))
24055 wlc_phy_rfctrlintc_override_nphy(
24057 NPHY_RfctrlIntc_override_PA
,
24059 RADIO_MIMO_CORESEL_CORE1
24061 RADIO_MIMO_CORESEL_CORE2
);
24063 wlc_phy_rfctrlintc_override_nphy(
24065 NPHY_RfctrlIntc_override_PA
,
24067 RADIO_MIMO_CORESEL_CORE1
24069 RADIO_MIMO_CORESEL_CORE2
);
24071 wlc_phy_rfctrlintc_override_nphy(pi
,
24072 NPHY_RfctrlIntc_override_TRSW
,
24073 0x2, RADIO_MIMO_CORESEL_CORE1
);
24074 wlc_phy_rfctrlintc_override_nphy(pi
,
24075 NPHY_RfctrlIntc_override_TRSW
,
24076 0x8, RADIO_MIMO_CORESEL_CORE2
);
24078 pi
->tx_rx_cal_phy_saveregs
[9] = read_phy_reg(pi
, 0x297);
24079 pi
->tx_rx_cal_phy_saveregs
[10] = read_phy_reg(pi
, 0x29b);
24080 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
24081 0x29b, (0x1 << 0), (0) << 0);
24083 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
24084 0x29b, (0x1 << 0), (0) << 0);
24086 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
24087 || NREV_GE(pi
->pubpi
.phy_rev
, 8))
24088 wlc_phy_rfctrl_override_nphy_rev7(
24090 wlc_phy_read_lpf_bw_ctl_nphy
24093 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24095 if (pi
->use_int_tx_iqlo_cal_nphy
24096 && !(pi
->internal_tx_iqlo_cal_tapoff_intpa_nphy
)) {
24098 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
24100 mod_radio_reg(pi
, RADIO_2057_OVR_REG0
, 1 << 4,
24103 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24106 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
24110 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
24115 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0
,
24119 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1
,
24122 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
24123 wlc_phy_rfctrl_override_nphy_rev7(
24127 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24131 pi
->tx_rx_cal_phy_saveregs
[0] = read_phy_reg(pi
, 0xa6);
24132 pi
->tx_rx_cal_phy_saveregs
[1] = read_phy_reg(pi
, 0xa7);
24134 mask
= ((0x3 << 12) | (0x3 << 14));
24136 val
|= (0x2 << 14);
24137 mod_phy_reg(pi
, 0xa6, mask
, val
);
24138 mod_phy_reg(pi
, 0xa7, mask
, val
);
24140 val
= read_phy_reg(pi
, 0xa5);
24141 pi
->tx_rx_cal_phy_saveregs
[2] = val
;
24142 val
|= ((0x1 << 12) | (0x1 << 13));
24143 write_phy_reg(pi
, 0xa5, val
);
24145 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 2, 16,
24147 pi
->tx_rx_cal_phy_saveregs
[3] = val
;
24149 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 2, 16,
24152 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 18, 16,
24154 pi
->tx_rx_cal_phy_saveregs
[4] = val
;
24156 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 18, 16,
24159 pi
->tx_rx_cal_phy_saveregs
[5] = read_phy_reg(pi
, 0x91);
24160 pi
->tx_rx_cal_phy_saveregs
[6] = read_phy_reg(pi
, 0x92);
24161 val
= CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x180 : 0x120;
24162 write_phy_reg(pi
, 0x91, val
);
24163 write_phy_reg(pi
, 0x92, val
);
24167 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy
*pi
)
24171 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
24172 write_phy_reg(pi
, 0xa6, pi
->tx_rx_cal_phy_saveregs
[0]);
24173 write_phy_reg(pi
, 0xa7, pi
->tx_rx_cal_phy_saveregs
[1]);
24174 write_phy_reg(pi
, 0x8f, pi
->tx_rx_cal_phy_saveregs
[2]);
24175 write_phy_reg(pi
, 0xa5, pi
->tx_rx_cal_phy_saveregs
[3]);
24176 write_phy_reg(pi
, 0x01, pi
->tx_rx_cal_phy_saveregs
[4]);
24178 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 3, 16,
24179 &pi
->tx_rx_cal_phy_saveregs
[5]);
24180 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 19, 16,
24181 &pi
->tx_rx_cal_phy_saveregs
[6]);
24183 write_phy_reg(pi
, 0x91, pi
->tx_rx_cal_phy_saveregs
[7]);
24184 write_phy_reg(pi
, 0x92, pi
->tx_rx_cal_phy_saveregs
[8]);
24186 write_phy_reg(pi
, 0x297, pi
->tx_rx_cal_phy_saveregs
[9]);
24187 write_phy_reg(pi
, 0x29b, pi
->tx_rx_cal_phy_saveregs
[10]);
24189 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
24190 || NREV_GE(pi
->pubpi
.phy_rev
, 8))
24191 wlc_phy_rfctrl_override_nphy_rev7(
24192 pi
, (0x1 << 7), 0, 0,
24194 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24196 wlc_phy_resetcca_nphy(pi
);
24198 if (pi
->use_int_tx_iqlo_cal_nphy
24199 && !(pi
->internal_tx_iqlo_cal_tapoff_intpa_nphy
)) {
24201 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
24202 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24205 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
24209 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
24214 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0
,
24218 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1
,
24222 mod_radio_reg(pi
, RADIO_2057_OVR_REG0
, 1 << 4,
24224 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
24225 wlc_phy_rfctrl_override_nphy_rev7(
24229 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24233 mask
= ((0x3 << 12) | (0x3 << 14));
24234 mod_phy_reg(pi
, 0xa6, mask
, pi
->tx_rx_cal_phy_saveregs
[0]);
24235 mod_phy_reg(pi
, 0xa7, mask
, pi
->tx_rx_cal_phy_saveregs
[1]);
24236 write_phy_reg(pi
, 0xa5, pi
->tx_rx_cal_phy_saveregs
[2]);
24238 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 2, 16,
24239 &pi
->tx_rx_cal_phy_saveregs
[3]);
24241 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 18, 16,
24242 &pi
->tx_rx_cal_phy_saveregs
[4]);
24244 write_phy_reg(pi
, 0x91, pi
->tx_rx_cal_phy_saveregs
[5]);
24245 write_phy_reg(pi
, 0x92, pi
->tx_rx_cal_phy_saveregs
[6]);
24250 wlc_phy_est_tonepwr_nphy(struct brcms_phy
*pi
, s32
*qdBm_pwrbuf
, u8 num_samps
)
24253 s32 temp
, pwrindex
[2];
24259 tssi_reg
= read_phy_reg(pi
, 0x1e9);
24261 temp
= (s32
) (tssi_reg
& 0x3f);
24262 idle_tssi
[0] = (temp
<= 31) ? temp
: (temp
- 64);
24264 temp
= (s32
) ((tssi_reg
>> 8) & 0x3f);
24265 idle_tssi
[1] = (temp
<= 31) ? temp
: (temp
- 64);
24268 CHSPEC_IS5G(pi
->radio_chanspec
) ?
24269 (u8
)NPHY_RSSI_SEL_TSSI_5G
: (u8
)NPHY_RSSI_SEL_TSSI_2G
;
24271 wlc_phy_poll_rssi_nphy(pi
, tssi_type
, rssi_buf
, num_samps
);
24273 tssival
[0] = rssi_buf
[0] / ((s32
) num_samps
);
24274 tssival
[1] = rssi_buf
[2] / ((s32
) num_samps
);
24276 pwrindex
[0] = idle_tssi
[0] - tssival
[0] + 64;
24277 pwrindex
[1] = idle_tssi
[1] - tssival
[1] + 64;
24279 if (pwrindex
[0] < 0)
24281 else if (pwrindex
[0] > 63)
24284 if (pwrindex
[1] < 0)
24286 else if (pwrindex
[1] > 63)
24289 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 1,
24290 (u32
) pwrindex
[0], 32, &qdBm_pwrbuf
[0]);
24291 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 1,
24292 (u32
) pwrindex
[1], 32, &qdBm_pwrbuf
[1]);
24295 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy
*pi
, u16 core
)
24302 struct nphy_txiqcal_ladder ladder_lo
[] = {
24303 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24304 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24305 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24308 struct nphy_txiqcal_ladder ladder_iq
[] = {
24309 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24310 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24311 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24314 bbmult
= (core
== PHY_CORE_0
) ?
24315 ((pi
->nphy_txcal_bbmult
>> 8) & 0xff) :
24316 (pi
->nphy_txcal_bbmult
& 0xff);
24318 for (index
= 0; index
< 18; index
++) {
24319 bbmult_scale
= ladder_lo
[index
].percent
* bbmult
;
24320 bbmult_scale
/= 100;
24323 ((bbmult_scale
& 0xff) << 8) | ladder_lo
[index
].g_env
;
24324 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, index
, 16,
24327 bbmult_scale
= ladder_iq
[index
].percent
* bbmult
;
24328 bbmult_scale
/= 100;
24331 ((bbmult_scale
& 0xff) << 8) | ladder_iq
[index
].g_env
;
24332 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, index
+ 32,
24337 static u8
wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy
*pi
, u8 core
)
24340 tmp
= read_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x1ed : 0x1ee));
24342 tmp
= (tmp
& (0x7f << 8)) >> 8;
24347 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy
*pi
, u8 idx0
, u8 idx1
)
24349 mod_phy_reg(pi
, 0x1e7, (0x7f << 0), idx0
);
24351 if (NREV_GT(pi
->pubpi
.phy_rev
, 1))
24352 mod_phy_reg(pi
, 0x222, (0xff << 0), idx1
);
24355 static u16
wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy
*pi
)
24359 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m0m1
);
24364 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy
*pi
, u8 m0
, u8 m1
)
24366 u16 m0m1
= (u16
) ((m0
<< 8) | m1
);
24368 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m0m1
);
24369 wlc_phy_table_write_nphy(pi
, 15, 1, 95, 16, &m0m1
);
24373 wlc_phy_papd_cal_setup_nphy(struct brcms_phy
*pi
,
24374 struct nphy_papd_restore_state
*state
, u8 core
)
24380 off_core
= core
^ 0x1;
24381 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
24383 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
24384 || NREV_GE(pi
->pubpi
.phy_rev
, 8))
24385 wlc_phy_rfctrl_override_nphy_rev7(
24387 wlc_phy_read_lpf_bw_ctl_nphy
24390 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24392 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24393 if (pi
->pubpi
.radiorev
== 5)
24394 mixgain
= (core
== 0) ? 0x20 : 0x00;
24395 else if ((pi
->pubpi
.radiorev
== 7)
24396 || (pi
->pubpi
.radiorev
== 8))
24398 else if ((pi
->pubpi
.radiorev
<= 4)
24399 || (pi
->pubpi
.radiorev
== 6))
24402 if ((pi
->pubpi
.radiorev
== 4) ||
24403 (pi
->pubpi
.radiorev
== 6))
24405 else if ((pi
->pubpi
.radiorev
== 3)
24406 || (pi
->pubpi
.radiorev
== 7)
24407 || (pi
->pubpi
.radiorev
== 8))
24411 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11),
24412 mixgain
, (1 << core
), 0,
24413 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24415 wlc_phy_rfctrl_override_1tomany_nphy(
24417 NPHY_REV7_RfctrlOverride_cmd_tx_pu
,
24418 1, (1 << core
), 0);
24419 wlc_phy_rfctrl_override_1tomany_nphy(
24421 NPHY_REV7_RfctrlOverride_cmd_tx_pu
,
24422 0, (1 << off_core
), 0);
24424 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
24426 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24427 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2), 1,
24429 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24430 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 0,
24432 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24433 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), 1,
24435 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
24436 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 8), 0,
24438 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24439 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 9), 1,
24441 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24442 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 10), 0,
24444 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24445 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3), 1,
24447 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24449 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5),
24451 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24452 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4), 0,
24454 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24456 state
->afectrl
[core
] = read_phy_reg(pi
, (core
== PHY_CORE_0
) ?
24458 state
->afeoverride
[core
] =
24459 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f : 0xa5);
24460 state
->afectrl
[off_core
] =
24461 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0xa7 : 0xa6);
24462 state
->afeoverride
[off_core
] =
24463 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0xa5 : 0x8f);
24465 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
24467 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
24468 0xa5), (0x1 << 2), (0x1 << 2));
24470 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa7 : 0xa6),
24471 (0x1 << 2), (0x1 << 2));
24472 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa5 :
24473 0x8f), (0x1 << 2), (0x1 << 2));
24475 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24476 state
->pwrup
[core
] =
24477 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24478 TXRXCOUPLE_2G_PWRUP
);
24479 state
->atten
[core
] =
24480 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24481 TXRXCOUPLE_2G_ATTEN
);
24482 state
->pwrup
[off_core
] =
24483 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24484 TXRXCOUPLE_2G_PWRUP
);
24485 state
->atten
[off_core
] =
24486 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24487 TXRXCOUPLE_2G_ATTEN
);
24489 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24490 TXRXCOUPLE_2G_PWRUP
, 0xc);
24492 if ((pi
->pubpi
.radiorev
== 3) ||
24493 (pi
->pubpi
.radiorev
== 4) ||
24494 (pi
->pubpi
.radiorev
== 6))
24495 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24496 TXRXCOUPLE_2G_ATTEN
, 0xf0);
24497 else if (pi
->pubpi
.radiorev
== 5)
24498 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24499 TXRXCOUPLE_2G_ATTEN
,
24500 (core
== 0) ? 0xf7 : 0xf2);
24501 else if ((pi
->pubpi
.radiorev
== 7)
24502 || (pi
->pubpi
.radiorev
== 8))
24503 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24504 TXRXCOUPLE_2G_ATTEN
, 0xf0);
24506 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24507 TXRXCOUPLE_2G_PWRUP
, 0x0);
24508 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24509 TXRXCOUPLE_2G_ATTEN
, 0xff);
24511 state
->pwrup
[core
] =
24512 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24513 TXRXCOUPLE_5G_PWRUP
);
24514 state
->atten
[core
] =
24515 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24516 TXRXCOUPLE_5G_ATTEN
);
24517 state
->pwrup
[off_core
] =
24518 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24519 TXRXCOUPLE_5G_PWRUP
);
24520 state
->atten
[off_core
] =
24521 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24522 TXRXCOUPLE_5G_ATTEN
);
24524 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24525 TXRXCOUPLE_5G_PWRUP
, 0xc);
24527 if ((pi
->pubpi
.radiorev
== 7)
24528 || (pi
->pubpi
.radiorev
== 8))
24529 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24530 TXRXCOUPLE_5G_ATTEN
, 0xf4);
24533 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24534 TXRXCOUPLE_5G_ATTEN
, 0xf0);
24536 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24537 TXRXCOUPLE_5G_PWRUP
, 0x0);
24538 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
24539 TXRXCOUPLE_5G_ATTEN
, 0xff);
24544 wlc_phy_tx_tone_nphy(pi
, tone_freq
, 181, 0, 0, false);
24546 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
24547 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON
) << 0);
24549 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
24550 0x2a4, (0x1 << 13), (1) << 13);
24552 mod_phy_reg(pi
, (off_core
== PHY_CORE_0
) ? 0x297 :
24553 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF
) << 0);
24555 mod_phy_reg(pi
, (off_core
== PHY_CORE_0
) ? 0x2a3 :
24556 0x2a4, (0x1 << 13), (0) << 13);
24560 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12), 0, 0x3, 0);
24562 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 1, 0, 0);
24564 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 0), 0, 0x3, 0);
24566 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 2), 1, 0x3, 0);
24567 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 1), 1, 0x3, 0);
24569 state
->afectrl
[core
] = read_phy_reg(pi
, (core
== PHY_CORE_0
) ?
24571 state
->afeoverride
[core
] =
24572 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f : 0xa5);
24574 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
24575 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24576 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
24580 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24582 state
->vga_master
[core
] =
24583 READ_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, VGA_MASTER
);
24584 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, VGA_MASTER
, 0x2b);
24585 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24586 state
->fbmix
[core
] =
24587 READ_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
24589 state
->intpa_master
[core
] =
24590 READ_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
24593 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, TXFBMIX_G
,
24595 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
24596 INTPAG_MASTER
, 0x04);
24598 state
->fbmix
[core
] =
24599 READ_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
24601 state
->intpa_master
[core
] =
24602 READ_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
24605 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, TXFBMIX_A
,
24607 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
24608 INTPAA_MASTER
, 0x04);
24614 wlc_phy_tx_tone_nphy(pi
, tone_freq
, 181, 0, 0, false);
24616 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
24617 0x29b, (0x1 << 0), (1) << 0);
24619 mod_phy_reg(pi
, (off_core
== PHY_CORE_0
) ? 0x297 :
24620 0x29b, (0x1 << 0), (0) << 0);
24622 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 0x3, 0);
24627 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy
*pi
,
24628 struct nphy_papd_restore_state
*state
)
24632 wlc_phy_stopplayback_nphy(pi
);
24634 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
24636 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
24638 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24639 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24640 TXRXCOUPLE_2G_PWRUP
, 0);
24641 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24642 TXRXCOUPLE_2G_ATTEN
,
24643 state
->atten
[core
]);
24645 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24646 TXRXCOUPLE_5G_PWRUP
, 0);
24647 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
24648 TXRXCOUPLE_5G_ATTEN
,
24649 state
->atten
[core
]);
24653 if ((pi
->pubpi
.radiorev
== 4) || (pi
->pubpi
.radiorev
== 6))
24654 wlc_phy_rfctrl_override_nphy_rev7(
24657 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24659 wlc_phy_rfctrl_override_nphy_rev7(
24662 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24664 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1),
24666 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24667 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 0, 0x3, 1,
24668 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
24669 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2), 0, 0x3, 1,
24670 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
24671 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 1, 0x3, 1,
24672 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24673 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3), 0, 0x3, 1,
24674 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24675 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 0, 0x3, 1,
24676 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24677 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 12), 0, 0x3, 1,
24678 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24679 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2), 1, 0x3, 1,
24680 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24681 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 0, 0x3, 1,
24682 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24683 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), 1, 0x3, 1,
24684 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
24685 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 8), 0, 0x3, 1,
24686 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24687 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 9), 1, 0x3, 1,
24688 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24689 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 10), 0, 0x3, 1,
24690 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24691 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3), 1, 0x3, 1,
24692 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24693 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5), 0, 0x3, 1,
24694 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24695 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4), 0, 0x3, 1,
24696 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24698 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
24700 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
24701 0xa6 : 0xa7, state
->afectrl
[core
]);
24702 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f :
24703 0xa5, state
->afeoverride
[core
]);
24706 wlc_phy_ipa_set_bbmult_nphy(pi
, (state
->mm
>> 8) & 0xff,
24707 (state
->mm
& 0xff));
24709 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
24710 || NREV_GE(pi
->pubpi
.phy_rev
, 8))
24711 wlc_phy_rfctrl_override_nphy_rev7(
24712 pi
, (0x1 << 7), 0, 0,
24714 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
24716 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12), 0, 0x3, 1);
24717 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 13), 0, 0x3, 1);
24718 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 0), 0, 0x3, 1);
24720 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 2), 0, 0x3, 1);
24721 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 1), 0, 0x3, 1);
24723 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
24725 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, VGA_MASTER
,
24726 state
->vga_master
[core
]);
24727 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24728 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
24729 TXFBMIX_G
, state
->fbmix
[core
]);
24730 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
24732 state
->intpa_master
[core
]);
24734 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
24735 TXFBMIX_A
, state
->fbmix
[core
]);
24736 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
24738 state
->intpa_master
[core
]);
24741 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
24742 0xa6 : 0xa7, state
->afectrl
[core
]);
24743 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f :
24744 0xa5, state
->afeoverride
[core
]);
24747 wlc_phy_ipa_set_bbmult_nphy(pi
, (state
->mm
>> 8) & 0xff,
24748 (state
->mm
& 0xff));
24750 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 0x3, 1);
24755 wlc_phy_a1_nphy(struct brcms_phy
*pi
, u8 core
, u32 winsz
, u32 start
,
24758 u32
*buf
, *src
, *dst
, sz
;
24760 sz
= end
- start
+ 1;
24762 buf
= kmalloc(2 * sizeof(u32
) * NPHY_PAPD_EPS_TBL_SIZE
, GFP_ATOMIC
);
24767 dst
= buf
+ NPHY_PAPD_EPS_TBL_SIZE
;
24769 wlc_phy_table_read_nphy(pi
,
24771 PHY_CORE_0
? NPHY_TBL_ID_EPSILONTBL0
:
24772 NPHY_TBL_ID_EPSILONTBL1
),
24773 NPHY_PAPD_EPS_TBL_SIZE
, 0, 32, src
);
24776 u32 phy_a1
, phy_a2
;
24777 s32 phy_a3
, phy_a4
, phy_a5
, phy_a6
, phy_a7
;
24779 phy_a1
= end
- min(end
, (winsz
>> 1));
24780 phy_a2
= min_t(u32
, NPHY_PAPD_EPS_TBL_SIZE
- 1,
24781 end
+ (winsz
>> 1));
24782 phy_a3
= phy_a2
- phy_a1
+ 1;
24787 wlc_phy_papd_decode_epsilon(src
[phy_a2
], &phy_a4
,
24791 } while (phy_a2
-- != phy_a1
);
24795 dst
[end
] = ((u32
) phy_a7
<< 13) | ((u32
) phy_a6
& 0x1fff);
24796 } while (end
-- != start
);
24798 wlc_phy_table_write_nphy(pi
,
24800 PHY_CORE_0
) ? NPHY_TBL_ID_EPSILONTBL0
:
24801 NPHY_TBL_ID_EPSILONTBL1
, sz
, start
, 32, dst
);
24807 wlc_phy_a2_nphy(struct brcms_phy
*pi
, struct nphy_ipa_txcalgains
*txgains
,
24808 enum phy_cal_mode cal_mode
, u8 core
)
24810 u16 phy_a1
, phy_a2
, phy_a3
;
24811 u16 phy_a4
, phy_a5
;
24815 struct nphy_txgains phy_a9
;
24817 if (NREV_LT(pi
->pubpi
.phy_rev
, 3))
24820 phy_a7
= (core
== PHY_CORE_0
) ? 1 : 0;
24822 phy_a6
= ((cal_mode
== CAL_GCTRL
)
24823 || (cal_mode
== CAL_SOFT
)) ? true : false;
24825 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
24827 phy_a9
= wlc_phy_get_tx_gain_nphy(pi
);
24829 if (CHSPEC_IS2G(pi
->radio_chanspec
))
24830 phy_a5
= ((phy_a9
.txlpf
[core
] << 15) |
24831 (phy_a9
.txgm
[core
] << 12) |
24832 (phy_a9
.pga
[core
] << 8) |
24833 (txgains
->gains
.pad
[core
] << 3) |
24834 (phy_a9
.ipa
[core
]));
24836 phy_a5
= ((phy_a9
.txlpf
[core
] << 15) |
24837 (phy_a9
.txgm
[core
] << 12) |
24838 (txgains
->gains
.pga
[core
] << 8) |
24839 (phy_a9
.pad
[core
] << 3) | (phy_a9
.ipa
[core
]));
24841 wlc_phy_rfctrl_override_1tomany_nphy(
24843 NPHY_REV7_RfctrlOverride_cmd_txgain
,
24844 phy_a5
, (1 << core
), 0);
24846 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24847 if ((pi
->pubpi
.radiorev
<= 4)
24848 || (pi
->pubpi
.radiorev
== 6))
24849 m
[core
] = (pi
->bw
== WL_CHANSPEC_BW_40
) ?
24852 m
[core
] = (pi
->bw
== WL_CHANSPEC_BW_40
) ?
24855 m
[core
] = (pi
->bw
== WL_CHANSPEC_BW_40
) ? 75 : 107;
24859 wlc_phy_ipa_set_bbmult_nphy(pi
, m
[0], m
[1]);
24863 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24864 if ((pi
->pubpi
.radiorev
== 4)
24865 || (pi
->pubpi
.radiorev
== 6)) {
24873 if ((pi
->pubpi
.radiorev
== 5)
24874 || (pi
->pubpi
.radiorev
== 7)
24875 || (pi
->pubpi
.radiorev
== 8)) {
24884 if (cal_mode
== CAL_GCTRL
) {
24885 if ((pi
->pubpi
.radiorev
== 5)
24886 && (CHSPEC_IS2G(pi
->radio_chanspec
)))
24888 else if (((pi
->pubpi
.radiorev
== 7) &&
24889 (CHSPEC_IS2G(pi
->radio_chanspec
))) ||
24890 ((pi
->pubpi
.radiorev
== 8) &&
24891 (CHSPEC_IS2G(pi
->radio_chanspec
))))
24896 } else if ((cal_mode
!= CAL_FULL
) && (cal_mode
!= CAL_SOFT
)) {
24902 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
24903 0x29b, (0x1 << 0), (1) << 0);
24905 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x297 :
24906 0x29b, (0x1 << 0), (0) << 0);
24908 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
24909 0x2a4, (0x1 << 13), (1) << 13);
24911 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x2a3 :
24912 0x2a4, (0x1 << 13), (0) << 13);
24914 write_phy_reg(pi
, 0x2a1, 0x80);
24915 write_phy_reg(pi
, 0x2a2, 0x100);
24917 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
24918 0x2a4, (0x7 << 4), (11) << 4);
24920 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
24921 0x2a4, (0x7 << 8), (11) << 8);
24923 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
24924 0x2a4, (0x7 << 0), (0x3) << 0);
24926 write_phy_reg(pi
, 0x2e5, 0x20);
24928 mod_phy_reg(pi
, 0x2a0, (0x3f << 0), (phy_a3
) << 0);
24930 mod_phy_reg(pi
, 0x29f, (0x3f << 0), (phy_a1
) << 0);
24932 mod_phy_reg(pi
, 0x29f, (0x3f << 8), (phy_a2
) << 8);
24934 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
24935 1, ((core
== 0) ? 1 : 2), 0,
24936 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24937 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
24938 0, ((core
== 0) ? 2 : 1), 0,
24939 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24941 write_phy_reg(pi
, 0x2be, 1);
24942 SPINWAIT(read_phy_reg(pi
, 0x2be), 10 * 1000 * 1000);
24944 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
24946 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
24948 wlc_phy_table_write_nphy(pi
,
24950 PHY_CORE_0
) ? NPHY_TBL_ID_EPSILONTBL0
24951 : NPHY_TBL_ID_EPSILONTBL1
, 1, phy_a3
,
24954 if (cal_mode
!= CAL_GCTRL
) {
24955 if (CHSPEC_IS5G(pi
->radio_chanspec
))
24956 wlc_phy_a1_nphy(pi
, core
, 5, 0, 35);
24959 wlc_phy_rfctrl_override_1tomany_nphy(
24961 NPHY_REV7_RfctrlOverride_cmd_txgain
,
24962 phy_a5
, (1 << core
), 1);
24967 if (txgains
->useindex
) {
24968 phy_a4
= 15 - ((txgains
->index
) >> 3);
24969 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
24970 if (NREV_GE(pi
->pubpi
.phy_rev
, 6) &&
24971 pi
->sh
->chip
== BCMA_CHIP_ID_BCM47162
) {
24972 phy_a5
= 0x10f7 | (phy_a4
<< 8);
24973 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
24974 phy_a5
= 0x00f7 | (phy_a4
<< 8);
24975 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
24976 phy_a5
= 0x10f7 | (phy_a4
<< 8);
24978 phy_a5
= 0x50f7 | (phy_a4
<< 8);
24981 phy_a5
= 0x70f7 | (phy_a4
<< 8);
24983 wlc_phy_rfctrl_override_nphy(pi
,
24988 wlc_phy_rfctrl_override_nphy(pi
,
24995 if (CHSPEC_IS2G(pi
->radio_chanspec
))
24996 m
[core
] = (pi
->bw
== WL_CHANSPEC_BW_40
) ? 45 : 64;
24998 m
[core
] = (pi
->bw
== WL_CHANSPEC_BW_40
) ? 75 : 107;
25001 wlc_phy_ipa_set_bbmult_nphy(pi
, m
[0], m
[1]);
25005 if (cal_mode
== CAL_FULL
) {
25008 } else if (cal_mode
== CAL_SOFT
) {
25011 } else if (cal_mode
== CAL_GCTRL
) {
25020 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
25021 0x29b, (0x1 << 0), (1) << 0);
25023 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x297 :
25024 0x29b, (0x1 << 0), (0) << 0);
25026 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
25027 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25028 0x2a4, (0x1 << 13), (1) << 13);
25030 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x2a3 :
25031 0x2a4, (0x1 << 13), (0) << 13);
25033 write_phy_reg(pi
, 0x2a1, 0x20);
25034 write_phy_reg(pi
, 0x2a2, 0x60);
25036 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25037 0x2a4, (0xf << 4), (9) << 4);
25039 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25040 0x2a4, (0xf << 8), (9) << 8);
25042 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25043 0x2a4, (0xf << 0), (0x2) << 0);
25045 write_phy_reg(pi
, 0x2e5, 0x20);
25047 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25048 0x2a4, (0x1 << 11), (1) << 11);
25050 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x2a3 :
25051 0x2a4, (0x1 << 11), (0) << 11);
25053 write_phy_reg(pi
, 0x2a1, 0x80);
25054 write_phy_reg(pi
, 0x2a2, 0x600);
25056 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25057 0x2a4, (0x7 << 4), (0) << 4);
25059 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25060 0x2a4, (0x7 << 8), (0) << 8);
25062 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
25063 0x2a4, (0x7 << 0), (0x3) << 0);
25065 mod_phy_reg(pi
, 0x2a0, (0x3f << 8), (0x20) << 8);
25069 mod_phy_reg(pi
, 0x2a0, (0x3f << 0), (phy_a3
) << 0);
25071 mod_phy_reg(pi
, 0x29f, (0x3f << 0), (phy_a1
) << 0);
25073 mod_phy_reg(pi
, 0x29f, (0x3f << 8), (phy_a2
) << 8);
25075 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 1, 0x3, 0);
25077 write_phy_reg(pi
, 0x2be, 1);
25078 SPINWAIT(read_phy_reg(pi
, 0x2be), 10 * 1000 * 1000);
25080 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 0x3, 0);
25082 wlc_phy_table_write_nphy(pi
,
25084 PHY_CORE_0
) ? NPHY_TBL_ID_EPSILONTBL0
25085 : NPHY_TBL_ID_EPSILONTBL1
, 1, phy_a3
,
25088 if (cal_mode
!= CAL_GCTRL
)
25089 wlc_phy_a1_nphy(pi
, core
, 5, 0, 40);
25093 static u8
wlc_phy_a3_nphy(struct brcms_phy
*pi
, u8 start_gain
, u8 core
)
25098 struct nphy_ipa_txcalgains phy_a4
;
25099 bool phy_a5
= false;
25100 bool phy_a6
= true;
25101 s32 phy_a7
, phy_a8
;
25104 bool phy_a11
= false;
25108 u8
*phy_a15
= NULL
;
25110 phy_a4
.useindex
= true;
25111 phy_a12
= start_gain
;
25113 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25118 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
25119 if (pi
->pubpi
.radiorev
== 5) {
25121 phy_a15
= pad_gain_codes_used_2057rev5
;
25123 ARRAY_SIZE(pad_gain_codes_used_2057rev5
) - 1;
25125 } else if ((pi
->pubpi
.radiorev
== 7)
25126 || (pi
->pubpi
.radiorev
== 8)) {
25128 phy_a15
= pad_gain_codes_used_2057rev7
;
25130 ARRAY_SIZE(pad_gain_codes_used_2057rev7
) - 1;
25134 phy_a15
= pad_all_gain_codes_2057
;
25135 phy_a13
= ARRAY_SIZE(pad_all_gain_codes_2057
) -
25141 phy_a15
= pga_all_gain_codes_2057
;
25142 phy_a13
= ARRAY_SIZE(pga_all_gain_codes_2057
) - 1;
25147 for (phy_a10
= 0; phy_a10
< phy_a2
; phy_a10
++) {
25148 if (CHSPEC_IS2G(pi
->radio_chanspec
))
25149 phy_a4
.gains
.pad
[core
] =
25150 (u16
) phy_a15
[phy_a12
];
25152 phy_a4
.gains
.pga
[core
] =
25153 (u16
) phy_a15
[phy_a12
];
25155 wlc_phy_a2_nphy(pi
, &phy_a4
, CAL_GCTRL
, core
);
25157 wlc_phy_table_read_nphy(pi
,
25160 NPHY_TBL_ID_EPSILONTBL0
:
25161 NPHY_TBL_ID_EPSILONTBL1
), 1,
25164 wlc_phy_papd_decode_epsilon(phy_a9
, &phy_a7
, &phy_a8
);
25166 phy_a3
= ((phy_a7
== 4095) || (phy_a7
== -4096) ||
25167 (phy_a8
== 4095) || (phy_a8
== -4096));
25169 if (!phy_a6
&& (phy_a3
!= phy_a5
)) {
25171 phy_a12
-= (u8
) phy_a1
;
25178 phy_a12
+= (u8
) phy_a1
;
25180 phy_a12
-= (u8
) phy_a1
;
25182 if ((phy_a12
< phy_a14
) || (phy_a12
> phy_a13
)) {
25183 if (phy_a12
< phy_a14
)
25199 for (phy_a10
= 0; phy_a10
< phy_a2
; phy_a10
++) {
25200 phy_a4
.index
= (u8
) phy_a12
;
25201 wlc_phy_a2_nphy(pi
, &phy_a4
, CAL_GCTRL
, core
);
25203 wlc_phy_table_read_nphy(pi
,
25206 NPHY_TBL_ID_EPSILONTBL0
:
25207 NPHY_TBL_ID_EPSILONTBL1
), 1,
25210 wlc_phy_papd_decode_epsilon(phy_a9
, &phy_a7
, &phy_a8
);
25212 phy_a3
= ((phy_a7
== 4095) || (phy_a7
== -4096) ||
25213 (phy_a8
== 4095) || (phy_a8
== -4096));
25215 if (!phy_a6
&& (phy_a3
!= phy_a5
)) {
25217 phy_a12
-= (u8
) phy_a1
;
25224 phy_a12
+= (u8
) phy_a1
;
25226 phy_a12
-= (u8
) phy_a1
;
25228 if ((phy_a12
< 0) || (phy_a12
> 127)) {
25244 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
25245 return (u8
) phy_a15
[phy_a12
];
25247 return (u8
) phy_a12
;
25251 static void wlc_phy_a4(struct brcms_phy
*pi
, bool full_cal
)
25253 struct nphy_ipa_txcalgains phy_b1
[2];
25254 struct nphy_papd_restore_state phy_b2
;
25258 s16 phy_b6
, phy_b7
, phy_b8
;
25260 s16 phy_b10
, phy_b11
, phy_b12
;
25268 if (pi
->nphy_papd_skip
== 1)
25271 phy_b3
= (0 == (bcma_read32(pi
->d11core
, D11REGOFFS(maccontrol
)) &
25274 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
25276 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
25278 pi
->nphy_force_papd_cal
= false;
25280 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++)
25281 pi
->nphy_papd_tx_gain_at_last_cal
[phy_b5
] =
25282 wlc_phy_txpwr_idx_cur_get_nphy(pi
, phy_b5
);
25284 pi
->nphy_papd_last_cal
= pi
->sh
->now
;
25285 pi
->nphy_papd_recal_counter
++;
25287 phy_b4
= pi
->nphy_txpwrctrl
;
25288 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
25290 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_SCALARTBL0
, 64, 0, 32,
25291 nphy_papd_scaltbl
);
25292 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_SCALARTBL1
, 64, 0, 32,
25293 nphy_papd_scaltbl
);
25295 phy_b9
= read_phy_reg(pi
, 0x01);
25296 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
25298 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++) {
25300 for (i
= 0; i
< 64; i
++)
25301 wlc_phy_table_write_nphy(pi
,
25304 NPHY_TBL_ID_EPSILONTBL0
:
25305 NPHY_TBL_ID_EPSILONTBL1
), 1,
25309 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi
);
25311 phy_b2
.mm
= wlc_phy_ipa_get_bbmult_nphy(pi
);
25312 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++) {
25313 wlc_phy_papd_cal_setup_nphy(pi
, &phy_b2
, phy_b5
);
25315 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25316 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
25317 if ((pi
->pubpi
.radiorev
== 3)
25318 || (pi
->pubpi
.radiorev
== 4)
25319 || (pi
->pubpi
.radiorev
== 6)) {
25320 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
25322 } else if (pi
->pubpi
.radiorev
== 5) {
25323 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
25325 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
25329 nphy_papd_cal_gain_index
25333 } else if ((pi
->pubpi
.radiorev
== 7)
25334 || (pi
->pubpi
.radiorev
== 8)) {
25336 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
25338 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
25342 nphy_papd_cal_gain_index
25348 phy_b1
[phy_b5
].gains
.pad
[phy_b5
] =
25349 pi
->nphy_papd_cal_gain_index
[phy_b5
];
25352 pi
->nphy_papd_cal_gain_index
[phy_b5
] = 0;
25353 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
25357 nphy_papd_cal_gain_index
25359 phy_b1
[phy_b5
].gains
.pga
[phy_b5
] =
25360 pi
->nphy_papd_cal_gain_index
[phy_b5
];
25363 phy_b1
[phy_b5
].useindex
= true;
25364 phy_b1
[phy_b5
].index
= 16;
25365 phy_b1
[phy_b5
].index
=
25366 wlc_phy_a3_nphy(pi
, phy_b1
[phy_b5
].index
,
25369 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
25370 15 - ((phy_b1
[phy_b5
].index
) >> 3);
25373 switch (pi
->nphy_papd_cal_type
) {
25375 wlc_phy_a2_nphy(pi
, &phy_b1
[phy_b5
], CAL_FULL
, phy_b5
);
25378 wlc_phy_a2_nphy(pi
, &phy_b1
[phy_b5
], CAL_SOFT
, phy_b5
);
25382 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
25383 wlc_phy_papd_cal_cleanup_nphy(pi
, &phy_b2
);
25386 if (NREV_LT(pi
->pubpi
.phy_rev
, 7))
25387 wlc_phy_papd_cal_cleanup_nphy(pi
, &phy_b2
);
25389 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++) {
25390 int eps_offset
= 0;
25392 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25393 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
25394 if (pi
->pubpi
.radiorev
== 3)
25396 else if (pi
->pubpi
.radiorev
== 5)
25404 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
25405 phy_b8
= phy_b1
[phy_b5
].gains
.pad
[phy_b5
];
25407 if ((pi
->pubpi
.radiorev
== 3) ||
25408 (pi
->pubpi
.radiorev
== 4) ||
25409 (pi
->pubpi
.radiorev
== 6)) {
25411 nphy_papd_padgain_dlt_2g_2057rev3n4
25414 } else if (pi
->pubpi
.radiorev
== 5) {
25416 nphy_papd_padgain_dlt_2g_2057rev5
25418 } else if ((pi
->pubpi
.radiorev
== 7) ||
25419 (pi
->pubpi
.radiorev
== 8)) {
25421 nphy_papd_padgain_dlt_2g_2057rev7
25425 phy_b7
= phy_b1
[phy_b5
].gains
.pga
[phy_b5
];
25426 if ((pi
->pubpi
.radiorev
== 3) ||
25427 (pi
->pubpi
.radiorev
== 4) ||
25428 (pi
->pubpi
.radiorev
== 6))
25430 -(nphy_papd_pgagain_dlt_5g_2057
25433 else if ((pi
->pubpi
.radiorev
== 7)
25434 || (pi
->pubpi
.radiorev
== 8))
25436 nphy_papd_pgagain_dlt_5g_2057rev7
25442 if (CHSPEC_IS2G(pi
->radio_chanspec
))
25444 -60 + 27 + eps_offset
+ phy_b12
+
25448 -60 + 27 + eps_offset
+ phy_b11
+
25451 mod_phy_reg(pi
, (phy_b5
== PHY_CORE_0
) ? 0x298 :
25452 0x29c, (0x1ff << 7), (phy_b6
) << 7);
25454 pi
->nphy_papd_epsilon_offset
[phy_b5
] = phy_b6
;
25456 if (NREV_LT(pi
->pubpi
.phy_rev
, 5))
25461 phy_b7
= 15 - ((phy_b1
[phy_b5
].index
) >> 3);
25463 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
25465 -(nphy_papd_pga_gain_delta_ipa_2g
[
25471 -(nphy_papd_pga_gain_delta_ipa_5g
[
25477 phy_b6
= -60 + 27 + eps_offset
+ phy_b11
+ phy_b10
;
25479 mod_phy_reg(pi
, (phy_b5
== PHY_CORE_0
) ? 0x298 :
25480 0x29c, (0x1ff << 7), (phy_b6
) << 7);
25482 pi
->nphy_papd_epsilon_offset
[phy_b5
] = phy_b6
;
25486 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
25487 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON
) << 0);
25489 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
25490 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON
) << 0);
25492 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
25493 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x2a3 :
25494 0x2a4, (0x1 << 13), (0) << 13);
25496 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x2a3 :
25497 0x2a4, (0x1 << 13), (0) << 13);
25500 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x2a3 :
25501 0x2a4, (0x1 << 11), (0) << 11);
25503 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x2a3 :
25504 0x2a4, (0x1 << 11), (0) << 11);
25507 pi
->nphy_papdcomp
= NPHY_PAPD_COMP_ON
;
25509 write_phy_reg(pi
, 0x01, phy_b9
);
25511 wlc_phy_ipa_set_tx_digi_filts_nphy(pi
);
25513 wlc_phy_txpwrctrl_enable_nphy(pi
, phy_b4
);
25514 if (phy_b4
== PHY_TPC_HW_OFF
) {
25515 wlc_phy_txpwr_index_nphy(pi
, (1 << 0),
25516 (s8
) (pi
->nphy_txpwrindex
[0].
25517 index_internal
), false);
25518 wlc_phy_txpwr_index_nphy(pi
, (1 << 1),
25519 (s8
) (pi
->nphy_txpwrindex
[1].
25520 index_internal
), false);
25523 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
25526 wlapi_enable_mac(pi
->sh
->physhim
);
25529 void wlc_phy_cal_perical_nphy_run(struct brcms_phy
*pi
, u8 caltype
)
25531 struct nphy_txgains target_gain
;
25532 u8 tx_pwr_ctrl_state
;
25533 bool fullcal
= true;
25534 bool restore_tx_gain
= false;
25540 if (caltype
== PHY_PERICAL_AUTO
)
25541 fullcal
= (pi
->radio_chanspec
!= pi
->nphy_txiqlocal_chanspec
);
25542 else if (caltype
== PHY_PERICAL_PARTIAL
)
25545 if (pi
->cal_type_override
!= PHY_PERICAL_AUTO
)
25547 (pi
->cal_type_override
==
25548 PHY_PERICAL_FULL
) ? true : false;
25550 if ((pi
->mphase_cal_phase_id
> MPHASE_CAL_STATE_INIT
)) {
25551 if (pi
->nphy_txiqlocal_chanspec
!= pi
->radio_chanspec
)
25552 wlc_phy_cal_perical_mphase_restart(pi
);
25555 if ((pi
->mphase_cal_phase_id
== MPHASE_CAL_STATE_RXCAL
))
25556 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CTS_DURATION
, 10000);
25558 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
25560 wlc_phyreg_enter((struct brcms_phy_pub
*) pi
);
25562 if ((pi
->mphase_cal_phase_id
== MPHASE_CAL_STATE_IDLE
) ||
25563 (pi
->mphase_cal_phase_id
== MPHASE_CAL_STATE_INIT
)) {
25564 pi
->nphy_cal_orig_pwr_idx
[0] =
25565 (u8
) ((read_phy_reg(pi
, 0x1ed) >> 8) & 0x7f);
25566 pi
->nphy_cal_orig_pwr_idx
[1] =
25567 (u8
) ((read_phy_reg(pi
, 0x1ee) >> 8) & 0x7f);
25569 if (pi
->nphy_txpwrctrl
!= PHY_TPC_HW_OFF
) {
25570 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2,
25572 pi
->nphy_cal_orig_tx_gain
);
25574 pi
->nphy_cal_orig_tx_gain
[0] = 0;
25575 pi
->nphy_cal_orig_tx_gain
[1] = 0;
25578 target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
25579 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
25580 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
25582 if (pi
->antsel_type
== ANTSEL_2x3
)
25583 wlc_phy_antsel_init((struct brcms_phy_pub
*) pi
, true);
25585 mphase
= (pi
->mphase_cal_phase_id
!= MPHASE_CAL_STATE_IDLE
);
25588 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
25589 wlc_phy_precal_txgain_nphy(pi
);
25590 pi
->nphy_cal_target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
25591 restore_tx_gain
= true;
25593 target_gain
= pi
->nphy_cal_target_gain
;
25596 wlc_phy_cal_txiqlo_nphy(pi
, target_gain
, fullcal
,
25599 wlc_phy_a4(pi
, true);
25601 wlc_phyreg_exit((struct brcms_phy_pub
*) pi
);
25602 wlapi_enable_mac(pi
->sh
->physhim
);
25603 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CTS_DURATION
,
25605 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
25606 wlc_phyreg_enter((struct brcms_phy_pub
*) pi
);
25608 if (0 == wlc_phy_cal_rxiq_nphy(pi
, target_gain
,
25609 (pi
->first_cal_after_assoc
||
25610 (pi
->cal_type_override
==
25611 PHY_PERICAL_FULL
)) ? 2 : 0, false)) {
25612 wlc_phy_savecal_nphy(pi
);
25614 wlc_phy_txpwrctrl_coeff_setup_nphy(pi
);
25616 pi
->nphy_perical_last
= pi
->sh
->now
;
25619 if (caltype
!= PHY_PERICAL_AUTO
)
25620 wlc_phy_rssi_cal_nphy(pi
);
25622 if (pi
->first_cal_after_assoc
25623 || (pi
->cal_type_override
== PHY_PERICAL_FULL
)) {
25624 pi
->first_cal_after_assoc
= false;
25625 wlc_phy_txpwrctrl_idle_tssi_nphy(pi
);
25626 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
25629 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
25630 wlc_phy_radio205x_vcocal_nphy(pi
);
25632 switch (pi
->mphase_cal_phase_id
) {
25633 case MPHASE_CAL_STATE_INIT
:
25634 pi
->nphy_perical_last
= pi
->sh
->now
;
25635 pi
->nphy_txiqlocal_chanspec
= pi
->radio_chanspec
;
25637 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
25638 wlc_phy_precal_txgain_nphy(pi
);
25640 pi
->nphy_cal_target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
25641 pi
->mphase_cal_phase_id
++;
25644 case MPHASE_CAL_STATE_TXPHASE0
:
25645 case MPHASE_CAL_STATE_TXPHASE1
:
25646 case MPHASE_CAL_STATE_TXPHASE2
:
25647 case MPHASE_CAL_STATE_TXPHASE3
:
25648 case MPHASE_CAL_STATE_TXPHASE4
:
25649 case MPHASE_CAL_STATE_TXPHASE5
:
25650 if ((pi
->radar_percal_mask
& 0x10) != 0)
25651 pi
->nphy_rxcal_active
= true;
25653 if (wlc_phy_cal_txiqlo_nphy
25654 (pi
, pi
->nphy_cal_target_gain
, fullcal
,
25657 wlc_phy_cal_perical_mphase_reset(pi
);
25661 if (NREV_LE(pi
->pubpi
.phy_rev
, 2) &&
25662 (pi
->mphase_cal_phase_id
==
25663 MPHASE_CAL_STATE_TXPHASE4
))
25664 pi
->mphase_cal_phase_id
+= 2;
25666 pi
->mphase_cal_phase_id
++;
25669 case MPHASE_CAL_STATE_PAPDCAL
:
25670 if ((pi
->radar_percal_mask
& 0x2) != 0)
25671 pi
->nphy_rxcal_active
= true;
25674 wlc_phy_a4(pi
, true);
25676 pi
->mphase_cal_phase_id
++;
25679 case MPHASE_CAL_STATE_RXCAL
:
25680 if ((pi
->radar_percal_mask
& 0x1) != 0)
25681 pi
->nphy_rxcal_active
= true;
25682 if (wlc_phy_cal_rxiq_nphy(pi
, target_gain
,
25683 (pi
->first_cal_after_assoc
||
25684 (pi
->cal_type_override
==
25685 PHY_PERICAL_FULL
)) ? 2 : 0,
25687 wlc_phy_savecal_nphy(pi
);
25689 pi
->mphase_cal_phase_id
++;
25692 case MPHASE_CAL_STATE_RSSICAL
:
25693 if ((pi
->radar_percal_mask
& 0x4) != 0)
25694 pi
->nphy_rxcal_active
= true;
25695 wlc_phy_txpwrctrl_coeff_setup_nphy(pi
);
25696 wlc_phy_rssi_cal_nphy(pi
);
25698 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
25699 wlc_phy_radio205x_vcocal_nphy(pi
);
25701 restore_tx_gain
= true;
25703 if (pi
->first_cal_after_assoc
)
25704 pi
->mphase_cal_phase_id
++;
25706 wlc_phy_cal_perical_mphase_reset(pi
);
25710 case MPHASE_CAL_STATE_IDLETSSI
:
25711 if ((pi
->radar_percal_mask
& 0x8) != 0)
25712 pi
->nphy_rxcal_active
= true;
25714 if (pi
->first_cal_after_assoc
) {
25715 pi
->first_cal_after_assoc
= false;
25716 wlc_phy_txpwrctrl_idle_tssi_nphy(pi
);
25717 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
25720 wlc_phy_cal_perical_mphase_reset(pi
);
25724 wlc_phy_cal_perical_mphase_reset(pi
);
25729 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
25730 if (restore_tx_gain
) {
25731 if (tx_pwr_ctrl_state
!= PHY_TPC_HW_OFF
) {
25733 wlc_phy_txpwr_index_nphy(pi
, 1,
25735 nphy_cal_orig_pwr_idx
25737 wlc_phy_txpwr_index_nphy(pi
, 2,
25739 nphy_cal_orig_pwr_idx
25742 pi
->nphy_txpwrindex
[0].index
= -1;
25743 pi
->nphy_txpwrindex
[1].index
= -1;
25745 wlc_phy_txpwr_index_nphy(pi
, (1 << 0),
25751 wlc_phy_txpwr_index_nphy(pi
, (1 << 1),
25761 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
25762 wlc_phyreg_exit((struct brcms_phy_pub
*) pi
);
25763 wlapi_enable_mac(pi
->sh
->physhim
);
25767 wlc_phy_cal_txiqlo_nphy(struct brcms_phy
*pi
, struct nphy_txgains target_gain
,
25768 bool fullcal
, bool mphase
)
25774 u8 num_cals
, max_cal_cmds
;
25775 u16 core_no
, cal_type
;
25782 struct nphy_iqcal_params cal_params
[2];
25785 bool ladder_updated
[2];
25786 u8 mphase_cal_lastphase
= 0;
25788 bool phyhang_avoid_state
= false;
25790 u16 tbl_tx_iqlo_cal_loft_ladder_20
[] = {
25791 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25793 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25797 u16 tbl_tx_iqlo_cal_iqimb_ladder_20
[] = {
25798 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25800 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25804 u16 tbl_tx_iqlo_cal_loft_ladder_40
[] = {
25805 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25807 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25811 u16 tbl_tx_iqlo_cal_iqimb_ladder_40
[] = {
25812 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25814 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25818 u16 tbl_tx_iqlo_cal_startcoefs
[] = {
25819 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25823 u16 tbl_tx_iqlo_cal_cmds_fullcal
[] = {
25824 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25825 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25828 u16 tbl_tx_iqlo_cal_cmds_recal
[] = {
25829 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25830 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25833 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3
[] = {
25834 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25835 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25839 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
[] = {
25840 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25841 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25844 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3
[] = {
25845 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25846 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25849 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
25851 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
25852 phyhang_avoid_state
= pi
->phyhang_avoid
;
25853 pi
->phyhang_avoid
= false;
25856 if (CHSPEC_IS40(pi
->radio_chanspec
))
25861 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, gain_save
);
25863 for (core_no
= 0; core_no
<= 1; core_no
++) {
25864 wlc_phy_iqcal_gainparams_nphy(pi
, core_no
, target_gain
,
25865 &cal_params
[core_no
]);
25866 cal_gain
[core_no
] = cal_params
[core_no
].cal_gain
;
25869 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, cal_gain
);
25871 wlc_phy_txcal_radio_setup_nphy(pi
);
25873 wlc_phy_txcal_physetup_nphy(pi
);
25875 ladder_updated
[0] = ladder_updated
[1] = false;
25876 if (!(NREV_GE(pi
->pubpi
.phy_rev
, 6) ||
25877 (NREV_IS(pi
->pubpi
.phy_rev
, 5) && PHY_IPA(pi
)
25878 && (CHSPEC_IS2G(pi
->radio_chanspec
))))) {
25880 if (phy_bw
== 40) {
25881 tbl_ptr
= tbl_tx_iqlo_cal_loft_ladder_40
;
25882 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40
);
25884 tbl_ptr
= tbl_tx_iqlo_cal_loft_ladder_20
;
25885 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20
);
25887 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, tbl_len
, 0,
25890 if (phy_bw
== 40) {
25891 tbl_ptr
= tbl_tx_iqlo_cal_iqimb_ladder_40
;
25892 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40
);
25894 tbl_ptr
= tbl_tx_iqlo_cal_iqimb_ladder_20
;
25895 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20
);
25897 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, tbl_len
, 32,
25901 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
25902 write_phy_reg(pi
, 0xc2, 0x8ad9);
25904 write_phy_reg(pi
, 0xc2, 0x8aa9);
25907 tone_freq
= (phy_bw
== 20) ? 2500 : 5000;
25909 if (pi
->mphase_cal_phase_id
> MPHASE_CAL_STATE_TXPHASE0
) {
25910 wlc_phy_runsamples_nphy(pi
, phy_bw
* 8, 0xffff, 0, 1, 0, false);
25914 wlc_phy_tx_tone_nphy(pi
, tone_freq
, max_val
, 1, 0,
25918 if (bcmerror
== 0) {
25920 if (pi
->mphase_cal_phase_id
> MPHASE_CAL_STATE_TXPHASE0
) {
25921 tbl_ptr
= pi
->mphase_txcal_bestcoeffs
;
25922 tbl_len
= ARRAY_SIZE(pi
->mphase_txcal_bestcoeffs
);
25923 if (NREV_LT(pi
->pubpi
.phy_rev
, 3))
25926 if ((!fullcal
) && (pi
->nphy_txiqlocal_coeffsvalid
)) {
25928 tbl_ptr
= pi
->nphy_txiqlocal_bestc
;
25929 tbl_len
= ARRAY_SIZE(pi
->nphy_txiqlocal_bestc
);
25930 if (NREV_LT(pi
->pubpi
.phy_rev
, 3))
25936 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
25938 tbl_tx_iqlo_cal_startcoefs_nphyrev3
;
25939 tbl_len
= ARRAY_SIZE(
25940 tbl_tx_iqlo_cal_startcoefs_nphyrev3
);
25942 tbl_ptr
= tbl_tx_iqlo_cal_startcoefs
;
25943 tbl_len
= ARRAY_SIZE(
25944 tbl_tx_iqlo_cal_startcoefs
);
25948 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, tbl_len
, 64,
25952 max_cal_cmds
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
25954 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
) :
25955 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal
);
25957 max_cal_cmds
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
25959 tbl_tx_iqlo_cal_cmds_recal_nphyrev3
) :
25960 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal
);
25964 cal_cnt
= pi
->mphase_txcal_cmdidx
;
25965 if ((cal_cnt
+ pi
->mphase_txcal_numcmds
) < max_cal_cmds
)
25966 num_cals
= cal_cnt
+ pi
->mphase_txcal_numcmds
;
25968 num_cals
= max_cal_cmds
;
25971 num_cals
= max_cal_cmds
;
25974 for (; cal_cnt
< num_cals
; cal_cnt
++) {
25977 cal_cmd
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
25978 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
25980 tbl_tx_iqlo_cal_cmds_fullcal
[cal_cnt
];
25982 cal_cmd
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
25983 tbl_tx_iqlo_cal_cmds_recal_nphyrev3
[
25985 : tbl_tx_iqlo_cal_cmds_recal
[cal_cnt
];
25988 core_no
= ((cal_cmd
& 0x3000) >> 12);
25989 cal_type
= ((cal_cmd
& 0x0F00) >> 8);
25991 if (NREV_GE(pi
->pubpi
.phy_rev
, 6) ||
25992 (NREV_IS(pi
->pubpi
.phy_rev
, 5) &&
25994 && (CHSPEC_IS2G(pi
->radio_chanspec
)))) {
25995 if (!ladder_updated
[core_no
]) {
25996 wlc_phy_update_txcal_ladder_nphy(
25999 ladder_updated
[core_no
] = true;
26004 (cal_params
[core_no
].
26005 ncorr
[cal_type
] << 8) | NPHY_N_GCTL
;
26006 write_phy_reg(pi
, 0xc1, val
);
26008 if ((cal_type
== 1) || (cal_type
== 3)
26009 || (cal_type
== 4)) {
26011 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
26012 1, 69 + core_no
, 16,
26015 diq_start
= tbl_buf
[0];
26018 wlc_phy_table_write_nphy(pi
,
26019 NPHY_TBL_ID_IQLOCAL
, 1,
26024 write_phy_reg(pi
, 0xc0, cal_cmd
);
26026 SPINWAIT(((read_phy_reg(pi
, 0xc0) & 0xc000) != 0),
26028 if (WARN(read_phy_reg(pi
, 0xc0) & 0xc000,
26029 "HW error: txiq calib"))
26032 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
26033 tbl_len
, 96, 16, tbl_buf
);
26034 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
26035 tbl_len
, 64, 16, tbl_buf
);
26037 if ((cal_type
== 1) || (cal_type
== 3)
26038 || (cal_type
== 4)) {
26040 tbl_buf
[0] = diq_start
;
26047 pi
->mphase_txcal_cmdidx
= num_cals
;
26048 if (pi
->mphase_txcal_cmdidx
>= max_cal_cmds
)
26049 pi
->mphase_txcal_cmdidx
= 0;
26052 mphase_cal_lastphase
=
26053 (NREV_LE(pi
->pubpi
.phy_rev
, 2)) ?
26054 MPHASE_CAL_STATE_TXPHASE4
: MPHASE_CAL_STATE_TXPHASE5
;
26057 || (pi
->mphase_cal_phase_id
== mphase_cal_lastphase
)) {
26059 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 96,
26061 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 80,
26064 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
26072 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 88,
26075 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 101,
26077 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 85,
26080 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 93,
26083 tbl_len
= ARRAY_SIZE(pi
->nphy_txiqlocal_bestc
);
26084 if (NREV_LT(pi
->pubpi
.phy_rev
, 3))
26087 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
26089 pi
->nphy_txiqlocal_bestc
);
26091 pi
->nphy_txiqlocal_coeffsvalid
= true;
26092 pi
->nphy_txiqlocal_chanspec
= pi
->radio_chanspec
;
26094 tbl_len
= ARRAY_SIZE(pi
->mphase_txcal_bestcoeffs
);
26095 if (NREV_LT(pi
->pubpi
.phy_rev
, 3))
26098 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
26100 pi
->mphase_txcal_bestcoeffs
);
26103 wlc_phy_stopplayback_nphy(pi
);
26105 write_phy_reg(pi
, 0xc2, 0x0000);
26109 wlc_phy_txcal_phycleanup_nphy(pi
);
26111 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
26114 wlc_phy_txcal_radio_cleanup_nphy(pi
);
26116 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
26118 || (pi
->mphase_cal_phase_id
== mphase_cal_lastphase
))
26119 wlc_phy_tx_iq_war_nphy(pi
);
26122 if (NREV_GE(pi
->pubpi
.phy_rev
, 4))
26123 pi
->phyhang_avoid
= phyhang_avoid_state
;
26125 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
26130 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy
*pi
)
26134 if ((pi
->nphy_txiqlocal_chanspec
== pi
->radio_chanspec
) &&
26135 (pi
->nphy_txiqlocal_coeffsvalid
)) {
26136 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
26137 ARRAY_SIZE(tbl_buf
), 80, 16, tbl_buf
);
26139 if ((pi
->nphy_txiqlocal_bestc
[0] != tbl_buf
[0]) ||
26140 (pi
->nphy_txiqlocal_bestc
[1] != tbl_buf
[1]) ||
26141 (pi
->nphy_txiqlocal_bestc
[2] != tbl_buf
[2]) ||
26142 (pi
->nphy_txiqlocal_bestc
[3] != tbl_buf
[3])) {
26144 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 80,
26145 16, pi
->nphy_txiqlocal_bestc
);
26151 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 88,
26154 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 85,
26156 &pi
->nphy_txiqlocal_bestc
[5]);
26158 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 93,
26160 &pi
->nphy_txiqlocal_bestc
[5]);
26166 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy
*pi
, u8 write
,
26167 struct nphy_iq_comp
*pcomp
)
26170 write_phy_reg(pi
, 0x9a, pcomp
->a0
);
26171 write_phy_reg(pi
, 0x9b, pcomp
->b0
);
26172 write_phy_reg(pi
, 0x9c, pcomp
->a1
);
26173 write_phy_reg(pi
, 0x9d, pcomp
->b1
);
26175 pcomp
->a0
= read_phy_reg(pi
, 0x9a);
26176 pcomp
->b0
= read_phy_reg(pi
, 0x9b);
26177 pcomp
->a1
= read_phy_reg(pi
, 0x9c);
26178 pcomp
->b1
= read_phy_reg(pi
, 0x9d);
26183 wlc_phy_rx_iq_est_nphy(struct brcms_phy
*pi
, struct phy_iq_est
*est
,
26184 u16 num_samps
, u8 wait_time
, u8 wait_for_crs
)
26188 write_phy_reg(pi
, 0x12b, num_samps
);
26189 mod_phy_reg(pi
, 0x12a, (0xff << 0), (wait_time
<< 0));
26190 mod_phy_reg(pi
, 0x129, NPHY_IqestCmd_iqMode
,
26191 (wait_for_crs
) ? NPHY_IqestCmd_iqMode
: 0);
26193 mod_phy_reg(pi
, 0x129, NPHY_IqestCmd_iqstart
, NPHY_IqestCmd_iqstart
);
26195 SPINWAIT(((read_phy_reg(pi
, 0x129) & NPHY_IqestCmd_iqstart
) != 0),
26197 if (WARN(read_phy_reg(pi
, 0x129) & NPHY_IqestCmd_iqstart
,
26198 "HW error: rxiq est"))
26201 if ((read_phy_reg(pi
, 0x129) & NPHY_IqestCmd_iqstart
) == 0) {
26202 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
26205 NPHY_IqestipwrAccHi(core
)) << 16)
26206 | read_phy_reg(pi
, NPHY_IqestipwrAccLo(core
));
26209 NPHY_IqestqpwrAccHi(core
)) << 16)
26210 | read_phy_reg(pi
, NPHY_IqestqpwrAccLo(core
));
26211 est
[core
].iq_prod
=
26213 NPHY_IqestIqAccHi(core
)) << 16) |
26214 read_phy_reg(pi
, NPHY_IqestIqAccLo(core
));
26219 #define CAL_RETRY_CNT 2
26220 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy
*pi
, u8 core_mask
)
26223 struct phy_iq_est est
[PHY_CORE_MAX
];
26224 struct nphy_iq_comp old_comp
, new_comp
;
26226 u32 ii
= 0, qq
= 0;
26227 s16 iq_nbits
, qq_nbits
, brsh
, arsh
;
26230 uint cal_retry
= 0;
26232 if (core_mask
== 0x0)
26235 wlc_phy_rx_iq_coeffs_nphy(pi
, 0, &old_comp
);
26236 new_comp
.a0
= new_comp
.b0
= new_comp
.a1
= new_comp
.b1
= 0x0;
26237 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &new_comp
);
26240 wlc_phy_rx_iq_est_nphy(pi
, est
, 0x4000, 32, 0);
26242 new_comp
= old_comp
;
26244 for (curr_core
= 0; curr_core
< pi
->pubpi
.phy_corenum
; curr_core
++) {
26246 if ((curr_core
== PHY_CORE_0
) && (core_mask
& 0x1)) {
26247 iq
= est
[curr_core
].iq_prod
;
26248 ii
= est
[curr_core
].i_pwr
;
26249 qq
= est
[curr_core
].q_pwr
;
26250 } else if ((curr_core
== PHY_CORE_1
) && (core_mask
& 0x2)) {
26251 iq
= est
[curr_core
].iq_prod
;
26252 ii
= est
[curr_core
].i_pwr
;
26253 qq
= est
[curr_core
].q_pwr
;
26258 if ((ii
+ qq
) < NPHY_MIN_RXIQ_PWR
) {
26263 iq_nbits
= wlc_phy_nbits(iq
);
26264 qq_nbits
= wlc_phy_nbits(qq
);
26266 arsh
= 10 - (30 - iq_nbits
);
26268 a
= (-(iq
<< (30 - iq_nbits
)) + (ii
>> (1 + arsh
)));
26269 temp
= (s32
) (ii
>> arsh
);
26275 a
= (-(iq
<< (30 - iq_nbits
)) + (ii
<< (-1 - arsh
)));
26276 temp
= (s32
) (ii
<< -arsh
);
26285 brsh
= qq_nbits
- 31 + 20;
26287 b
= (qq
<< (31 - qq_nbits
));
26288 temp
= (s32
) (ii
>> brsh
);
26294 b
= (qq
<< (31 - qq_nbits
));
26295 temp
= (s32
) (ii
<< -brsh
);
26303 b
= (s32
) int_sqrt((unsigned long) b
);
26306 if ((curr_core
== PHY_CORE_0
) && (core_mask
& 0x1)) {
26307 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
26308 new_comp
.a0
= (s16
) a
& 0x3ff;
26309 new_comp
.b0
= (s16
) b
& 0x3ff;
26312 new_comp
.a0
= (s16
) b
& 0x3ff;
26313 new_comp
.b0
= (s16
) a
& 0x3ff;
26316 if ((curr_core
== PHY_CORE_1
) && (core_mask
& 0x2)) {
26317 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
26318 new_comp
.a1
= (s16
) a
& 0x3ff;
26319 new_comp
.b1
= (s16
) b
& 0x3ff;
26322 new_comp
.a1
= (s16
) b
& 0x3ff;
26323 new_comp
.b1
= (s16
) a
& 0x3ff;
26328 if (bcmerror
!= 0) {
26329 pr_debug("%s: Failed, cnt = %d\n", __func__
, cal_retry
);
26331 if (cal_retry
< CAL_RETRY_CNT
) {
26336 new_comp
= old_comp
;
26339 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &new_comp
);
26342 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
26348 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26349 if (rx_core
== PHY_CORE_0
) {
26350 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26351 pi
->tx_rx_cal_radio_saveregs
[0] =
26353 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP
);
26354 pi
->tx_rx_cal_radio_saveregs
[1] =
26356 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN
);
26358 write_radio_reg(pi
,
26359 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP
,
26361 write_radio_reg(pi
,
26362 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN
,
26366 pi
->tx_rx_cal_radio_saveregs
[0] =
26368 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP
);
26369 pi
->tx_rx_cal_radio_saveregs
[1] =
26371 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN
);
26375 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP
,
26379 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN
,
26384 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26385 pi
->tx_rx_cal_radio_saveregs
[0] =
26387 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP
);
26388 pi
->tx_rx_cal_radio_saveregs
[1] =
26390 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN
);
26394 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP
,
26398 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN
,
26402 pi
->tx_rx_cal_radio_saveregs
[0] =
26404 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP
);
26405 pi
->tx_rx_cal_radio_saveregs
[1] =
26407 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN
);
26409 write_radio_reg(pi
,
26410 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP
,
26412 write_radio_reg(pi
,
26413 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN
,
26419 if (rx_core
== PHY_CORE_0
) {
26420 pi
->tx_rx_cal_radio_saveregs
[0] =
26422 RADIO_2056_TX_RXIQCAL_TXMUX
|
26424 pi
->tx_rx_cal_radio_saveregs
[1] =
26426 RADIO_2056_RX_RXIQCAL_RXMUX
|
26429 if (pi
->pubpi
.radiorev
>= 5) {
26430 pi
->tx_rx_cal_radio_saveregs
[2] =
26432 RADIO_2056_RX_RXSPARE2
|
26434 pi
->tx_rx_cal_radio_saveregs
[3] =
26436 RADIO_2056_TX_TXSPARE2
|
26440 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26442 if (pi
->pubpi
.radiorev
>= 5) {
26443 pi
->tx_rx_cal_radio_saveregs
[4] =
26445 RADIO_2056_RX_LNAA_MASTER
26450 RADIO_2056_RX_LNAA_MASTER
26451 | RADIO_2056_RX0
, 0x40);
26453 write_radio_reg(pi
,
26454 RADIO_2056_TX_TXSPARE2
|
26455 RADIO_2056_TX1
, bias_a
);
26457 write_radio_reg(pi
,
26458 RADIO_2056_RX_RXSPARE2
|
26459 RADIO_2056_RX0
, bias_a
);
26461 pi
->tx_rx_cal_radio_saveregs
[4] =
26463 RADIO_2056_RX_LNAA_TUNE
26467 (pi
->tx_rx_cal_radio_saveregs
26470 (offtune_val
<= 0x7) ? 0xF : 0;
26473 RADIO_2056_RX_LNAA_TUNE
|
26474 RADIO_2056_RX0
, 0xF0,
26475 (offtune_val
<< 8));
26478 write_radio_reg(pi
,
26479 RADIO_2056_TX_RXIQCAL_TXMUX
|
26480 RADIO_2056_TX1
, 0x9);
26481 write_radio_reg(pi
,
26482 RADIO_2056_RX_RXIQCAL_RXMUX
|
26483 RADIO_2056_RX0
, 0x9);
26485 if (pi
->pubpi
.radiorev
>= 5) {
26486 pi
->tx_rx_cal_radio_saveregs
[4] =
26489 RADIO_2056_RX_LNAG_MASTER
26494 RADIO_2056_RX_LNAG_MASTER
26495 | RADIO_2056_RX0
, 0x40);
26499 RADIO_2056_TX_TXSPARE2
26501 RADIO_2056_TX1
, bias_g
);
26505 RADIO_2056_RX_RXSPARE2
26507 RADIO_2056_RX0
, bias_g
);
26510 pi
->tx_rx_cal_radio_saveregs
[4] =
26513 RADIO_2056_RX_LNAG_TUNE
26518 tx_rx_cal_radio_saveregs
[2] &
26521 (offtune_val
<= 0x7) ? 0xF : 0;
26524 RADIO_2056_RX_LNAG_TUNE
|
26525 RADIO_2056_RX0
, 0xF0,
26526 (offtune_val
<< 8));
26529 write_radio_reg(pi
,
26530 RADIO_2056_TX_RXIQCAL_TXMUX
|
26531 RADIO_2056_TX1
, 0x6);
26532 write_radio_reg(pi
,
26533 RADIO_2056_RX_RXIQCAL_RXMUX
|
26534 RADIO_2056_RX0
, 0x6);
26538 pi
->tx_rx_cal_radio_saveregs
[0] =
26540 RADIO_2056_TX_RXIQCAL_TXMUX
|
26542 pi
->tx_rx_cal_radio_saveregs
[1] =
26544 RADIO_2056_RX_RXIQCAL_RXMUX
|
26547 if (pi
->pubpi
.radiorev
>= 5) {
26548 pi
->tx_rx_cal_radio_saveregs
[2] =
26550 RADIO_2056_RX_RXSPARE2
|
26552 pi
->tx_rx_cal_radio_saveregs
[3] =
26554 RADIO_2056_TX_TXSPARE2
|
26558 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26560 if (pi
->pubpi
.radiorev
>= 5) {
26561 pi
->tx_rx_cal_radio_saveregs
[4] =
26564 RADIO_2056_RX_LNAA_MASTER
26569 RADIO_2056_RX_LNAA_MASTER
|
26570 RADIO_2056_RX1
, 0x40);
26574 RADIO_2056_TX_TXSPARE2
26576 RADIO_2056_TX0
, bias_a
);
26580 RADIO_2056_RX_RXSPARE2
26582 RADIO_2056_RX1
, bias_a
);
26584 pi
->tx_rx_cal_radio_saveregs
[4] =
26587 RADIO_2056_RX_LNAA_TUNE
26592 tx_rx_cal_radio_saveregs
[2] &
26595 (offtune_val
<= 0x7) ? 0xF : 0;
26598 RADIO_2056_RX_LNAA_TUNE
|
26599 RADIO_2056_RX1
, 0xF0,
26600 (offtune_val
<< 8));
26603 write_radio_reg(pi
,
26604 RADIO_2056_TX_RXIQCAL_TXMUX
|
26605 RADIO_2056_TX0
, 0x9);
26606 write_radio_reg(pi
,
26607 RADIO_2056_RX_RXIQCAL_RXMUX
|
26608 RADIO_2056_RX1
, 0x9);
26610 if (pi
->pubpi
.radiorev
>= 5) {
26611 pi
->tx_rx_cal_radio_saveregs
[4] =
26614 RADIO_2056_RX_LNAG_MASTER
26619 RADIO_2056_RX_LNAG_MASTER
26620 | RADIO_2056_RX1
, 0x40);
26624 RADIO_2056_TX_TXSPARE2
26626 RADIO_2056_TX0
, bias_g
);
26630 RADIO_2056_RX_RXSPARE2
26632 RADIO_2056_RX1
, bias_g
);
26634 pi
->tx_rx_cal_radio_saveregs
[4] =
26637 RADIO_2056_RX_LNAG_TUNE
26642 tx_rx_cal_radio_saveregs
[2] &
26645 (offtune_val
<= 0x7) ? 0xF : 0;
26648 RADIO_2056_RX_LNAG_TUNE
|
26649 RADIO_2056_RX1
, 0xF0,
26650 (offtune_val
<< 8));
26653 write_radio_reg(pi
,
26654 RADIO_2056_TX_RXIQCAL_TXMUX
|
26655 RADIO_2056_TX0
, 0x6);
26656 write_radio_reg(pi
,
26657 RADIO_2056_RX_RXIQCAL_RXMUX
|
26658 RADIO_2056_RX1
, 0x6);
26664 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
26666 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26667 if (rx_core
== PHY_CORE_0
) {
26668 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26671 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP
,
26673 tx_rx_cal_radio_saveregs
[0]);
26676 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN
,
26678 tx_rx_cal_radio_saveregs
[1]);
26683 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP
,
26685 tx_rx_cal_radio_saveregs
[0]);
26688 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN
,
26690 tx_rx_cal_radio_saveregs
[1]);
26694 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26697 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP
,
26699 tx_rx_cal_radio_saveregs
[0]);
26702 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN
,
26704 tx_rx_cal_radio_saveregs
[1]);
26709 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP
,
26711 tx_rx_cal_radio_saveregs
[0]);
26714 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN
,
26716 tx_rx_cal_radio_saveregs
[1]);
26721 if (rx_core
== PHY_CORE_0
) {
26722 write_radio_reg(pi
,
26723 RADIO_2056_TX_RXIQCAL_TXMUX
|
26725 pi
->tx_rx_cal_radio_saveregs
[0]);
26727 write_radio_reg(pi
,
26728 RADIO_2056_RX_RXIQCAL_RXMUX
|
26730 pi
->tx_rx_cal_radio_saveregs
[1]);
26732 if (pi
->pubpi
.radiorev
>= 5) {
26733 write_radio_reg(pi
,
26734 RADIO_2056_RX_RXSPARE2
|
26737 tx_rx_cal_radio_saveregs
[2]);
26739 write_radio_reg(pi
,
26740 RADIO_2056_TX_TXSPARE2
|
26743 tx_rx_cal_radio_saveregs
[3]);
26746 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26747 if (pi
->pubpi
.radiorev
>= 5)
26750 RADIO_2056_RX_LNAA_MASTER
26753 tx_rx_cal_radio_saveregs
26758 RADIO_2056_RX_LNAA_TUNE
26761 tx_rx_cal_radio_saveregs
26764 if (pi
->pubpi
.radiorev
>= 5)
26767 RADIO_2056_RX_LNAG_MASTER
26770 tx_rx_cal_radio_saveregs
26775 RADIO_2056_RX_LNAG_TUNE
26778 tx_rx_cal_radio_saveregs
26783 write_radio_reg(pi
,
26784 RADIO_2056_TX_RXIQCAL_TXMUX
|
26786 pi
->tx_rx_cal_radio_saveregs
[0]);
26788 write_radio_reg(pi
,
26789 RADIO_2056_RX_RXIQCAL_RXMUX
|
26791 pi
->tx_rx_cal_radio_saveregs
[1]);
26793 if (pi
->pubpi
.radiorev
>= 5) {
26794 write_radio_reg(pi
,
26795 RADIO_2056_RX_RXSPARE2
|
26798 tx_rx_cal_radio_saveregs
[2]);
26800 write_radio_reg(pi
,
26801 RADIO_2056_TX_TXSPARE2
|
26804 tx_rx_cal_radio_saveregs
[3]);
26807 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26808 if (pi
->pubpi
.radiorev
>= 5)
26811 RADIO_2056_RX_LNAA_MASTER
26814 tx_rx_cal_radio_saveregs
26819 RADIO_2056_RX_LNAA_TUNE
26822 tx_rx_cal_radio_saveregs
26825 if (pi
->pubpi
.radiorev
>= 5)
26828 RADIO_2056_RX_LNAG_MASTER
26831 tx_rx_cal_radio_saveregs
26836 RADIO_2056_RX_LNAG_TUNE
26839 tx_rx_cal_radio_saveregs
26846 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
26849 u16 rx_antval
, tx_antval
;
26851 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
26854 tx_core
= (rx_core
== PHY_CORE_0
) ? 1 : 0;
26856 pi
->tx_rx_cal_phy_saveregs
[0] = read_phy_reg(pi
, 0xa2);
26857 pi
->tx_rx_cal_phy_saveregs
[1] =
26858 read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7);
26859 pi
->tx_rx_cal_phy_saveregs
[2] =
26860 read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x8f : 0xa5);
26861 pi
->tx_rx_cal_phy_saveregs
[3] = read_phy_reg(pi
, 0x91);
26862 pi
->tx_rx_cal_phy_saveregs
[4] = read_phy_reg(pi
, 0x92);
26863 pi
->tx_rx_cal_phy_saveregs
[5] = read_phy_reg(pi
, 0x7a);
26864 pi
->tx_rx_cal_phy_saveregs
[6] = read_phy_reg(pi
, 0x7d);
26865 pi
->tx_rx_cal_phy_saveregs
[7] = read_phy_reg(pi
, 0xe7);
26866 pi
->tx_rx_cal_phy_saveregs
[8] = read_phy_reg(pi
, 0xec);
26867 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26868 pi
->tx_rx_cal_phy_saveregs
[11] = read_phy_reg(pi
, 0x342);
26869 pi
->tx_rx_cal_phy_saveregs
[12] = read_phy_reg(pi
, 0x343);
26870 pi
->tx_rx_cal_phy_saveregs
[13] = read_phy_reg(pi
, 0x346);
26871 pi
->tx_rx_cal_phy_saveregs
[14] = read_phy_reg(pi
, 0x347);
26874 pi
->tx_rx_cal_phy_saveregs
[9] = read_phy_reg(pi
, 0x297);
26875 pi
->tx_rx_cal_phy_saveregs
[10] = read_phy_reg(pi
, 0x29b);
26876 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
26877 0x29b, (0x1 << 0), (0) << 0);
26879 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
26880 0x29b, (0x1 << 0), (0) << 0);
26882 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26884 mod_phy_reg(pi
, 0xa2, (0xf << 0), (1 << tx_core
) << 0);
26886 mod_phy_reg(pi
, 0xa2, (0xf << 12), (1 << (1 - rx_core
)) << 12);
26890 mod_phy_reg(pi
, 0xa2, (0xf << 12), (1 << tx_core
) << 12);
26891 mod_phy_reg(pi
, 0xa2, (0xf << 0), (1 << tx_core
) << 0);
26892 mod_phy_reg(pi
, 0xa2, (0xf << 4), (1 << rx_core
) << 4);
26893 mod_phy_reg(pi
, 0xa2, (0xf << 8), (1 << rx_core
) << 8);
26896 mod_phy_reg(pi
, ((rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7), (0x1 << 2), 0);
26897 mod_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x8f : 0xa5,
26898 (0x1 << 2), (0x1 << 2));
26899 if (NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
26900 mod_phy_reg(pi
, ((rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
26901 (0x1 << 0) | (0x1 << 1), 0);
26902 mod_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ?
26904 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
26907 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_PA
, 0,
26908 RADIO_MIMO_CORESEL_CORE1
|
26909 RADIO_MIMO_CORESEL_CORE2
);
26911 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26912 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
26914 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26915 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 9), 0, 0, 0,
26916 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26917 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 10), 1, 0, 0,
26918 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26919 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 1, 0, 0,
26920 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26921 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), 1, 0, 0,
26922 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
26923 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 0, 0, 0,
26924 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26925 if (CHSPEC_IS40(pi
->radio_chanspec
))
26926 wlc_phy_rfctrl_override_nphy_rev7(
26930 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26932 wlc_phy_rfctrl_override_nphy_rev7(
26936 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26938 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7),
26940 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26941 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5), 0, 0, 0,
26942 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26944 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 3, 0);
26947 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
);
26949 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26951 wlc_phy_rfctrlintc_override_nphy(pi
,
26952 NPHY_RfctrlIntc_override_TRSW
,
26956 if (rx_core
== PHY_CORE_0
) {
26964 wlc_phy_rfctrlintc_override_nphy(pi
,
26965 NPHY_RfctrlIntc_override_TRSW
,
26966 rx_antval
, rx_core
+ 1);
26967 wlc_phy_rfctrlintc_override_nphy(pi
,
26968 NPHY_RfctrlIntc_override_TRSW
,
26969 tx_antval
, tx_core
+ 1);
26973 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
26976 write_phy_reg(pi
, 0xa2, pi
->tx_rx_cal_phy_saveregs
[0]);
26977 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7,
26978 pi
->tx_rx_cal_phy_saveregs
[1]);
26979 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x8f : 0xa5,
26980 pi
->tx_rx_cal_phy_saveregs
[2]);
26981 write_phy_reg(pi
, 0x91, pi
->tx_rx_cal_phy_saveregs
[3]);
26982 write_phy_reg(pi
, 0x92, pi
->tx_rx_cal_phy_saveregs
[4]);
26984 write_phy_reg(pi
, 0x7a, pi
->tx_rx_cal_phy_saveregs
[5]);
26985 write_phy_reg(pi
, 0x7d, pi
->tx_rx_cal_phy_saveregs
[6]);
26986 write_phy_reg(pi
, 0xe7, pi
->tx_rx_cal_phy_saveregs
[7]);
26987 write_phy_reg(pi
, 0xec, pi
->tx_rx_cal_phy_saveregs
[8]);
26988 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26989 write_phy_reg(pi
, 0x342, pi
->tx_rx_cal_phy_saveregs
[11]);
26990 write_phy_reg(pi
, 0x343, pi
->tx_rx_cal_phy_saveregs
[12]);
26991 write_phy_reg(pi
, 0x346, pi
->tx_rx_cal_phy_saveregs
[13]);
26992 write_phy_reg(pi
, 0x347, pi
->tx_rx_cal_phy_saveregs
[14]);
26995 write_phy_reg(pi
, 0x297, pi
->tx_rx_cal_phy_saveregs
[9]);
26996 write_phy_reg(pi
, 0x29b, pi
->tx_rx_cal_phy_saveregs
[10]);
27000 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy
*pi
, u8 rx_core
,
27001 u16
*rxgain
, u8 cal_type
)
27005 struct phy_iq_est est
[PHY_CORE_MAX
];
27007 struct nphy_iq_comp save_comp
, zero_comp
;
27008 u32 i_pwr
, q_pwr
, curr_pwr
, optim_pwr
= 0, prev_pwr
= 0,
27009 thresh_pwr
= 10000;
27010 s16 desired_log2_pwr
, actual_log2_pwr
, delta_pwr
;
27011 bool gainctrl_done
= false;
27012 u8 mix_tia_gain
= 3;
27013 s8 optim_gaintbl_index
= 0, prev_gaintbl_index
= 0;
27014 s8 curr_gaintbl_index
= 3;
27015 u8 gainctrl_dirn
= NPHY_RXCAL_GAIN_INIT
;
27016 const struct nphy_ipa_txrxgain
*nphy_rxcal_gaintbl
;
27017 u16 hpvga
, lpf_biq1
, lpf_biq0
, lna2
, lna1
;
27020 u16 nphy_rxcal_txgain
[2];
27022 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27025 tx_core
= 1 - rx_core
;
27028 desired_log2_pwr
= (cal_type
== 0) ? 13 : 13;
27030 wlc_phy_rx_iq_coeffs_nphy(pi
, 0, &save_comp
);
27031 zero_comp
.a0
= zero_comp
.b0
= zero_comp
.a1
= zero_comp
.b1
= 0x0;
27032 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &zero_comp
);
27034 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
27035 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27037 else if (NREV_GE(pi
->pubpi
.phy_rev
, 4))
27041 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27042 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_5GHz_rev7
;
27044 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_5GHz
;
27046 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27047 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_2GHz_rev7
;
27049 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_2GHz
;
27054 hpvga
= (NREV_GE(pi
->pubpi
.phy_rev
, 7)) ?
27055 0 : nphy_rxcal_gaintbl
[curr_gaintbl_index
].hpvga
;
27056 lpf_biq1
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lpf_biq1
;
27057 lpf_biq0
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lpf_biq0
;
27058 lna2
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lna2
;
27059 lna1
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lna1
;
27060 txpwrindex
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].txpwrindex
;
27062 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27063 wlc_phy_rfctrl_override_1tomany_nphy(
27065 NPHY_REV7_RfctrlOverride_cmd_rxgain
,
27066 ((lpf_biq1
<< 12) |
27068 (mix_tia_gain
<< 4) | (lna2
<< 2)
27071 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12),
27075 (mix_tia_gain
<< 4) |
27076 (lna2
<< 2) | lna1
), 0x3,
27079 pi
->nphy_rxcal_pwr_idx
[tx_core
] = txpwrindex
;
27081 if (txpwrindex
== -1) {
27082 nphy_rxcal_txgain
[0] = 0x8ff0 | pi
->nphy_gmval
;
27083 nphy_rxcal_txgain
[1] = 0x8ff0 | pi
->nphy_gmval
;
27084 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
27086 nphy_rxcal_txgain
);
27088 wlc_phy_txpwr_index_nphy(pi
, tx_core
+ 1, txpwrindex
,
27092 wlc_phy_tx_tone_nphy(pi
, (CHSPEC_IS40(pi
->radio_chanspec
)) ?
27093 NPHY_RXCAL_TONEFREQ_40MHz
:
27094 NPHY_RXCAL_TONEFREQ_20MHz
,
27095 NPHY_RXCAL_TONEAMP
, 0, cal_type
, false);
27097 wlc_phy_rx_iq_est_nphy(pi
, est
, num_samps
, 32, 0);
27098 i_pwr
= (est
[rx_core
].i_pwr
+ num_samps
/ 2) / num_samps
;
27099 q_pwr
= (est
[rx_core
].q_pwr
+ num_samps
/ 2) / num_samps
;
27100 curr_pwr
= i_pwr
+ q_pwr
;
27102 switch (gainctrl_dirn
) {
27103 case NPHY_RXCAL_GAIN_INIT
:
27104 if (curr_pwr
> thresh_pwr
) {
27105 gainctrl_dirn
= NPHY_RXCAL_GAIN_DOWN
;
27106 prev_gaintbl_index
= curr_gaintbl_index
;
27107 curr_gaintbl_index
--;
27109 gainctrl_dirn
= NPHY_RXCAL_GAIN_UP
;
27110 prev_gaintbl_index
= curr_gaintbl_index
;
27111 curr_gaintbl_index
++;
27115 case NPHY_RXCAL_GAIN_UP
:
27116 if (curr_pwr
> thresh_pwr
) {
27117 gainctrl_done
= true;
27118 optim_pwr
= prev_pwr
;
27119 optim_gaintbl_index
= prev_gaintbl_index
;
27121 prev_gaintbl_index
= curr_gaintbl_index
;
27122 curr_gaintbl_index
++;
27126 case NPHY_RXCAL_GAIN_DOWN
:
27127 if (curr_pwr
> thresh_pwr
) {
27128 prev_gaintbl_index
= curr_gaintbl_index
;
27129 curr_gaintbl_index
--;
27131 gainctrl_done
= true;
27132 optim_pwr
= curr_pwr
;
27133 optim_gaintbl_index
= curr_gaintbl_index
;
27141 if ((curr_gaintbl_index
< 0) ||
27142 (curr_gaintbl_index
> NPHY_IPA_RXCAL_MAXGAININDEX
)) {
27143 gainctrl_done
= true;
27144 optim_pwr
= curr_pwr
;
27145 optim_gaintbl_index
= prev_gaintbl_index
;
27147 prev_pwr
= curr_pwr
;
27150 wlc_phy_stopplayback_nphy(pi
);
27151 } while (!gainctrl_done
);
27153 hpvga
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].hpvga
;
27154 lpf_biq1
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lpf_biq1
;
27155 lpf_biq0
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lpf_biq0
;
27156 lna2
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lna2
;
27157 lna1
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lna1
;
27158 txpwrindex
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].txpwrindex
;
27160 actual_log2_pwr
= wlc_phy_nbits(optim_pwr
);
27161 delta_pwr
= desired_log2_pwr
- actual_log2_pwr
;
27163 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
27164 fine_gain_idx
= (int)lpf_biq1
+ delta_pwr
;
27166 if (fine_gain_idx
+ (int)lpf_biq0
> 10)
27167 lpf_biq1
= 10 - lpf_biq0
;
27169 lpf_biq1
= (u16
) max(fine_gain_idx
, 0);
27171 wlc_phy_rfctrl_override_1tomany_nphy(
27173 NPHY_REV7_RfctrlOverride_cmd_rxgain
,
27174 ((lpf_biq1
<< 12) |
27176 (mix_tia_gain
<< 4) |
27177 (lna2
<< 2) | lna1
), 0x3,
27180 hpvga
= (u16
) max(min(((int)hpvga
) + delta_pwr
, 10), 0);
27181 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12),
27185 (mix_tia_gain
<< 4) |
27190 if (rxgain
!= NULL
) {
27193 *rxgain
++ = mix_tia_gain
;
27194 *rxgain
++ = lpf_biq0
;
27195 *rxgain
++ = lpf_biq1
;
27199 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &save_comp
);
27203 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy
*pi
, u8 rx_core
, u16
*rxgain
,
27206 wlc_phy_rxcal_gainctrl_nphy_rev5(pi
, rx_core
, rxgain
, cal_type
);
27210 wlc_phy_rc_sweep_nphy(struct brcms_phy
*pi
, u8 core_idx
, u8 loopback_type
)
27212 u32 target_bws
[2] = { 9500, 21000 };
27213 u32 ref_tones
[2] = { 3000, 6000 };
27214 u32 target_bw
, ref_tone
;
27216 u32 target_pwr_ratios
[2] = { 28606, 18468 };
27217 u32 target_pwr_ratio
, pwr_ratio
, last_pwr_ratio
= 0;
27219 u16 start_rccal_ovr_val
= 128;
27220 u16 txlpf_rccal_lpc_ovr_val
= 128;
27221 u16 rxlpf_rccal_hpc_ovr_val
= 159;
27223 u16 orig_txlpf_rccal_lpc_ovr_val
;
27224 u16 orig_rxlpf_rccal_hpc_ovr_val
;
27225 u16 radio_addr_offset_rx
;
27226 u16 radio_addr_offset_tx
;
27228 u16 orig_RxStrnFilt40Num
[6];
27229 u16 orig_RxStrnFilt40Den
[4];
27230 u16 orig_rfctrloverride
[2];
27231 u16 orig_rfctrlauxreg
[2];
27232 u16 orig_rfctrlrssiothers
;
27235 u16 rx_lpf_bw
, rx_lpf_bws
[2] = { 2, 4 };
27236 u16 lpf_hpc
= 7, hpvga_hpc
= 7;
27239 u16 rccal_val
, last_rccal_val
= 0, best_rccal_val
= 0;
27240 u32 ref_iq_vals
= 0, target_iq_vals
= 0;
27241 u16 num_samps
, log_num_samps
= 10;
27242 struct phy_iq_est est
[PHY_CORE_MAX
];
27244 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27247 num_samps
= (1 << log_num_samps
);
27249 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
27250 target_bw
= target_bws
[1];
27251 target_pwr_ratio
= target_pwr_ratios
[1];
27252 ref_tone
= ref_tones
[1];
27253 rx_lpf_bw
= rx_lpf_bws
[1];
27255 target_bw
= target_bws
[0];
27256 target_pwr_ratio
= target_pwr_ratios
[0];
27257 ref_tone
= ref_tones
[0];
27258 rx_lpf_bw
= rx_lpf_bws
[0];
27261 if (core_idx
== 0) {
27262 radio_addr_offset_rx
= RADIO_2056_RX0
;
27263 radio_addr_offset_tx
=
27264 (loopback_type
== 0) ? RADIO_2056_TX0
: RADIO_2056_TX1
;
27266 radio_addr_offset_rx
= RADIO_2056_RX1
;
27267 radio_addr_offset_tx
=
27268 (loopback_type
== 0) ? RADIO_2056_TX1
: RADIO_2056_TX0
;
27271 orig_txlpf_rccal_lpc_ovr_val
=
27273 (RADIO_2056_TX_TXLPF_RCCAL
|
27274 radio_addr_offset_tx
));
27275 orig_rxlpf_rccal_hpc_ovr_val
=
27277 (RADIO_2056_RX_RXLPF_RCCAL_HPC
|
27278 radio_addr_offset_rx
));
27280 orig_dcBypass
= ((read_phy_reg(pi
, 0x48) >> 8) & 1);
27282 orig_RxStrnFilt40Num
[0] = read_phy_reg(pi
, 0x267);
27283 orig_RxStrnFilt40Num
[1] = read_phy_reg(pi
, 0x268);
27284 orig_RxStrnFilt40Num
[2] = read_phy_reg(pi
, 0x269);
27285 orig_RxStrnFilt40Den
[0] = read_phy_reg(pi
, 0x26a);
27286 orig_RxStrnFilt40Den
[1] = read_phy_reg(pi
, 0x26b);
27287 orig_RxStrnFilt40Num
[3] = read_phy_reg(pi
, 0x26c);
27288 orig_RxStrnFilt40Num
[4] = read_phy_reg(pi
, 0x26d);
27289 orig_RxStrnFilt40Num
[5] = read_phy_reg(pi
, 0x26e);
27290 orig_RxStrnFilt40Den
[2] = read_phy_reg(pi
, 0x26f);
27291 orig_RxStrnFilt40Den
[3] = read_phy_reg(pi
, 0x270);
27293 orig_rfctrloverride
[0] = read_phy_reg(pi
, 0xe7);
27294 orig_rfctrloverride
[1] = read_phy_reg(pi
, 0xec);
27295 orig_rfctrlauxreg
[0] = read_phy_reg(pi
, 0xf8);
27296 orig_rfctrlauxreg
[1] = read_phy_reg(pi
, 0xfa);
27297 orig_rfctrlrssiothers
= read_phy_reg(pi
, (core_idx
== 0) ? 0x7a : 0x7d);
27299 write_radio_reg(pi
, (RADIO_2056_TX_TXLPF_RCCAL
| radio_addr_offset_tx
),
27300 txlpf_rccal_lpc_ovr_val
);
27302 write_radio_reg(pi
,
27303 (RADIO_2056_RX_RXLPF_RCCAL_HPC
| radio_addr_offset_rx
),
27304 rxlpf_rccal_hpc_ovr_val
);
27306 mod_phy_reg(pi
, 0x48, (0x1 << 8), (0x1 << 8));
27308 write_phy_reg(pi
, 0x267, 0x02d4);
27309 write_phy_reg(pi
, 0x268, 0x0000);
27310 write_phy_reg(pi
, 0x269, 0x0000);
27311 write_phy_reg(pi
, 0x26a, 0x0000);
27312 write_phy_reg(pi
, 0x26b, 0x0000);
27313 write_phy_reg(pi
, 0x26c, 0x02d4);
27314 write_phy_reg(pi
, 0x26d, 0x0000);
27315 write_phy_reg(pi
, 0x26e, 0x0000);
27316 write_phy_reg(pi
, 0x26f, 0x0000);
27317 write_phy_reg(pi
, 0x270, 0x0000);
27319 or_phy_reg(pi
, (core_idx
== 0) ? 0xe7 : 0xec, (0x1 << 8));
27320 or_phy_reg(pi
, (core_idx
== 0) ? 0xec : 0xe7, (0x1 << 15));
27321 or_phy_reg(pi
, (core_idx
== 0) ? 0xe7 : 0xec, (0x1 << 9));
27322 or_phy_reg(pi
, (core_idx
== 0) ? 0xe7 : 0xec, (0x1 << 10));
27324 mod_phy_reg(pi
, (core_idx
== 0) ? 0xfa : 0xf8,
27325 (0x7 << 10), (tx_lpf_bw
<< 10));
27326 mod_phy_reg(pi
, (core_idx
== 0) ? 0xf8 : 0xfa,
27327 (0x7 << 0), (hpvga_hpc
<< 0));
27328 mod_phy_reg(pi
, (core_idx
== 0) ? 0xf8 : 0xfa,
27329 (0x7 << 4), (lpf_hpc
<< 4));
27330 mod_phy_reg(pi
, (core_idx
== 0) ? 0x7a : 0x7d,
27331 (0x7 << 8), (rx_lpf_bw
<< 8));
27333 rccal_stepsize
= 16;
27334 rccal_val
= start_rccal_ovr_val
+ rccal_stepsize
;
27336 while (rccal_stepsize
>= 0) {
27337 write_radio_reg(pi
,
27338 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
27339 radio_addr_offset_rx
), rccal_val
);
27341 if (rccal_stepsize
== 16) {
27343 wlc_phy_tx_tone_nphy(pi
, ref_tone
, NPHY_RXCAL_TONEAMP
,
27347 wlc_phy_rx_iq_est_nphy(pi
, est
, num_samps
, 32, 0);
27351 max_t(u32
, (est
[0].i_pwr
+
27353 (log_num_samps
+ 1),
27357 max_t(u32
, (est
[1].i_pwr
+
27359 (log_num_samps
+ 1),
27362 wlc_phy_tx_tone_nphy(pi
, target_bw
, NPHY_RXCAL_TONEAMP
,
27367 wlc_phy_rx_iq_est_nphy(pi
, est
, num_samps
, 32, 0);
27370 target_iq_vals
= (est
[0].i_pwr
+ est
[0].q_pwr
) >>
27371 (log_num_samps
+ 1);
27375 est
[1].q_pwr
) >> (log_num_samps
+ 1);
27377 pwr_ratio
= (uint
) ((target_iq_vals
<< 16) / ref_iq_vals
);
27379 if (rccal_stepsize
== 0)
27381 else if (rccal_stepsize
== 1) {
27382 last_rccal_val
= rccal_val
;
27383 rccal_val
+= (pwr_ratio
> target_pwr_ratio
) ? 1 : -1;
27384 last_pwr_ratio
= pwr_ratio
;
27387 rccal_stepsize
= (rccal_stepsize
>> 1);
27388 rccal_val
+= ((pwr_ratio
> target_pwr_ratio
) ?
27389 rccal_stepsize
: (-rccal_stepsize
));
27392 if (rccal_stepsize
== -1) {
27394 (abs((int)last_pwr_ratio
-
27395 (int)target_pwr_ratio
) <
27396 abs((int)pwr_ratio
-
27397 (int)target_pwr_ratio
)) ? last_rccal_val
:
27400 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
27401 if ((best_rccal_val
> 140)
27402 || (best_rccal_val
< 135))
27403 best_rccal_val
= 138;
27405 if ((best_rccal_val
> 142)
27406 || (best_rccal_val
< 137))
27407 best_rccal_val
= 140;
27410 write_radio_reg(pi
,
27411 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
27412 radio_addr_offset_rx
), best_rccal_val
);
27416 wlc_phy_stopplayback_nphy(pi
);
27418 write_radio_reg(pi
, (RADIO_2056_TX_TXLPF_RCCAL
| radio_addr_offset_tx
),
27419 orig_txlpf_rccal_lpc_ovr_val
);
27420 write_radio_reg(pi
,
27421 (RADIO_2056_RX_RXLPF_RCCAL_HPC
| radio_addr_offset_rx
),
27422 orig_rxlpf_rccal_hpc_ovr_val
);
27424 mod_phy_reg(pi
, 0x48, (0x1 << 8), (orig_dcBypass
<< 8));
27426 write_phy_reg(pi
, 0x267, orig_RxStrnFilt40Num
[0]);
27427 write_phy_reg(pi
, 0x268, orig_RxStrnFilt40Num
[1]);
27428 write_phy_reg(pi
, 0x269, orig_RxStrnFilt40Num
[2]);
27429 write_phy_reg(pi
, 0x26a, orig_RxStrnFilt40Den
[0]);
27430 write_phy_reg(pi
, 0x26b, orig_RxStrnFilt40Den
[1]);
27431 write_phy_reg(pi
, 0x26c, orig_RxStrnFilt40Num
[3]);
27432 write_phy_reg(pi
, 0x26d, orig_RxStrnFilt40Num
[4]);
27433 write_phy_reg(pi
, 0x26e, orig_RxStrnFilt40Num
[5]);
27434 write_phy_reg(pi
, 0x26f, orig_RxStrnFilt40Den
[2]);
27435 write_phy_reg(pi
, 0x270, orig_RxStrnFilt40Den
[3]);
27437 write_phy_reg(pi
, 0xe7, orig_rfctrloverride
[0]);
27438 write_phy_reg(pi
, 0xec, orig_rfctrloverride
[1]);
27439 write_phy_reg(pi
, 0xf8, orig_rfctrlauxreg
[0]);
27440 write_phy_reg(pi
, 0xfa, orig_rfctrlauxreg
[1]);
27441 write_phy_reg(pi
, (core_idx
== 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers
);
27443 pi
->nphy_anarxlpf_adjusted
= false;
27445 return best_rccal_val
- 0x80;
27448 #define WAIT_FOR_SCOPE 4000
27449 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy
*pi
,
27450 struct nphy_txgains target_gain
,
27451 u8 cal_type
, bool debug
)
27454 u8 core_no
, rx_core
;
27458 struct nphy_iqcal_params cal_params
[2];
27460 s8 rxlpf_rccal_hpc
, txlpf_rccal_lpc
;
27462 bool phyhang_avoid_state
= false;
27463 bool skip_rxiqcal
= false;
27465 orig_BBConfig
= read_phy_reg(pi
, 0x01);
27466 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
27468 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
27470 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
27471 phyhang_avoid_state
= pi
->phyhang_avoid
;
27472 pi
->phyhang_avoid
= false;
27475 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, gain_save
);
27477 for (core_no
= 0; core_no
<= 1; core_no
++) {
27478 wlc_phy_iqcal_gainparams_nphy(pi
, core_no
, target_gain
,
27479 &cal_params
[core_no
]);
27480 cal_gain
[core_no
] = cal_params
[core_no
].cal_gain
;
27483 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, cal_gain
);
27485 rxcore_state
= wlc_phy_rxcore_getstate_nphy(
27486 (struct brcms_phy_pub
*) pi
);
27488 for (rx_core
= 0; rx_core
< pi
->pubpi
.phy_corenum
; rx_core
++) {
27491 ((rxcore_state
& (1 << rx_core
)) == 0) ? true : false;
27493 wlc_phy_rxcal_physetup_nphy(pi
, rx_core
);
27495 wlc_phy_rxcal_radio_setup_nphy(pi
, rx_core
);
27497 if ((!skip_rxiqcal
) && ((cal_type
== 0) || (cal_type
== 2))) {
27499 wlc_phy_rxcal_gainctrl_nphy(pi
, rx_core
, NULL
, 0);
27501 wlc_phy_tx_tone_nphy(pi
,
27503 pi
->radio_chanspec
)) ?
27504 NPHY_RXCAL_TONEFREQ_40MHz
:
27505 NPHY_RXCAL_TONEFREQ_20MHz
,
27506 NPHY_RXCAL_TONEAMP
, 0, cal_type
,
27510 mdelay(WAIT_FOR_SCOPE
);
27512 wlc_phy_calc_rx_iq_comp_nphy(pi
, rx_core
+ 1);
27513 wlc_phy_stopplayback_nphy(pi
);
27516 if (((cal_type
== 1) || (cal_type
== 2))
27517 && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
27519 if (rx_core
== PHY_CORE_1
) {
27521 if (rxcore_state
== 1)
27522 wlc_phy_rxcore_setstate_nphy(
27523 (struct brcms_phy_pub
*) pi
, 3);
27525 wlc_phy_rxcal_gainctrl_nphy(pi
, rx_core
, NULL
,
27528 best_rccal
[rx_core
] =
27529 wlc_phy_rc_sweep_nphy(pi
, rx_core
, 1);
27530 pi
->nphy_rccal_value
= best_rccal
[rx_core
];
27532 if (rxcore_state
== 1)
27533 wlc_phy_rxcore_setstate_nphy(
27534 (struct brcms_phy_pub
*) pi
,
27539 wlc_phy_rxcal_radio_cleanup_nphy(pi
, rx_core
);
27541 wlc_phy_rxcal_phycleanup_nphy(pi
, rx_core
);
27542 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
27545 if ((cal_type
== 1) || (cal_type
== 2)) {
27547 best_rccal
[0] = best_rccal
[1];
27548 write_radio_reg(pi
,
27549 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
27550 RADIO_2056_RX0
), (best_rccal
[0] | 0x80));
27552 for (rx_core
= 0; rx_core
< pi
->pubpi
.phy_corenum
; rx_core
++) {
27554 (((int)best_rccal
[rx_core
] - 12) >> 1) + 10;
27555 txlpf_rccal_lpc
= ((int)best_rccal
[rx_core
] - 12) + 10;
27559 (pi
->bw
== WL_CHANSPEC_BW_40
) ? 24 : 12;
27560 txlpf_idac
= (pi
->bw
== WL_CHANSPEC_BW_40
) ?
27562 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, rx_core
,
27563 TXLPF_IDAC_4
, txlpf_idac
);
27566 rxlpf_rccal_hpc
= max(min_t(u8
, rxlpf_rccal_hpc
, 31),
27568 txlpf_rccal_lpc
= max(min_t(u8
, txlpf_rccal_lpc
, 31),
27571 write_radio_reg(pi
, (RADIO_2056_RX_RXLPF_RCCAL_HPC
|
27573 PHY_CORE_0
) ? RADIO_2056_RX0
:
27575 (rxlpf_rccal_hpc
| 0x80));
27577 write_radio_reg(pi
, (RADIO_2056_TX_TXLPF_RCCAL
|
27579 PHY_CORE_0
) ? RADIO_2056_TX0
:
27581 (txlpf_rccal_lpc
| 0x80));
27585 write_phy_reg(pi
, 0x01, orig_BBConfig
);
27587 wlc_phy_resetcca_nphy(pi
);
27589 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27590 wlc_phy_rfctrl_override_1tomany_nphy(
27592 NPHY_REV7_RfctrlOverride_cmd_rxgain
,
27595 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12), 0, 0x3, 1);
27597 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
27599 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
27602 if (NREV_GE(pi
->pubpi
.phy_rev
, 4))
27603 pi
->phyhang_avoid
= phyhang_avoid_state
;
27605 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
27611 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy
*pi
,
27612 struct nphy_txgains target_gain
, bool debug
)
27614 struct phy_iq_est est
[PHY_CORE_MAX
];
27615 u8 core_num
, rx_core
, tx_core
;
27616 u16 lna_vals
[] = { 0x3, 0x3, 0x1 };
27617 u16 hpf1_vals
[] = { 0x7, 0x2, 0x0 };
27618 u16 hpf2_vals
[] = { 0x2, 0x0, 0x0 };
27619 s16 curr_hpf1
, curr_hpf2
, curr_hpf
, curr_lna
;
27620 s16 desired_log2_pwr
, actual_log2_pwr
, hpf_change
;
27621 u16 orig_RfseqCoreActv
, orig_AfectrlCore
, orig_AfectrlOverride
;
27622 u16 orig_RfctrlIntcRx
, orig_RfctrlIntcTx
;
27624 u32 i_pwr
, q_pwr
, tot_pwr
[3];
27625 u8 gain_pass
, use_hpf_num
;
27626 u16 mask
, val1
, val2
;
27630 struct nphy_iqcal_params cal_params
[2];
27633 bool first_playtone
= true;
27635 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
27637 if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
27638 wlc_phy_reapply_txcal_coeffs_nphy(pi
);
27640 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, gain_save
);
27642 for (core_no
= 0; core_no
<= 1; core_no
++) {
27643 wlc_phy_iqcal_gainparams_nphy(pi
, core_no
, target_gain
,
27644 &cal_params
[core_no
]);
27645 cal_gain
[core_no
] = cal_params
[core_no
].cal_gain
;
27648 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, cal_gain
);
27651 desired_log2_pwr
= 13;
27653 for (core_num
= 0; core_num
< 2; core_num
++) {
27655 rx_core
= core_num
;
27656 tx_core
= 1 - core_num
;
27658 orig_RfseqCoreActv
= read_phy_reg(pi
, 0xa2);
27659 orig_AfectrlCore
= read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ?
27661 orig_AfectrlOverride
= read_phy_reg(pi
, 0xa5);
27662 orig_RfctrlIntcRx
= read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ?
27664 orig_RfctrlIntcTx
= read_phy_reg(pi
, (tx_core
== PHY_CORE_0
) ?
27667 mod_phy_reg(pi
, 0xa2, (0xf << 12), (1 << tx_core
) << 12);
27668 mod_phy_reg(pi
, 0xa2, (0xf << 0), (1 << tx_core
) << 0);
27670 or_phy_reg(pi
, ((rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
27671 ((0x1 << 1) | (0x1 << 2)));
27672 or_phy_reg(pi
, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27674 if (((pi
->nphy_rxcalparams
) & 0xff000000))
27676 (rx_core
== PHY_CORE_0
) ? 0x91 : 0x92,
27677 (CHSPEC_IS5G(pi
->radio_chanspec
) ?
27681 (rx_core
== PHY_CORE_0
) ? 0x91 : 0x92,
27682 (CHSPEC_IS5G(pi
->radio_chanspec
) ?
27685 write_phy_reg(pi
, (tx_core
== PHY_CORE_0
) ? 0x91 : 0x92,
27686 (CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x148 :
27689 mask
= RADIO_2055_COUPLE_RX_MASK
| RADIO_2055_COUPLE_TX_MASK
;
27690 if (rx_core
== PHY_CORE_0
) {
27691 val1
= RADIO_2055_COUPLE_RX_MASK
;
27692 val2
= RADIO_2055_COUPLE_TX_MASK
;
27694 val1
= RADIO_2055_COUPLE_TX_MASK
;
27695 val2
= RADIO_2055_COUPLE_RX_MASK
;
27698 if ((pi
->nphy_rxcalparams
& 0x10000)) {
27699 mod_radio_reg(pi
, RADIO_2055_CORE1_GEN_SPARE2
, mask
,
27701 mod_radio_reg(pi
, RADIO_2055_CORE2_GEN_SPARE2
, mask
,
27705 for (gain_pass
= 0; gain_pass
< 4; gain_pass
++) {
27708 mdelay(WAIT_FOR_SCOPE
);
27710 if (gain_pass
< 3) {
27711 curr_lna
= lna_vals
[gain_pass
];
27712 curr_hpf1
= hpf1_vals
[gain_pass
];
27713 curr_hpf2
= hpf2_vals
[gain_pass
];
27716 if (tot_pwr
[1] > 10000) {
27717 curr_lna
= lna_vals
[2];
27718 curr_hpf1
= hpf1_vals
[2];
27719 curr_hpf2
= hpf2_vals
[2];
27721 curr_hpf
= curr_hpf1
;
27723 wlc_phy_nbits(tot_pwr
[2]);
27725 if (tot_pwr
[0] > 10000) {
27726 curr_lna
= lna_vals
[1];
27727 curr_hpf1
= hpf1_vals
[1];
27728 curr_hpf2
= hpf2_vals
[1];
27730 curr_hpf
= curr_hpf1
;
27735 curr_lna
= lna_vals
[0];
27736 curr_hpf1
= hpf1_vals
[0];
27737 curr_hpf2
= hpf2_vals
[0];
27739 curr_hpf
= curr_hpf2
;
27746 hpf_change
= desired_log2_pwr
- actual_log2_pwr
;
27747 curr_hpf
+= hpf_change
;
27748 curr_hpf
= max(min_t(u16
, curr_hpf
, 10), 0);
27749 if (use_hpf_num
== 1)
27750 curr_hpf1
= curr_hpf
;
27752 curr_hpf2
= curr_hpf
;
27755 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 10),
27756 ((curr_hpf2
<< 8) |
27758 (curr_lna
<< 2)), 0x3, 0);
27759 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
27761 wlc_phy_stopplayback_nphy(pi
);
27763 if (first_playtone
) {
27764 bcmerror
= wlc_phy_tx_tone_nphy(pi
, 4000,
27765 (u16
) (pi
->nphy_rxcalparams
&
27766 0xffff), 0, 0, true);
27767 first_playtone
= false;
27769 phy_bw
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
27771 wlc_phy_runsamples_nphy(pi
, phy_bw
* 8, 0xffff,
27775 if (bcmerror
== 0) {
27776 if (gain_pass
< 3) {
27778 wlc_phy_rx_iq_est_nphy(pi
, est
,
27781 i_pwr
= (est
[rx_core
].i_pwr
+
27782 num_samps
/ 2) / num_samps
;
27783 q_pwr
= (est
[rx_core
].q_pwr
+
27784 num_samps
/ 2) / num_samps
;
27785 tot_pwr
[gain_pass
] = i_pwr
+ q_pwr
;
27788 wlc_phy_calc_rx_iq_comp_nphy(pi
,
27793 wlc_phy_stopplayback_nphy(pi
);
27800 and_radio_reg(pi
, RADIO_2055_CORE1_GEN_SPARE2
, ~mask
);
27801 and_radio_reg(pi
, RADIO_2055_CORE2_GEN_SPARE2
, ~mask
);
27803 write_phy_reg(pi
, (tx_core
== PHY_CORE_0
) ? 0x91 :
27804 0x92, orig_RfctrlIntcTx
);
27805 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x91 :
27806 0x92, orig_RfctrlIntcRx
);
27807 write_phy_reg(pi
, 0xa5, orig_AfectrlOverride
);
27808 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0xa6 :
27809 0xa7, orig_AfectrlCore
);
27810 write_phy_reg(pi
, 0xa2, orig_RfseqCoreActv
);
27816 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 10), 0, 0x3, 1);
27817 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
27819 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
27822 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
27828 wlc_phy_cal_rxiq_nphy(struct brcms_phy
*pi
, struct nphy_txgains target_gain
,
27829 u8 cal_type
, bool debug
)
27831 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27834 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
27835 return wlc_phy_cal_rxiq_nphy_rev3(pi
, target_gain
, cal_type
,
27838 return wlc_phy_cal_rxiq_nphy_rev2(pi
, target_gain
, debug
);
27841 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy
*pi
)
27845 u16 rad_gain
, dac_gain
, bbmult
, m1m2
;
27846 u8 txpi
[2], chan_freq_range
;
27849 if (pi
->phyhang_avoid
)
27850 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
27852 if (pi
->sh
->sromrev
< 4) {
27853 txpi
[0] = txpi
[1] = 72;
27856 chan_freq_range
= wlc_phy_get_chan_freq_range_nphy(pi
, 0);
27857 switch (chan_freq_range
) {
27858 case WL_CHAN_FREQ_RANGE_2G
:
27859 case WL_CHAN_FREQ_RANGE_5GL
:
27860 case WL_CHAN_FREQ_RANGE_5GM
:
27861 case WL_CHAN_FREQ_RANGE_5GH
:
27866 txpi
[0] = txpi
[1] = 91;
27871 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
27872 txpi
[0] = txpi
[1] = 30;
27873 else if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
27874 txpi
[0] = txpi
[1] = 40;
27876 if (NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
27878 if ((txpi
[0] < 40) || (txpi
[0] > 100) ||
27879 (txpi
[1] < 40) || (txpi
[1] > 100))
27880 txpi
[0] = txpi
[1] = 91;
27883 pi
->nphy_txpwrindex
[PHY_CORE_0
].index_internal
= txpi
[0];
27884 pi
->nphy_txpwrindex
[PHY_CORE_1
].index_internal
= txpi
[1];
27885 pi
->nphy_txpwrindex
[PHY_CORE_0
].index_internal_save
= txpi
[0];
27886 pi
->nphy_txpwrindex
[PHY_CORE_1
].index_internal_save
= txpi
[1];
27888 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
27889 uint phyrev
= pi
->pubpi
.phy_rev
;
27891 if (NREV_GE(phyrev
, 3)) {
27894 wlc_phy_get_ipa_gaintbl_nphy(pi
);
27895 txgain
= tx_gaintbl
[txpi
[core
]];
27897 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
27898 if (NREV_IS(phyrev
, 3)) {
27900 nphy_tpc_5GHz_txgain_rev3
27902 } else if (NREV_IS(phyrev
, 4)) {
27904 pi
->srom_fem5g
.extpagain
==
27906 nphy_tpc_5GHz_txgain_HiPwrEPA
27908 nphy_tpc_5GHz_txgain_rev4
27912 nphy_tpc_5GHz_txgain_rev5
27916 if (NREV_GE(phyrev
, 5) &&
27917 (pi
->srom_fem2g
.extpagain
== 3)) {
27919 nphy_tpc_txgain_HiPwrEPA
27922 txgain
= nphy_tpc_txgain_rev3
27928 txgain
= nphy_tpc_txgain
[txpi
[core
]];
27931 if (NREV_GE(phyrev
, 3))
27932 rad_gain
= (txgain
>> 16) & ((1 << (32 - 16 + 1)) - 1);
27934 rad_gain
= (txgain
>> 16) & ((1 << (28 - 16 + 1)) - 1);
27936 if (NREV_GE(phyrev
, 7))
27937 dac_gain
= (txgain
>> 8) & ((1 << (10 - 8 + 1)) - 1);
27939 dac_gain
= (txgain
>> 8) & ((1 << (13 - 8 + 1)) - 1);
27941 bbmult
= (txgain
>> 0) & ((1 << (7 - 0 + 1)) - 1);
27943 if (NREV_GE(phyrev
, 3))
27944 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
27945 0xa5), (0x1 << 8), (0x1 << 8));
27947 mod_phy_reg(pi
, 0xa5, (0x1 << 14), (0x1 << 14));
27949 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0xaa : 0xab, dac_gain
);
27951 wlc_phy_table_write_nphy(pi
, 7, 1, (0x110 + core
), 16,
27954 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m1m2
);
27955 m1m2
&= ((core
== PHY_CORE_0
) ? 0x00ff : 0xff00);
27956 m1m2
|= ((core
== PHY_CORE_0
) ? (bbmult
<< 8) : (bbmult
<< 0));
27957 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m1m2
);
27960 wlc_phy_table_read_nphy(pi
,
27963 NPHY_TBL_ID_CORE1TXPWRCTL
:
27964 NPHY_TBL_ID_CORE2TXPWRCTL
), 1,
27965 576 + txpi
[core
], 32,
27968 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
27969 0x29b, (0x1ff << 4),
27970 ((s16
) rfpwr_offset
) << 4);
27972 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
27973 0x29b, (0x1 << 2), (1) << 2);
27978 and_phy_reg(pi
, 0xbf, (u16
) (~(0x1f << 0)));
27980 if (pi
->phyhang_avoid
)
27981 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
27985 wlc_phy_txpwr_nphy_srom_convert(u8
*srom_max
, u16
*pwr_offset
,
27986 u8 tmp_max_pwr
, u8 rate_start
,
27990 u8 word_num
, nibble_num
;
27993 for (rate
= rate_start
; rate
<= rate_end
; rate
++) {
27994 word_num
= (rate
- rate_start
) >> 2;
27995 nibble_num
= (rate
- rate_start
) & 0x3;
27996 tmp_nibble
= (pwr_offset
[word_num
] >> 4 * nibble_num
) & 0xf;
27998 srom_max
[rate
] = tmp_max_pwr
- 2 * tmp_nibble
;
28003 wlc_phy_txpwr_nphy_po_apply(u8
*srom_max
, u8 pwr_offset
,
28004 u8 rate_start
, u8 rate_end
)
28008 for (rate
= rate_start
; rate
<= rate_end
; rate
++)
28009 srom_max
[rate
] -= 2 * pwr_offset
;
28013 wlc_phy_ofdm_to_mcs_powers_nphy(u8
*power
, u8 rate_mcs_start
,
28014 u8 rate_mcs_end
, u8 rate_ofdm_start
)
28018 rate2
= rate_ofdm_start
;
28019 for (rate1
= rate_mcs_start
; rate1
<= rate_mcs_end
- 1; rate1
++) {
28020 power
[rate1
] = power
[rate2
];
28021 rate2
+= (rate1
== rate_mcs_start
) ? 2 : 1;
28023 power
[rate_mcs_end
] = power
[rate_mcs_end
- 1];
28027 wlc_phy_mcs_to_ofdm_powers_nphy(u8
*power
, u8 rate_ofdm_start
,
28028 u8 rate_ofdm_end
, u8 rate_mcs_start
)
28032 for (rate1
= rate_ofdm_start
, rate2
= rate_mcs_start
;
28033 rate1
<= rate_ofdm_end
; rate1
++, rate2
++) {
28034 power
[rate1
] = power
[rate2
];
28035 if (rate1
== rate_ofdm_start
)
28036 power
[++rate1
] = power
[rate2
];
28040 void wlc_phy_txpwr_apply_nphy(struct brcms_phy
*pi
)
28042 uint rate1
, rate2
, band_num
;
28043 u8 tmp_bw40po
= 0, tmp_cddpo
= 0, tmp_stbcpo
= 0;
28044 u8 tmp_max_pwr
= 0;
28045 u16 pwr_offsets1
[2], *pwr_offsets2
= NULL
;
28046 u8
*tx_srom_max_rate
= NULL
;
28048 for (band_num
= 0; band_num
< (CH_2G_GROUP
+ CH_5G_GROUP
);
28050 switch (band_num
) {
28053 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_2g
,
28054 pi
->nphy_pwrctrl_info
[1].max_pwr_2g
);
28056 pwr_offsets1
[0] = pi
->cck2gpo
;
28057 wlc_phy_txpwr_nphy_srom_convert(pi
->tx_srom_max_rate_2g
,
28063 pwr_offsets1
[0] = (u16
) (pi
->ofdm2gpo
& 0xffff);
28065 (u16
) (pi
->ofdm2gpo
>> 16) & 0xffff;
28067 pwr_offsets2
= pi
->mcs2gpo
;
28069 tmp_cddpo
= pi
->cdd2gpo
;
28070 tmp_stbcpo
= pi
->stbc2gpo
;
28071 tmp_bw40po
= pi
->bw402gpo
;
28073 tx_srom_max_rate
= pi
->tx_srom_max_rate_2g
;
28077 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_5gm
,
28078 pi
->nphy_pwrctrl_info
[1].max_pwr_5gm
);
28080 pwr_offsets1
[0] = (u16
) (pi
->ofdm5gpo
& 0xffff);
28082 (u16
) (pi
->ofdm5gpo
>> 16) & 0xffff;
28084 pwr_offsets2
= pi
->mcs5gpo
;
28086 tmp_cddpo
= pi
->cdd5gpo
;
28087 tmp_stbcpo
= pi
->stbc5gpo
;
28088 tmp_bw40po
= pi
->bw405gpo
;
28090 tx_srom_max_rate
= pi
->tx_srom_max_rate_5g_mid
;
28094 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_5gl
,
28095 pi
->nphy_pwrctrl_info
[1].max_pwr_5gl
);
28097 pwr_offsets1
[0] = (u16
) (pi
->ofdm5glpo
& 0xffff);
28099 (u16
) (pi
->ofdm5glpo
>> 16) & 0xffff;
28101 pwr_offsets2
= pi
->mcs5glpo
;
28103 tmp_cddpo
= pi
->cdd5glpo
;
28104 tmp_stbcpo
= pi
->stbc5glpo
;
28105 tmp_bw40po
= pi
->bw405glpo
;
28107 tx_srom_max_rate
= pi
->tx_srom_max_rate_5g_low
;
28111 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_5gh
,
28112 pi
->nphy_pwrctrl_info
[1].max_pwr_5gh
);
28114 pwr_offsets1
[0] = (u16
) (pi
->ofdm5ghpo
& 0xffff);
28116 (u16
) (pi
->ofdm5ghpo
>> 16) & 0xffff;
28118 pwr_offsets2
= pi
->mcs5ghpo
;
28120 tmp_cddpo
= pi
->cdd5ghpo
;
28121 tmp_stbcpo
= pi
->stbc5ghpo
;
28122 tmp_bw40po
= pi
->bw405ghpo
;
28124 tx_srom_max_rate
= pi
->tx_srom_max_rate_5g_hi
;
28128 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
, pwr_offsets1
,
28129 tmp_max_pwr
, TXP_FIRST_OFDM
,
28132 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate
,
28133 TXP_FIRST_MCS_20_SISO
,
28134 TXP_LAST_MCS_20_SISO
,
28137 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
, pwr_offsets2
,
28139 TXP_FIRST_MCS_20_CDD
,
28140 TXP_LAST_MCS_20_CDD
);
28142 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
28143 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
, tmp_cddpo
,
28144 TXP_FIRST_MCS_20_CDD
,
28145 TXP_LAST_MCS_20_CDD
);
28147 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate
,
28148 TXP_FIRST_OFDM_20_CDD
,
28149 TXP_LAST_OFDM_20_CDD
,
28150 TXP_FIRST_MCS_20_CDD
);
28152 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
, pwr_offsets2
,
28154 TXP_FIRST_MCS_20_STBC
,
28155 TXP_LAST_MCS_20_STBC
);
28157 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
28158 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
,
28160 TXP_FIRST_MCS_20_STBC
,
28161 TXP_LAST_MCS_20_STBC
);
28163 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
28164 &pwr_offsets2
[2], tmp_max_pwr
,
28165 TXP_FIRST_MCS_20_SDM
,
28166 TXP_LAST_MCS_20_SDM
);
28168 if (NPHY_IS_SROM_REINTERPRET
) {
28170 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
28173 TXP_FIRST_MCS_40_SISO
,
28174 TXP_LAST_MCS_40_SISO
);
28176 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate
,
28177 TXP_FIRST_OFDM_40_SISO
,
28178 TXP_LAST_OFDM_40_SISO
,
28179 TXP_FIRST_MCS_40_SISO
);
28181 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
28184 TXP_FIRST_MCS_40_CDD
,
28185 TXP_LAST_MCS_40_CDD
);
28187 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
, tmp_cddpo
,
28188 TXP_FIRST_MCS_40_CDD
,
28189 TXP_LAST_MCS_40_CDD
);
28191 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate
,
28192 TXP_FIRST_OFDM_40_CDD
,
28193 TXP_LAST_OFDM_40_CDD
,
28194 TXP_FIRST_MCS_40_CDD
);
28196 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
28199 TXP_FIRST_MCS_40_STBC
,
28200 TXP_LAST_MCS_40_STBC
);
28202 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
,
28204 TXP_FIRST_MCS_40_STBC
,
28205 TXP_LAST_MCS_40_STBC
);
28207 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
28210 TXP_FIRST_MCS_40_SDM
,
28211 TXP_LAST_MCS_40_SDM
);
28214 for (rate1
= TXP_FIRST_OFDM_40_SISO
, rate2
=
28216 rate1
<= TXP_LAST_MCS_40_SDM
;
28218 tx_srom_max_rate
[rate1
] =
28219 tx_srom_max_rate
[rate2
];
28222 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
28223 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
,
28225 TXP_FIRST_OFDM_40_SISO
,
28226 TXP_LAST_MCS_40_SDM
);
28228 tx_srom_max_rate
[TXP_MCS_32
] =
28229 tx_srom_max_rate
[TXP_FIRST_MCS_40_CDD
];
28235 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy
*pi
)
28237 u8 tx_pwr_ctrl_state
;
28238 wlc_phy_txpwr_limit_to_tbl_nphy(pi
);
28239 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
28241 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
28243 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12)) {
28244 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, MCTL_PHYLOCK
);
28245 (void)bcma_read32(pi
->d11core
, D11REGOFFS(maccontrol
));
28249 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
28251 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12))
28252 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, 0);
28255 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy
*pi
)
28257 return read_phy_reg((pi
), 0x1e7) & ((0x1 << 15) |
28258 (0x1 << 14) | (0x1 << 13));
28261 u16
wlc_phy_txpwr_idx_get_nphy(struct brcms_phy
*pi
)
28266 if (wlc_phy_txpwr_ison_nphy(pi
)) {
28267 pwr_idx
[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi
, PHY_CORE_0
);
28268 pwr_idx
[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi
, PHY_CORE_1
);
28270 tmp
= (pwr_idx
[0] << 8) | pwr_idx
[1];
28272 tmp
= ((pi
->nphy_txpwrindex
[PHY_CORE_0
].index_internal
& 0xff)
28274 (pi
->nphy_txpwrindex
[PHY_CORE_1
].index_internal
& 0xff);
28280 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy
*pi
)
28283 && (pi
->nphy_force_papd_cal
28284 || (wlc_phy_txpwr_ison_nphy(pi
)
28287 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi
, 0) -
28288 pi
->nphy_papd_tx_gain_at_last_cal
[0]) >= 4)
28290 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi
, 1) -
28291 pi
->nphy_papd_tx_gain_at_last_cal
[1]) >= 4)))))
28292 wlc_phy_a4(pi
, true);
28295 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy
*pi
, u8 ctrl_type
)
28297 u16 mask
= 0, val
= 0, ishw
= 0;
28304 if (pi
->phyhang_avoid
)
28305 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
28307 switch (ctrl_type
) {
28308 case PHY_TPC_HW_OFF
:
28309 case PHY_TPC_HW_ON
:
28310 pi
->nphy_txpwrctrl
= ctrl_type
;
28316 if (ctrl_type
== PHY_TPC_HW_OFF
) {
28317 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28319 if (wlc_phy_txpwr_ison_nphy(pi
)) {
28320 for (core
= 0; core
< pi
->pubpi
.phy_corenum
;
28322 pi
->nphy_txpwr_idx
[core
] =
28323 wlc_phy_txpwr_idx_cur_get_nphy(
28332 for (ctr
= 0; ctr
< tbl_len
; ctr
++)
28334 wlc_phy_table_write_nphy(pi
, 26, tbl_len
, tbl_offset
, 16,
28336 wlc_phy_table_write_nphy(pi
, 27, tbl_len
, tbl_offset
, 16,
28339 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
28340 and_phy_reg(pi
, 0x1e7,
28341 (u16
) (~((0x1 << 15) |
28342 (0x1 << 14) | (0x1 << 13))));
28344 and_phy_reg(pi
, 0x1e7,
28345 (u16
) (~((0x1 << 14) | (0x1 << 13))));
28347 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28348 or_phy_reg(pi
, 0x8f, (0x1 << 8));
28349 or_phy_reg(pi
, 0xa5, (0x1 << 8));
28351 or_phy_reg(pi
, 0xa5, (0x1 << 14));
28354 if (NREV_IS(pi
->pubpi
.phy_rev
, 2))
28355 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x53);
28356 else if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
28357 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x5a);
28359 if (NREV_LT(pi
->pubpi
.phy_rev
, 2) &&
28360 pi
->bw
== WL_CHANSPEC_BW_40
)
28361 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF1
, MHF1_IQSWAP_WAR
,
28362 MHF1_IQSWAP_WAR
, BRCM_BAND_ALL
);
28366 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 84, 64,
28367 8, pi
->adj_pwr_tbl_nphy
);
28368 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 84, 64,
28369 8, pi
->adj_pwr_tbl_nphy
);
28371 ishw
= (ctrl_type
== PHY_TPC_HW_ON
) ? 0x1 : 0x0;
28372 mask
= (0x1 << 14) | (0x1 << 13);
28373 val
= (ishw
<< 14) | (ishw
<< 13);
28375 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28376 mask
|= (0x1 << 15);
28377 val
|= (ishw
<< 15);
28380 mod_phy_reg(pi
, 0x1e7, mask
, val
);
28382 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
28383 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28384 mod_phy_reg(pi
, 0x1e7, (0x7f << 0), 0x32);
28385 mod_phy_reg(pi
, 0x222, (0xff << 0), 0x32);
28387 mod_phy_reg(pi
, 0x1e7, (0x7f << 0), 0x64);
28388 if (NREV_GT(pi
->pubpi
.phy_rev
, 1))
28389 mod_phy_reg(pi
, 0x222,
28390 (0xff << 0), 0x64);
28394 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28395 if ((pi
->nphy_txpwr_idx
[0] != 128)
28396 && (pi
->nphy_txpwr_idx
[1] != 128))
28397 wlc_phy_txpwr_idx_cur_set_nphy(pi
,
28406 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28407 and_phy_reg(pi
, 0x8f, ~(0x1 << 8));
28408 and_phy_reg(pi
, 0xa5, ~(0x1 << 8));
28410 and_phy_reg(pi
, 0xa5, ~(0x1 << 14));
28413 if (NREV_IS(pi
->pubpi
.phy_rev
, 2))
28414 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x3b);
28415 else if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
28416 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x40);
28418 if (NREV_LT(pi
->pubpi
.phy_rev
, 2) &&
28419 pi
->bw
== WL_CHANSPEC_BW_40
)
28420 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF1
, MHF1_IQSWAP_WAR
,
28421 0x0, BRCM_BAND_ALL
);
28424 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
28425 0x29b, (0x1 << 2), (0) << 2);
28427 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
28428 0x29b, (0x1 << 2), (0) << 2);
28434 if (pi
->phyhang_avoid
)
28435 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
28439 wlc_phy_txpwr_index_nphy(struct brcms_phy
*pi
, u8 core_mask
, s8 txpwrindex
,
28442 u8 core
, txpwrctl_tbl
;
28443 u16 tx_ind0
, iq_ind0
, lo_ind0
;
28446 u16 rad_gain
, dac_gain
;
28449 u16 iqcomp_a
, iqcomp_b
;
28452 u8 tx_pwr_ctrl_state
;
28456 if (pi
->phyhang_avoid
)
28457 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
28463 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
28465 if ((core_mask
& (1 << core
)) == 0)
28468 txpwrctl_tbl
= (core
== PHY_CORE_0
) ? 26 : 27;
28470 if (txpwrindex
< 0) {
28471 if (pi
->nphy_txpwrindex
[core
].index
< 0)
28474 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28475 mod_phy_reg(pi
, 0x8f,
28477 pi
->nphy_txpwrindex
[core
].
28479 mod_phy_reg(pi
, 0xa5, (0x1 << 8),
28480 pi
->nphy_txpwrindex
[core
].
28483 mod_phy_reg(pi
, 0xa5,
28485 pi
->nphy_txpwrindex
[core
].
28489 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
28491 pi
->nphy_txpwrindex
[core
].AfeCtrlDacGain
);
28493 wlc_phy_table_write_nphy(pi
, 7, 1, (0x110 + core
), 16,
28494 &pi
->nphy_txpwrindex
[core
].
28497 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28498 m1m2
&= ((core
== PHY_CORE_0
) ? 0x00ff : 0xff00);
28499 m1m2
|= ((core
== PHY_CORE_0
) ?
28500 (pi
->nphy_txpwrindex
[core
].bbmult
<< 8) :
28501 (pi
->nphy_txpwrindex
[core
].bbmult
<< 0));
28502 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28504 if (restore_cals
) {
28505 wlc_phy_table_write_nphy(
28506 pi
, 15, 2, (80 + 2 * core
), 16,
28507 &pi
->nphy_txpwrindex
[core
].iqcomp_a
);
28508 wlc_phy_table_write_nphy(
28509 pi
, 15, 1, (85 + core
), 16,
28510 &pi
->nphy_txpwrindex
[core
].locomp
);
28511 wlc_phy_table_write_nphy(
28512 pi
, 15, 1, (93 + core
), 16,
28513 &pi
->nphy_txpwrindex
[core
].locomp
);
28516 wlc_phy_txpwrctrl_enable_nphy(pi
, pi
->nphy_txpwrctrl
);
28518 pi
->nphy_txpwrindex
[core
].index_internal
=
28519 pi
->nphy_txpwrindex
[core
].index_internal_save
;
28522 if (pi
->nphy_txpwrindex
[core
].index
< 0) {
28524 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28525 mod_phy_reg(pi
, 0x8f,
28527 pi
->nphy_txpwrindex
[core
].
28529 mod_phy_reg(pi
, 0xa5, (0x1 << 8),
28530 pi
->nphy_txpwrindex
[core
].
28533 pi
->nphy_txpwrindex
[core
].
28535 read_phy_reg(pi
, 0xa5);
28538 pi
->nphy_txpwrindex
[core
].AfeCtrlDacGain
=
28539 read_phy_reg(pi
, (core
== PHY_CORE_0
) ?
28542 wlc_phy_table_read_nphy(pi
, 7, 1,
28543 (0x110 + core
), 16,
28545 nphy_txpwrindex
[core
].
28548 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16,
28550 tmpval
>>= ((core
== PHY_CORE_0
) ? 8 : 0);
28552 pi
->nphy_txpwrindex
[core
].bbmult
= (u8
) tmpval
;
28554 wlc_phy_table_read_nphy(pi
, 15, 2,
28555 (80 + 2 * core
), 16,
28557 nphy_txpwrindex
[core
].
28560 wlc_phy_table_read_nphy(pi
, 15, 1, (85 + core
),
28563 nphy_txpwrindex
[core
].
28566 pi
->nphy_txpwrindex
[core
].index_internal_save
=
28567 pi
->nphy_txpwrindex
[core
].
28571 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
28572 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
28574 if (NREV_IS(pi
->pubpi
.phy_rev
, 1))
28575 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, ON
);
28577 wlc_phy_table_read_nphy(pi
, txpwrctl_tbl
, 1,
28578 (tx_ind0
+ txpwrindex
), 32,
28581 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
28582 rad_gain
= (txgain
>> 16) &
28583 ((1 << (32 - 16 + 1)) - 1);
28585 rad_gain
= (txgain
>> 16) &
28586 ((1 << (28 - 16 + 1)) - 1);
28588 dac_gain
= (txgain
>> 8) & ((1 << (13 - 8 + 1)) - 1);
28589 bbmult
= (txgain
>> 0) & ((1 << (7 - 0 + 1)) - 1);
28591 if (NREV_GE(pi
->pubpi
.phy_rev
, 3))
28592 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
28593 0xa5), (0x1 << 8), (0x1 << 8));
28595 mod_phy_reg(pi
, 0xa5, (0x1 << 14), (0x1 << 14));
28597 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
28598 0xaa : 0xab, dac_gain
);
28600 wlc_phy_table_write_nphy(pi
, 7, 1, (0x110 + core
), 16,
28603 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28604 m1m2
&= ((core
== PHY_CORE_0
) ? 0x00ff : 0xff00);
28605 m1m2
|= ((core
== PHY_CORE_0
) ?
28606 (bbmult
<< 8) : (bbmult
<< 0));
28608 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28610 wlc_phy_table_read_nphy(pi
, txpwrctl_tbl
, 1,
28611 (iq_ind0
+ txpwrindex
), 32,
28613 iqcomp_a
= (iqcomp
>> 10) & ((1 << (19 - 10 + 1)) - 1);
28614 iqcomp_b
= (iqcomp
>> 0) & ((1 << (9 - 0 + 1)) - 1);
28616 if (restore_cals
) {
28617 regval
[0] = (u16
) iqcomp_a
;
28618 regval
[1] = (u16
) iqcomp_b
;
28619 wlc_phy_table_write_nphy(pi
, 15, 2,
28620 (80 + 2 * core
), 16,
28624 wlc_phy_table_read_nphy(pi
, txpwrctl_tbl
, 1,
28625 (lo_ind0
+ txpwrindex
), 32,
28628 wlc_phy_table_write_nphy(pi
, 15, 1, (85 + core
),
28631 if (NREV_IS(pi
->pubpi
.phy_rev
, 1))
28632 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, OFF
);
28635 wlc_phy_table_read_nphy(pi
,
28636 (core
== PHY_CORE_0
?
28637 NPHY_TBL_ID_CORE1TXPWRCTL
:
28638 NPHY_TBL_ID_CORE2TXPWRCTL
),
28639 1, 576 + txpwrindex
, 32,
28642 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
28643 0x29b, (0x1ff << 4),
28644 ((s16
) rfpwr_offset
) << 4);
28646 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
28647 0x29b, (0x1 << 2), (1) << 2);
28651 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
28654 pi
->nphy_txpwrindex
[core
].index
= txpwrindex
;
28657 if (pi
->phyhang_avoid
)
28658 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
28662 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy
*pi
, uint chan
, u8
*max_pwr
,
28665 u8 chan_freq_range
;
28667 chan_freq_range
= wlc_phy_get_chan_freq_range_nphy(pi
, chan
);
28668 switch (chan_freq_range
) {
28669 case WL_CHAN_FREQ_RANGE_2G
:
28670 *max_pwr
= pi
->tx_srom_max_rate_2g
[txp_rate_idx
];
28672 case WL_CHAN_FREQ_RANGE_5GM
:
28673 *max_pwr
= pi
->tx_srom_max_rate_5g_mid
[txp_rate_idx
];
28675 case WL_CHAN_FREQ_RANGE_5GL
:
28676 *max_pwr
= pi
->tx_srom_max_rate_5g_low
[txp_rate_idx
];
28678 case WL_CHAN_FREQ_RANGE_5GH
:
28679 *max_pwr
= pi
->tx_srom_max_rate_5g_hi
[txp_rate_idx
];
28682 *max_pwr
= pi
->tx_srom_max_rate_2g
[txp_rate_idx
];
28689 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy
*pi
, bool enable
)
28691 u16 clip_off
[] = { 0xffff, 0xffff };
28694 if (pi
->nphy_deaf_count
== 0) {
28695 pi
->classifier_state
=
28696 wlc_phy_classifier_nphy(pi
, 0, 0);
28697 wlc_phy_classifier_nphy(pi
, (0x7 << 0), 4);
28698 wlc_phy_clip_det_nphy(pi
, 0, pi
->clip_state
);
28699 wlc_phy_clip_det_nphy(pi
, 1, clip_off
);
28702 pi
->nphy_deaf_count
++;
28704 wlc_phy_resetcca_nphy(pi
);
28707 pi
->nphy_deaf_count
--;
28709 if (pi
->nphy_deaf_count
== 0) {
28710 wlc_phy_classifier_nphy(pi
, (0x7 << 0),
28711 pi
->classifier_state
);
28712 wlc_phy_clip_det_nphy(pi
, 1, pi
->clip_state
);
28717 void wlc_nphy_deaf_mode(struct brcms_phy
*pi
, bool mode
)
28719 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
28722 if (pi
->nphy_deaf_count
== 0)
28723 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
28724 } else if (pi
->nphy_deaf_count
> 0) {
28725 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
28728 wlapi_enable_mac(pi
->sh
->physhim
);