2 * Copyright (c) 2010 Broadcom Corporation
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #include <linux/kernel.h>
18 #include <linux/delay.h>
19 #include <linux/cordic.h>
21 #include <brcm_hw_ids.h>
23 #include <chipcommon.h>
29 #include "phy_radio.h"
33 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
34 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
35 ((core == PHY_CORE_0) ? \
36 radio_type##_##jspace##0 : \
37 radio_type##_##jspace##1))
39 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
40 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
41 ((core == PHY_CORE_0) ? \
42 radio_type##_##jspace##0 : \
43 radio_type##_##jspace##1), value)
45 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
46 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
48 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
49 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
50 radio_type##_##jspace##0##_##reg_name : \
51 radio_type##_##jspace##1##_##reg_name))
53 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
54 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
55 radio_type##_##jspace##0##_##reg_name : \
56 radio_type##_##jspace##1##_##reg_name), \
59 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
60 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
61 radio_type##_##reg_name##_##jspace##0 : \
62 radio_type##_##reg_name##_##jspace##1))
64 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
65 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
66 radio_type##_##reg_name##_##jspace##0 : \
67 radio_type##_##reg_name##_##jspace##1), \
70 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
71 #define NPHY_ACI_CHANNEL_DELTA 5
72 #define NPHY_ACI_CHANNEL_SKIP 4
73 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
74 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
75 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
76 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
77 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
78 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
80 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
82 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
84 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
86 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
88 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
90 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
92 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
94 #define NPHY_NOISE_ASSOC_ENTER_TH 400
96 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
98 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
99 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
101 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
103 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
105 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
107 #define NPHY_RSSICAL_MAXREAD 31
109 #define NPHY_RSSICAL_NPOLL 8
110 #define NPHY_RSSICAL_MAXD (1<<20)
111 #define NPHY_MIN_RXIQ_PWR 2
113 #define NPHY_RSSICAL_W1_TARGET 25
114 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
115 #define NPHY_RSSICAL_NB_TARGET 0
117 #define NPHY_RSSICAL_W1_TARGET_REV3 29
118 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
120 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
121 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
122 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
123 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
124 NPHY_RSSICAL_MAXREAD)
125 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
126 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
127 NPHY_RSSICAL_MAXREAD)
128 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
129 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
130 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
131 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
132 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
133 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
134 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
136 #define NPHY_IQCAL_NUMGAINS 9
137 #define NPHY_N_GCTL 0x66
139 #define NPHY_PAPD_EPS_TBL_SIZE 64
140 #define NPHY_PAPD_SCL_TBL_SIZE 64
141 #define NPHY_NUM_DIG_FILT_COEFFS 15
143 #define NPHY_PAPD_COMP_OFF 0
144 #define NPHY_PAPD_COMP_ON 1
146 #define NPHY_SROM_TEMPSHIFT 32
147 #define NPHY_SROM_MAXTEMPOFFSET 16
148 #define NPHY_SROM_MINTEMPOFFSET -16
150 #define NPHY_CAL_MAXTEMPDELTA 64
152 #define NPHY_NOISEVAR_TBLLEN40 256
153 #define NPHY_NOISEVAR_TBLLEN20 128
155 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
157 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
159 /* 5357 Chip specific ChipControl register bits */
160 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
161 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
163 #define NPHY_CAL_TSSISAMPS 64
164 #define NPHY_TEST_TONE_FREQ_40MHz 4000
165 #define NPHY_TEST_TONE_FREQ_20MHz 2500
167 #define MAX_205x_RCAL_WAITLOOPS 10000
169 #define NPHY_RXCAL_TONEAMP 181
170 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
171 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
173 #define TXFILT_SHAPING_OFDM20 0
174 #define TXFILT_SHAPING_OFDM40 1
175 #define TXFILT_SHAPING_CCK 2
176 #define TXFILT_DEFAULT_OFDM20 3
177 #define TXFILT_DEFAULT_OFDM40 4
179 struct nphy_iqcal_params {
189 struct nphy_txiqcal_ladder {
194 struct nphy_ipa_txcalgains {
195 struct nphy_txgains gains;
200 struct nphy_papd_restore_state {
211 struct nphy_ipa_txrxgain {
220 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
222 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
223 {0, 0, 0, 0, 0, 100},
231 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
232 {0, 0, 0, 0, 0, 128},
240 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
241 {0, 0, 0, 0, 0, 100},
249 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
259 NPHY_RXCAL_GAIN_INIT = 0,
264 #define wlc_phy_get_papd_nphy(pi) \
265 (read_phy_reg((pi), 0x1e7) & \
270 static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
271 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
272 230, -44, 230, 201, -191, 201},
273 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
275 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
276 121, -73, 121, 91, 124, 91},
277 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
278 151, 301, 151, 602, -752, 602},
279 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
280 12, 25, 12, 13, 27, 13},
281 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
282 230, -44, 230, 201, -191, 201},
283 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
284 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
287 struct chan_info_nphy_2055 {
303 u8 RF_core1_lgbuf_a_tune;
304 u8 RF_core1_lgbuf_g_tune;
305 u8 RF_core1_rxrf_reg1;
306 u8 RF_core1_tx_pga_pad_tn;
307 u8 RF_core1_tx_mx_bgtrim;
308 u8 RF_core2_lgbuf_a_tune;
309 u8 RF_core2_lgbuf_g_tune;
310 u8 RF_core2_rxrf_reg1;
311 u8 RF_core2_tx_pga_pad_tn;
312 u8 RF_core2_tx_mx_bgtrim;
321 struct chan_info_nphy_radio205x {
324 u8 RF_SYN_pll_vcocal1;
325 u8 RF_SYN_pll_vcocal2;
326 u8 RF_SYN_pll_refdiv;
329 u8 RF_SYN_pll_loopfilter1;
330 u8 RF_SYN_pll_loopfilter2;
331 u8 RF_SYN_pll_loopfilter3;
332 u8 RF_SYN_pll_loopfilter4;
333 u8 RF_SYN_pll_loopfilter5;
334 u8 RF_SYN_reserved_addr27;
335 u8 RF_SYN_reserved_addr28;
336 u8 RF_SYN_reserved_addr29;
337 u8 RF_SYN_logen_VCOBUF1;
338 u8 RF_SYN_logen_MIXER2;
339 u8 RF_SYN_logen_BUF3;
340 u8 RF_SYN_logen_BUF4;
343 u8 RF_TX0_intpaa_boost_tune;
344 u8 RF_TX0_intpag_boost_tune;
345 u8 RF_TX0_pada_boost_tune;
346 u8 RF_TX0_padg_boost_tune;
347 u8 RF_TX0_pgaa_boost_tune;
348 u8 RF_TX0_pgag_boost_tune;
349 u8 RF_TX0_mixa_boost_tune;
350 u8 RF_TX0_mixg_boost_tune;
353 u8 RF_TX1_intpaa_boost_tune;
354 u8 RF_TX1_intpag_boost_tune;
355 u8 RF_TX1_pada_boost_tune;
356 u8 RF_TX1_padg_boost_tune;
357 u8 RF_TX1_pgaa_boost_tune;
358 u8 RF_TX1_pgag_boost_tune;
359 u8 RF_TX1_mixa_boost_tune;
360 u8 RF_TX1_mixg_boost_tune;
369 struct chan_info_nphy_radio2057 {
372 u8 RF_vcocal_countval0;
373 u8 RF_vcocal_countval1;
374 u8 RF_rfpll_refmaster_sparextalsize;
375 u8 RF_rfpll_loopfilter_r1;
376 u8 RF_rfpll_loopfilter_c2;
377 u8 RF_rfpll_loopfilter_c1;
382 u8 RF_logen_mx2g_tune;
383 u8 RF_logen_mx5g_tune;
384 u8 RF_logen_indbuf2g_tune;
385 u8 RF_logen_indbuf5g_tune;
386 u8 RF_txmix2g_tune_boost_pu_core0;
387 u8 RF_pad2g_tune_pus_core0;
388 u8 RF_pga_boost_tune_core0;
389 u8 RF_txmix5g_boost_tune_core0;
390 u8 RF_pad5g_tune_misc_pus_core0;
391 u8 RF_lna2g_tune_core0;
392 u8 RF_lna5g_tune_core0;
393 u8 RF_txmix2g_tune_boost_pu_core1;
394 u8 RF_pad2g_tune_pus_core1;
395 u8 RF_pga_boost_tune_core1;
396 u8 RF_txmix5g_boost_tune_core1;
397 u8 RF_pad5g_tune_misc_pus_core1;
398 u8 RF_lna2g_tune_core1;
399 u8 RF_lna5g_tune_core1;
408 struct chan_info_nphy_radio2057_rev5 {
411 u8 RF_vcocal_countval0;
412 u8 RF_vcocal_countval1;
413 u8 RF_rfpll_refmaster_sparextalsize;
414 u8 RF_rfpll_loopfilter_r1;
415 u8 RF_rfpll_loopfilter_c2;
416 u8 RF_rfpll_loopfilter_c1;
421 u8 RF_logen_mx2g_tune;
422 u8 RF_logen_indbuf2g_tune;
423 u8 RF_txmix2g_tune_boost_pu_core0;
424 u8 RF_pad2g_tune_pus_core0;
425 u8 RF_lna2g_tune_core0;
426 u8 RF_txmix2g_tune_boost_pu_core1;
427 u8 RF_pad2g_tune_pus_core1;
428 u8 RF_lna2g_tune_core1;
437 struct nphy_sfo_cfg {
446 static const struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
448 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
449 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
450 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
452 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
453 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
454 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
456 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
457 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
458 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
460 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
461 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
462 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
464 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
465 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
466 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
468 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
469 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
470 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
472 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
473 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
474 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
476 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
477 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
478 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
480 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
481 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
482 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
484 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
485 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
486 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
488 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
489 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
490 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
492 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
493 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
494 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
496 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
497 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
498 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
500 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
501 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
502 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
504 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
505 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
506 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
508 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
509 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
510 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
512 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
513 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
514 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
516 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
517 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
518 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
520 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
521 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
522 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
524 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
525 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
526 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
528 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
529 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
530 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
532 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
533 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
534 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
536 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
537 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
538 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
540 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
541 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
542 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
544 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
545 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
546 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
548 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
549 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
550 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
552 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
553 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
554 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
556 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
557 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
558 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
560 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
561 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
562 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
564 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
565 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
566 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
568 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
569 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
570 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
572 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
573 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
574 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
576 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
577 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
578 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
580 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
581 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
582 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
584 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
585 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
586 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
588 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
589 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
590 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
592 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
593 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
594 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
596 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
597 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
598 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
600 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
601 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
602 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
604 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
605 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
606 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
608 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
609 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
610 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
612 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
613 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
614 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
616 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
617 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
618 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
620 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
621 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
622 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
624 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
625 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
626 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
628 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
629 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
630 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
632 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
633 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
634 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
636 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
637 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
638 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
640 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
641 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
642 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
644 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
645 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
646 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
648 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
649 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
650 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
652 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
653 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
654 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
656 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
657 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
658 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
660 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
661 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
662 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
664 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
665 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
666 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
668 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
669 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
670 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
672 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
673 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
674 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
676 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
677 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
678 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
680 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
681 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
682 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
684 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
685 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
686 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
688 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
689 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
690 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
692 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
693 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
694 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
696 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
697 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
698 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
700 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
701 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
702 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
704 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
705 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
706 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
708 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
709 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
710 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
712 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
713 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
714 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
716 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
717 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
718 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
720 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
721 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
722 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
724 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
725 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
726 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
728 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
729 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
730 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
732 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
733 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
734 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
736 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
737 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
738 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
740 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
741 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
742 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
744 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
745 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
746 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
748 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
749 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
750 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
752 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
753 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
754 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
756 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
757 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
758 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
760 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
761 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
762 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
764 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
765 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
766 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
768 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
769 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
770 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
772 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
773 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
774 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
776 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
777 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
778 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
780 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
781 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
782 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
784 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
785 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
786 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
788 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
789 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
790 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
792 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
793 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
794 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
796 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
797 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
798 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
800 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
801 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
802 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
804 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
805 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
806 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
808 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
809 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
810 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
812 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
813 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
814 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
816 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
817 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
818 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
820 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
821 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
822 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
824 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
825 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
826 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
828 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
829 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
830 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
832 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
833 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
834 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
836 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
837 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
838 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
840 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
841 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
842 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
844 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
845 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
846 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
848 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
849 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
850 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
852 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
853 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
854 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
856 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
857 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
858 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
860 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
861 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
862 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
864 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
865 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
866 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
868 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
869 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
870 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
872 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
873 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
874 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
876 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
877 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
878 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
880 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
881 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
882 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
884 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
885 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
886 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
888 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
889 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
890 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
892 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
893 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
894 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
896 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
897 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
898 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
900 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
901 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
902 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
904 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
905 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
906 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
908 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
909 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
910 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
912 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
913 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
914 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
916 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
917 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
918 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
920 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
921 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
922 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
924 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
925 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
926 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
928 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
929 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
930 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
932 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
933 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
934 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
936 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
937 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
938 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
940 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
941 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
942 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
945 static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
947 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
948 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
949 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
950 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
952 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
953 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
954 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
955 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
957 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
958 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
959 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
960 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
962 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
963 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
964 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
965 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
967 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
968 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
969 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
970 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
972 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
973 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
974 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
975 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
977 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
978 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
979 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
980 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
982 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
983 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
984 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
985 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
987 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
988 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
989 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
990 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
992 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
993 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
994 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
995 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
997 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
998 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
999 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1000 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1002 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1003 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1004 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1005 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1007 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1008 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1009 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1010 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1012 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1013 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1014 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1015 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1017 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1018 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1019 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1020 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1022 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1023 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1024 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1025 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1027 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1028 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1029 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1030 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1032 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1033 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1034 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1035 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1037 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1038 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1039 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1040 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1042 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1043 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1044 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1045 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1047 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1048 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1049 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1050 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1052 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1053 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1054 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1055 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1057 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1058 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1059 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1060 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1062 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1063 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1064 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1065 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1067 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1068 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1069 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1070 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1072 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1073 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1074 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1075 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1077 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1078 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1079 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1080 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1082 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1083 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1084 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1085 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1087 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1088 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1089 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1090 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1092 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1093 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1094 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1095 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1097 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1098 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1099 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1100 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1102 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1103 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1104 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1105 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1107 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1108 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1109 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1110 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1112 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1113 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1114 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1115 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1117 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1118 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1119 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1120 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1122 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1123 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1124 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1125 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1127 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1128 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1129 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1130 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1132 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1133 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1134 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1135 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1137 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1138 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1139 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1140 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1142 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1143 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1144 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1145 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1147 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1148 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1149 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1150 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1152 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1153 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1154 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1155 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1157 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1158 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1159 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1160 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1162 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1163 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1164 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1165 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1167 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1168 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1169 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1170 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1172 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1173 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1174 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1175 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1177 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1178 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1179 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1180 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1182 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1183 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1184 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1185 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1187 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1188 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1189 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1190 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1192 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1193 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1194 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1195 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1197 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1198 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1199 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1200 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1202 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1203 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1204 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1205 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1207 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1208 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1209 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1210 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1212 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1213 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1214 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1215 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1217 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1218 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1219 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1220 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1222 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1223 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1224 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1225 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1227 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1228 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1229 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1230 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1232 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1233 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1234 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1235 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1237 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1238 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1239 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1240 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1242 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1243 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1244 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1245 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1247 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1248 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1249 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1250 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1252 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1253 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1254 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1255 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1257 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1258 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1259 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1260 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1262 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1263 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1264 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1265 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1267 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1268 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1269 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1270 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1272 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1273 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1274 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1275 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1277 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1278 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1279 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1280 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1282 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1283 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1284 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1285 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1287 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1288 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1289 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1290 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1292 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1293 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1294 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1295 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1297 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1298 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1299 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1300 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1302 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1303 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1304 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1305 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1307 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1308 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1309 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1310 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1312 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1313 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1314 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1315 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1317 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1318 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1319 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1320 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1322 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1323 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1324 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1325 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1327 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1328 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1329 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1330 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1332 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1333 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1334 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1335 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1337 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1338 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1339 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1340 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1342 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1343 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1344 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1345 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1347 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1348 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1349 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1350 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1352 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1353 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1354 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1355 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1357 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1358 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1359 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1360 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1362 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1363 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1364 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1365 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1367 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1368 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1369 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1370 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1372 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1373 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1374 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1375 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1377 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1378 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1379 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1380 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1382 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1383 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1384 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1385 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1387 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1388 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1389 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1390 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1392 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1393 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1394 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1395 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1397 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1398 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1399 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1400 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1402 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1403 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1404 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1405 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1407 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1408 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1409 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1410 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1412 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1413 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1414 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1415 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1417 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1418 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1419 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1420 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1422 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1423 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1424 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1425 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1427 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1428 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1429 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1430 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1432 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1433 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1434 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1435 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1437 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1438 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1439 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1440 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1442 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1443 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1444 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1445 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1447 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1448 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1449 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1450 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1452 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1453 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1454 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1455 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1457 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1458 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1459 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1460 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1462 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1463 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1464 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1465 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1467 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1468 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1469 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1470 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1472 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1473 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1474 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1475 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1477 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1478 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1479 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1480 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1482 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1483 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1484 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1485 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1487 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1488 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1489 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1490 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1492 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1493 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1494 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1495 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1497 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1498 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1499 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1500 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1502 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1503 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1504 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1505 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1507 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1508 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1509 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1510 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1512 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1513 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1514 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1515 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1517 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1518 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1519 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1520 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1522 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1523 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1524 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1525 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1527 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1528 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1529 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1530 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1532 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1533 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1534 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1535 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1537 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1538 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1539 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1540 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1542 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1543 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1544 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1545 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1547 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1548 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1549 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1550 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1552 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1553 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1554 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1555 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1557 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1558 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1559 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1560 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1562 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1563 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1564 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1565 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1568 static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1570 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1571 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1572 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1573 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1575 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1576 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1577 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1578 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1580 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1581 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1582 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1583 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1585 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1586 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1587 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1588 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1590 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1591 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1592 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1593 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1595 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1596 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1597 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1598 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1600 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1601 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1602 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1603 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1605 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1606 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1607 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1608 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1610 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1611 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1612 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1613 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1615 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1616 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1617 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1618 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1620 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1621 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1622 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1623 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1625 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1626 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1627 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1628 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1630 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1631 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1632 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1633 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1635 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1636 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1637 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1638 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1640 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1641 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1642 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1643 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1645 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1646 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1647 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1648 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1650 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1651 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1652 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1653 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1655 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1656 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1657 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1658 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1660 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1661 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1662 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1663 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1665 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1666 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1667 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1668 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1670 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1671 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1672 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1673 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1675 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1676 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1677 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1678 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1680 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1681 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1682 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1683 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1685 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1686 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1687 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1688 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1690 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1691 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1692 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1693 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1695 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1696 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1697 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1698 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1700 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1701 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1702 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1703 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1705 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1706 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1707 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1708 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1710 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1711 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1712 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1713 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1715 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1716 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1717 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1718 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1720 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1721 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1722 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1723 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1725 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1726 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1727 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1728 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1730 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1731 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1732 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1733 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1735 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1736 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1737 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1738 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1740 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1741 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1742 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1743 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1745 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1746 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1747 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1748 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1750 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1751 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1752 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1753 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1755 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1756 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1757 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1758 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1760 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1761 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1762 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1763 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1765 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1766 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1767 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1768 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1770 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1771 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1772 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1773 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1775 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1776 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1777 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1778 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1780 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1781 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1782 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1783 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1785 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1786 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1787 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1788 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1790 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1791 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1792 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1793 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1795 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1796 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1797 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1798 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1800 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1801 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1802 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1803 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1805 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1806 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1807 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1808 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1810 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1811 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1812 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1813 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1815 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1816 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1817 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1818 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1820 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1821 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1822 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1823 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1825 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1826 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1827 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1828 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1830 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1831 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1832 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1833 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1835 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1836 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1837 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1838 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1840 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1841 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1842 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1843 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1845 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1846 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1847 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1848 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1850 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1851 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1852 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1853 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1855 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1856 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1857 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1858 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1860 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1861 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1862 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1863 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1865 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1866 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1867 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1868 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1870 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1871 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1872 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1873 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1875 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1876 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1877 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1878 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1880 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1881 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1882 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1883 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1885 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1886 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1887 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1888 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1890 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1891 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1892 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1893 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1895 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1896 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1897 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1898 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1900 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1901 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1902 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1903 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1905 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1906 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1907 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1908 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1910 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1911 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1912 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1913 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1915 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1916 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1917 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1918 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1920 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1921 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1922 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1923 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1925 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1926 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1927 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1928 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1930 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1931 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1932 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1933 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1935 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1936 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1937 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1938 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1940 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1941 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1942 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1943 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1945 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1946 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1947 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1948 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1950 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1951 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1952 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1953 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1955 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1956 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1957 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1958 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1960 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1961 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1962 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1963 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1965 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1966 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1967 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1968 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1970 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1971 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1972 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1973 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1975 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1976 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1977 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1978 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1980 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1981 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1982 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1983 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1985 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1986 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1987 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1988 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1990 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1991 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1992 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1993 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1995 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1996 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1997 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1998 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2000 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2001 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2002 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2003 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2005 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2006 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2007 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2008 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2010 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2011 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2012 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2013 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2015 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2016 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2017 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2018 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2020 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2021 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2022 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2023 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2025 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2026 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2027 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2028 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2030 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2031 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2032 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2033 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2035 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2036 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2037 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2038 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2040 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2041 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2042 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2043 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2045 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2046 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2047 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2048 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2050 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2051 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2052 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2053 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2055 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2056 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2057 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2058 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2060 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2061 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2062 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2063 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2065 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2066 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2067 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2068 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2070 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2071 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2072 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2073 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2075 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2076 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2077 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2078 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2080 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2081 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2082 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2083 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2085 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2086 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2087 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2088 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2090 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2091 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2092 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2093 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2095 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2096 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2097 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2098 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2100 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2101 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2102 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2103 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2105 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2106 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2107 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2108 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2110 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2111 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2112 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2113 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2115 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2116 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2117 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2118 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2120 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2121 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2122 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2123 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2125 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2126 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2127 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2128 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2130 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2131 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2132 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2133 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2135 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2136 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2137 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2138 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2140 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2141 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2142 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2143 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2145 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2146 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2147 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2148 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2150 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2151 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2152 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2153 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2155 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2156 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2157 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2158 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2160 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2161 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2162 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2163 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2165 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2166 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2167 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2168 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2170 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2171 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2172 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2173 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2175 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2176 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2177 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2178 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2180 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2181 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2182 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2183 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2185 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2186 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2187 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2188 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2191 static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2193 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2194 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2195 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2196 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2198 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2199 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2200 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2201 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2203 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2204 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2205 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2206 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2208 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2209 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2210 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2211 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2213 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2214 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2215 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2216 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2218 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2219 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2220 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2221 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2223 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2224 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2225 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2226 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2228 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2229 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2230 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2231 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2233 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2234 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2235 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2236 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2238 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2239 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2240 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2241 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2243 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2244 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2245 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2246 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2248 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2249 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2250 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2251 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2253 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2254 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2255 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2256 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2258 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2259 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2260 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2261 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2263 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2264 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2265 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2266 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2268 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2269 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2270 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2271 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2273 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2274 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2275 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2276 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2278 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2279 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2280 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2281 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2283 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2284 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2285 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2286 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2288 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2289 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2290 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2291 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2293 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2294 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2295 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2296 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2298 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2299 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2300 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2301 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2303 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2304 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2305 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2306 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2308 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2309 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2310 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2311 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2313 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2314 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2315 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2316 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2318 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2319 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2320 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2321 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2323 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2324 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2325 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2326 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2328 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2329 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2330 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2331 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2333 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2334 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2335 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2336 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2338 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2339 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2340 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2341 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2343 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2344 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2345 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2346 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2348 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2349 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2350 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2351 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2353 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2354 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2355 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2356 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2358 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2359 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2360 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2361 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2363 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2364 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2365 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2366 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2368 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2369 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2370 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2371 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2373 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2374 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2375 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2376 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2378 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2379 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2380 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2381 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2383 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2384 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2385 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2386 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2388 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2389 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2390 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2391 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2393 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2394 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2395 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2396 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2398 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2399 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2400 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2401 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2403 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2404 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2405 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2406 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2408 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2409 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2410 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2411 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2413 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2414 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2415 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2416 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2418 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2419 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2420 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2421 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2423 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2424 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2425 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2426 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2428 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2429 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2430 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2431 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2433 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2434 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2435 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2436 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2438 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2439 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2440 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2441 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2443 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2444 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2445 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2446 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2448 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2449 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2450 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2451 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2453 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2454 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2455 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2456 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2458 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2459 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2460 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2461 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2463 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2464 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2465 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2466 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2468 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2469 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2470 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2471 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2473 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2474 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2475 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2476 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2478 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2479 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2480 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2481 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2483 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2484 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2485 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2486 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2488 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2489 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2490 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2491 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2493 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2494 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2495 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2496 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2498 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2499 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2500 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2501 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2503 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2504 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2505 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2506 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2508 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2509 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2510 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2511 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2513 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2514 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2515 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2516 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2518 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2519 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2520 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2521 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2523 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2524 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2525 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2526 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2528 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2529 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2530 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2531 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2533 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2534 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2535 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2536 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2538 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2539 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2540 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2541 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2543 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2544 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2545 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2546 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2548 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2549 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2550 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2551 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2553 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2554 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2555 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2556 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2558 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2559 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2560 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2561 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2563 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2564 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2565 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2566 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2568 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2569 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2570 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2571 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2573 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2574 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2575 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2576 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2578 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2579 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2580 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2581 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2583 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2584 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2585 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2586 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2588 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2589 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2590 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2591 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2593 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2594 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2595 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2596 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2598 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2599 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2600 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2601 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2603 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2604 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2605 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2606 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2608 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2609 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2610 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2611 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2613 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2614 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2615 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2616 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2618 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2619 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2620 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2621 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2623 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2624 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2625 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2626 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2628 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2629 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2630 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2631 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2633 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2634 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2635 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2636 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2638 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2639 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2640 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2641 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2643 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2644 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2645 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2646 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2648 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2649 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2650 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2651 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2653 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2654 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2655 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2656 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2658 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2659 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2660 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2661 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2663 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2664 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2665 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2666 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2668 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2669 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2670 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2671 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2673 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2674 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2675 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2676 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2678 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2679 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2680 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2681 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2683 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2684 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2685 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2686 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2688 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2689 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2690 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2691 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2693 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2694 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2695 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2696 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2698 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2699 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2700 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2701 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2703 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2704 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2705 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2706 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2708 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2709 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2710 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2711 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2713 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2714 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2715 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2716 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2718 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2719 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2720 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2721 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2723 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2724 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2725 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2726 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2728 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2729 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2730 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2731 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2733 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2734 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2735 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2736 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2738 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2739 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2740 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2741 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2743 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2744 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2745 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2746 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2748 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2749 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2750 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2751 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2753 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2754 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2755 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2756 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2758 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2759 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2760 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2761 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2763 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2764 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2765 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2766 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2768 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2769 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2770 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2771 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2773 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2774 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2775 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2776 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2778 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2779 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2780 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2781 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2783 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2784 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2785 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2786 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2788 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2789 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2790 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2791 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2793 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2794 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2795 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2796 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2798 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2799 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2800 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2801 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2803 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2804 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2805 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2806 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2808 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2809 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2810 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2811 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2814 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2816 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2817 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2818 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2819 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2821 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2822 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2823 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2824 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2826 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2827 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2828 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2829 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2831 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2832 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2833 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2834 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2836 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2837 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2838 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2839 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2841 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2842 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2843 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2844 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2846 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2847 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2848 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2849 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2851 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2852 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2853 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2854 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2856 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2857 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2858 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2859 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2861 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2862 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2863 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2864 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2866 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2867 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2868 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2869 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2871 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2872 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2873 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2874 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2876 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2877 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2878 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2879 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2881 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2882 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2883 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2884 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2886 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2887 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2888 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2889 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2891 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2892 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2893 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2894 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2896 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2897 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2898 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2899 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2901 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2902 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2903 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2904 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2906 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2907 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2908 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2909 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2911 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2912 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2913 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2914 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2916 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2917 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2918 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2919 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2921 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2922 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2923 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2924 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2926 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2927 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2928 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2929 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2931 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2932 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2933 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2934 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2936 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2937 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2938 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2939 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2941 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2942 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2943 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2944 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2946 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2947 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2948 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2949 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2951 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2952 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2953 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2954 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2956 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2957 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2958 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2959 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2961 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2962 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2963 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2964 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2966 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2967 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2968 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2969 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2971 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2972 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2973 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2974 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2976 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2977 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2978 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2979 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2981 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2982 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2983 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2984 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2986 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2987 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2988 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2989 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2991 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2992 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2993 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2994 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2996 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2997 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2998 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2999 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3001 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3002 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3003 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3004 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3006 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3007 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3008 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3009 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3011 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3012 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3013 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3014 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3016 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3017 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3018 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3019 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3021 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3022 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3023 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3024 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3026 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3027 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3028 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3029 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3031 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3032 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3033 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3034 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3036 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3037 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3038 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3039 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3041 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3042 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3043 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3044 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3046 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3047 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3048 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3049 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3051 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3052 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3053 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3054 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3056 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3057 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3058 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3059 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3061 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3062 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3063 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3064 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3066 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3067 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3068 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3069 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3071 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3072 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3073 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3074 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3076 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3077 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3078 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3079 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3081 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3082 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3083 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3084 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3086 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3087 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3088 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3089 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3091 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3092 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3093 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3094 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3096 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3097 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3098 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3099 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3101 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3102 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3103 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3104 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3106 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3107 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3108 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3109 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3111 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3112 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3113 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3114 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3116 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3117 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3118 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3119 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3121 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3122 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3123 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3124 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3126 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3127 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3128 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3129 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3131 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3132 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3133 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3134 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3136 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3137 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3138 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3139 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3141 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3142 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3143 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3144 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3146 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3147 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3148 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3149 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3151 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3152 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3153 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3154 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3156 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3157 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3158 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3159 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3161 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3162 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3163 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3164 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3166 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3167 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3168 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3169 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3171 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3172 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3173 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3174 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3176 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3177 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3178 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3179 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3181 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3182 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3183 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3184 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3186 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3187 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3188 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3189 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3191 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3192 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3193 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3194 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3196 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3197 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3198 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3199 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3201 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3202 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3203 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3204 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3206 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3207 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3208 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3209 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3211 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3212 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3213 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3214 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3216 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3217 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3218 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3219 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3221 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3222 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3223 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3224 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3226 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3227 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3228 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3229 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3231 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3232 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3233 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3234 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3236 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3237 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3238 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3239 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3241 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3242 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3243 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3244 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3246 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3247 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3248 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3249 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3251 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3252 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3253 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3254 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3256 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3257 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3258 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3259 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3261 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3262 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3263 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3264 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3266 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3267 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3268 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3269 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3271 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3272 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3273 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3274 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3276 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3277 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3278 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3279 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3281 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3282 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3283 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3284 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3286 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3287 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3288 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3289 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3291 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3292 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3293 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3294 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3296 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3297 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3298 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3299 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3301 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3302 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3303 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3304 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3306 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3307 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3308 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3309 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3311 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3312 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3313 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3314 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3316 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3317 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3318 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3319 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3321 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3322 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3323 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3324 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3326 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3327 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3328 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3329 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3331 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3332 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3333 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3334 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3336 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3337 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3338 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3339 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3341 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3342 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3343 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3344 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3346 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3347 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3348 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3349 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3351 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3352 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3353 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3354 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3356 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3357 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3358 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3359 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3361 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3362 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3363 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3364 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3366 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3367 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3368 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3369 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3371 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3372 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3373 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3374 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3376 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3377 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3378 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3379 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3381 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3382 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3383 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3384 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3386 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3387 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3388 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3389 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3391 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3392 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3393 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3394 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3396 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3397 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3398 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3399 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3401 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3402 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3403 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3404 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3406 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3407 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3408 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3409 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3411 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3412 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3413 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3414 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3416 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3417 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3418 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3419 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3421 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3422 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3423 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3424 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3426 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3427 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3428 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3429 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3431 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3432 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3433 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3434 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3437 static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3439 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3440 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3441 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3442 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3444 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3445 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3446 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3447 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3449 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3450 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3451 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3452 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3454 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3455 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3456 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3457 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3459 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3460 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3461 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3462 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3464 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3465 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3466 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3467 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3469 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3470 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3471 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3472 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3474 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3475 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3476 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3477 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3479 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3480 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3481 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3482 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3484 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3485 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3486 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3487 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3489 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3490 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3491 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3492 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3494 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3495 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3496 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3497 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3499 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3500 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3501 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3502 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3504 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3505 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3506 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3507 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3509 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3510 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3511 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3512 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3514 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3515 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3516 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3517 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3519 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3520 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3521 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3522 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3524 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3525 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3526 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3527 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3529 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3530 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3531 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3532 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3534 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3535 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3536 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3537 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3539 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3540 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3541 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3542 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3544 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3545 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3546 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3547 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3549 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3550 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3551 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3552 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3554 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3555 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3556 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3557 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3559 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3560 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3561 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3562 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3564 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3565 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3566 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3567 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3569 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3570 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3571 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3572 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3574 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3575 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3576 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3577 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3579 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3580 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3581 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3582 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3584 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3585 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3586 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3587 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3589 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3590 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3591 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3592 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3594 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3595 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3596 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3597 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3599 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3600 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3601 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3602 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3604 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3605 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3606 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3607 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3609 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3610 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3611 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3612 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3614 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3615 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3616 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3617 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3619 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3620 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3621 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3622 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3624 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3625 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3626 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3627 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3629 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3630 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3631 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3632 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3634 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3635 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3636 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3637 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3639 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3640 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3641 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3642 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3644 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3645 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3646 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3647 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3649 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3650 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3651 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3652 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3654 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3655 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3656 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3657 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3659 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3660 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3661 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3662 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3664 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3665 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3666 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3667 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3669 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3670 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3671 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3672 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3674 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3675 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3676 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3677 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3679 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3680 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3681 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3682 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3684 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3685 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3686 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3687 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3689 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3690 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3691 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3692 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3694 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3695 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3696 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3697 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3699 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3700 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3701 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3702 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3704 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3705 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3706 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3707 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3709 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3710 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3711 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3712 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3714 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3715 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3716 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3717 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3719 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3720 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3721 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3722 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3724 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3725 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3726 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3727 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3729 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3730 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3731 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3732 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3734 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3735 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3736 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3737 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3739 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3740 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3741 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3742 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3744 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3745 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3746 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3747 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3749 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3750 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3751 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3752 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3754 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3755 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3756 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3757 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3759 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3760 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3761 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3762 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3764 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3765 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3766 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3767 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3769 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3770 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3771 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3772 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3774 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3775 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3776 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3777 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3779 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3780 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3781 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3782 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3784 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3785 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3786 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3787 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3789 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3790 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3791 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3792 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3794 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3795 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3796 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3797 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3799 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3800 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3801 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3802 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3804 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3805 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3806 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3807 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3809 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3810 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3811 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3812 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3814 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3815 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3816 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3817 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3819 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3820 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3821 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3822 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3824 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3825 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3826 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3827 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3829 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3830 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3831 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3832 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3834 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3835 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3836 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3837 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3839 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3840 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3841 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3842 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3844 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3845 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3846 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3847 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3849 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3850 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3851 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3852 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3854 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3855 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3856 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3857 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3859 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3860 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3861 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3862 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3864 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3865 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3866 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3867 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3869 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3870 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3871 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3872 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3874 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3875 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3876 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3877 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3879 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3880 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3881 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3882 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3884 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3885 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3886 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3887 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3889 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3890 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3891 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3892 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3894 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3895 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3896 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3897 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3899 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3900 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3901 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3902 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3904 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3905 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3906 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3907 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3909 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3910 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3911 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3912 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3914 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3915 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3916 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3917 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3919 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3920 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3921 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3922 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3924 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3925 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3926 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3927 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3929 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3930 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3931 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3932 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3934 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3935 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3936 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3937 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3939 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3940 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3941 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3942 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3944 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3945 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3946 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3947 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3949 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3950 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3951 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3952 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3954 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3955 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3956 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3957 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3959 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3960 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3961 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3962 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3964 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3965 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3966 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3967 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3969 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3970 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3971 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3972 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3974 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3975 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3976 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3977 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3979 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3980 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3981 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3982 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3984 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3985 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3986 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3987 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3989 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3990 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3991 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3992 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3994 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3995 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3996 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3997 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3999 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4000 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
4001 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4002 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4004 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4005 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4006 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4007 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4009 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4010 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4011 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4012 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4014 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4015 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4016 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4017 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4019 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4020 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4021 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4022 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4024 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4025 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4026 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4027 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4029 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4030 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4031 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4032 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4034 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4035 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4036 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4037 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4039 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4040 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4041 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4042 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4044 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4045 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4046 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4047 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4049 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4050 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4051 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4052 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4054 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4055 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4056 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4057 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4060 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4062 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4063 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4064 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4065 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4067 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4068 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4069 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4070 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4072 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4073 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4074 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4075 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4077 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4078 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4079 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4080 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4082 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4083 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4084 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4085 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4087 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4088 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4089 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4090 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4092 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4093 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4094 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4095 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4097 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4098 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4099 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4100 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4102 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4103 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4104 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4105 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4107 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4108 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4109 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4110 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4112 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4113 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4114 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4115 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4117 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4118 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4119 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4120 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4122 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4123 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4124 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4125 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4127 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4128 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4129 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4130 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4132 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4133 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4134 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4135 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4137 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4138 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4139 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4140 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4142 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4143 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4144 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4145 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4147 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4148 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4149 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4150 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4152 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4153 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4154 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4155 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4157 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4158 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4159 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4160 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4162 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4163 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4164 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4165 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4167 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4168 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4169 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4170 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4172 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4173 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4174 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4175 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4177 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4178 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4179 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4180 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4182 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4183 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4184 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4185 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4187 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4188 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4189 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4190 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4192 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4193 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4194 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4195 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4197 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4198 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4199 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4200 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4202 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4203 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4204 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4205 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4207 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4208 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4209 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4210 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4212 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4213 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4214 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4215 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4217 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4218 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4219 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4220 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4222 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4223 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4224 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4225 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4227 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4228 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4229 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4230 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4232 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4233 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4234 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4235 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4237 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4238 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4239 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4240 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4242 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4243 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4244 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4245 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4247 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4248 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4249 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4250 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4252 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4253 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4254 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4255 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4257 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4258 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4259 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4260 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4262 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4263 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4264 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4265 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4267 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4268 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4269 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4270 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4272 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4273 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4274 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4275 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4277 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4278 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4279 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4280 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4282 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4283 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4284 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4285 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4287 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4288 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4289 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4290 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4292 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4293 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4294 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4295 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4297 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4298 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4299 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4300 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4302 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4303 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4304 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4305 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4307 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4308 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4309 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4310 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4312 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4313 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4314 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4315 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4317 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4318 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4319 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4320 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4322 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4323 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4324 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4325 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4327 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4328 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4329 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4330 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4332 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4333 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4334 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4335 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4337 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4338 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4339 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4340 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4342 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4343 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4344 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4345 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4347 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4348 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4349 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4350 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4352 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4353 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4354 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4355 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4357 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4358 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4359 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4360 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4362 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4363 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4364 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4365 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4367 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4368 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4369 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4370 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4372 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4373 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4374 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4375 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4377 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4378 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4379 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4380 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4382 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4383 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4384 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4385 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4387 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4388 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4389 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4390 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4392 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4393 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4394 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4395 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4397 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4398 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4399 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4400 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4402 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4403 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4404 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4405 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4407 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4408 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4409 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4410 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4412 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4413 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4414 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4415 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4417 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4418 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4419 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4420 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4422 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4423 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4424 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4425 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4427 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4428 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4429 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4430 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4432 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4433 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4434 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4435 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4437 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4438 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4439 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4440 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4442 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4443 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4444 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4445 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4447 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4448 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4449 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4450 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4452 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4453 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4454 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4455 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4457 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4458 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4459 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4460 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4462 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4463 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4464 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4465 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4467 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4468 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4469 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4470 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4472 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4473 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4474 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4475 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4477 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4478 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4479 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4480 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4482 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4483 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4484 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4485 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4487 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4488 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4489 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4490 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4492 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4493 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4494 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4495 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4497 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4498 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4499 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4500 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4502 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4503 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4504 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4505 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4507 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4508 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4509 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4510 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4512 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4513 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4514 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4515 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4517 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4518 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4519 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4520 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4522 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4523 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4524 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4525 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4527 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4528 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4529 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4530 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4532 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4533 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4534 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4535 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4537 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4538 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4539 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4540 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4542 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4543 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4544 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4545 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4547 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4548 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4549 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4550 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4552 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4553 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4554 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4555 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4557 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4558 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4559 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4560 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4562 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4563 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4564 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4565 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4567 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4568 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4569 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4570 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4572 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4573 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4574 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4575 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4577 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4578 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4579 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4580 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4582 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4583 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4584 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4585 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4587 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4588 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4589 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4590 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4592 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4593 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4594 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4595 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4597 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4598 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4599 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4600 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4602 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4603 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4604 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4605 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4607 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4608 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4609 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4610 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4612 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4613 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4614 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4615 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4617 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4618 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4619 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4620 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4622 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4623 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4624 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4625 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4627 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4628 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4629 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4630 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4632 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4633 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4634 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4635 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4637 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4638 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4639 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4640 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4642 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4643 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4644 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4645 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4647 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4648 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4649 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4650 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4652 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4653 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4654 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4655 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4657 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4658 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4659 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4660 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4662 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4663 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4664 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4665 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4667 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4668 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4669 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4670 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4672 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4673 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4674 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4675 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4677 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4678 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4679 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4680 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4683 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4685 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4686 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4687 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4688 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4690 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4691 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4692 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4693 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4695 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4696 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4697 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4698 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4700 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4701 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4702 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4703 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4705 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4706 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4707 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4708 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4710 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4711 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4712 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4713 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4715 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4716 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4717 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4718 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4720 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4721 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4722 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4723 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4725 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4726 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4727 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4728 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4730 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4731 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4732 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4733 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4735 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4736 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4737 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4738 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4740 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4741 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4742 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4743 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4745 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4746 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4747 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4748 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4750 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4751 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4752 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4753 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4755 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4756 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4757 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4758 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4760 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4761 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4762 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4763 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4765 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4766 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4767 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4768 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4770 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4771 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4772 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4773 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4775 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4776 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4777 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4778 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4780 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4781 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4782 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4783 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4785 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4786 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4787 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4788 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4790 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4791 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4792 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4793 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4795 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4796 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4797 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4798 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4800 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4801 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4802 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4803 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4805 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4806 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4807 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4808 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4810 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4811 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4812 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4813 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4815 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4816 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4817 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4818 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4820 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4821 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4822 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4823 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4825 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4826 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4827 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4828 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4830 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4831 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4832 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4833 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4835 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4836 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4837 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4838 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4840 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4841 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4842 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4843 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4845 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4846 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4847 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4848 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4850 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4851 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4852 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4853 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4855 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4856 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4857 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4858 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4860 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4861 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4862 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4863 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4865 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4866 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4867 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4868 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4870 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4871 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4872 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4873 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4875 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4876 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4877 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4878 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4880 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4881 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4882 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4883 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4885 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4886 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4887 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4888 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4890 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4891 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4892 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4893 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4895 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4896 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4897 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4898 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4900 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4901 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4902 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4903 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4905 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4906 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4907 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4908 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4910 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4911 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4912 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4913 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4915 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4916 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4917 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4918 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4920 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4921 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4922 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4923 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4925 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4926 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4927 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4928 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4930 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4931 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4932 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4933 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4935 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4936 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4937 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4938 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4940 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4941 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4942 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4943 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4945 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4946 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4947 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4948 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4950 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4951 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4952 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4953 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4955 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4956 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4957 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4958 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4960 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4961 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4962 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4963 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4965 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4966 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4967 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4968 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4970 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4971 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4972 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4973 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4975 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4976 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4977 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4978 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4980 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4981 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4982 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4983 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4985 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4986 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4987 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4988 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4990 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4991 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4992 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4993 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4995 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4996 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4997 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4998 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
5000 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5001 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5002 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5003 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
5005 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5006 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5007 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5008 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5010 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5011 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5012 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5013 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5015 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5016 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5017 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5018 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5020 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5021 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5022 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5023 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5025 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5026 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5027 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5028 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5030 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5031 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5032 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5033 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5035 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5036 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5037 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5038 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5040 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5041 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5042 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5043 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5045 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5046 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5047 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5048 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5050 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5051 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5052 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5053 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5055 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5056 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5057 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5058 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5060 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5061 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5062 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5063 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5065 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5066 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5067 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5068 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5070 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5071 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5072 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5073 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5075 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5076 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5077 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5078 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5080 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5081 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5082 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5083 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5085 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5086 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5087 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5088 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5090 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5091 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5092 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5093 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5095 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5096 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5097 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5098 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5100 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5101 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5102 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5103 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5105 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5106 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5107 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5108 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5110 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5111 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5112 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5113 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5115 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5116 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5117 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5118 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5120 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5121 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5122 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5123 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5125 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5126 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5127 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5128 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5130 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5131 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5132 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5133 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5135 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5136 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5137 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5138 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5140 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5141 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5142 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5143 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5145 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5146 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5147 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5148 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5150 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5151 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5152 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5153 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5155 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5156 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5157 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5158 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5160 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5161 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5162 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5163 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5165 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5166 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5167 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5168 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5170 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5171 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5172 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5173 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5175 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5176 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5177 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5178 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5180 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5181 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5182 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5183 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5185 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5186 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5187 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5188 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5190 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5191 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5192 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5193 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5195 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5196 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5197 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5198 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5200 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5201 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5202 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5203 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5205 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5206 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5207 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5208 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5210 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5211 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5212 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5213 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5215 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5216 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5217 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5218 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5220 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5221 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5222 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5223 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5225 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5226 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5227 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5228 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5230 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5231 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5232 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5233 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5235 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5236 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5237 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5238 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5240 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5241 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5242 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5243 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5245 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5246 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5247 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5248 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5250 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5251 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5252 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5253 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5255 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5256 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5257 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5258 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5260 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5261 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5262 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5263 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5265 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5266 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5267 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5268 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5270 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5271 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5272 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5273 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5275 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5276 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5277 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5278 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5280 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5281 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5282 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5283 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5285 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5286 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5287 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5288 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5290 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5291 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5292 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5293 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5295 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5296 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5297 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5298 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5300 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5301 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5302 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5303 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5306 static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5308 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5309 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5310 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5315 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5316 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5317 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5322 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5323 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5324 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5329 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5330 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5331 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5336 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5337 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5338 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5343 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5344 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5345 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5350 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5351 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5352 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5357 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5358 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5359 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5364 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5365 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5366 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5371 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5372 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5373 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5378 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5379 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5380 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5385 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5386 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5387 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5392 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5393 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5394 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5399 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5400 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5401 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5406 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5407 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5408 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5413 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5414 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5415 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5420 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5421 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5422 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5427 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5428 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5429 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5434 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5435 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5436 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5441 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5442 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5443 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5448 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5449 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5450 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5455 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5456 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5457 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5462 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5463 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5464 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5469 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5470 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5471 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5476 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5477 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5478 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5483 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5484 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5485 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5490 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5491 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5492 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5497 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5498 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5499 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5504 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5505 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5506 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5511 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5512 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5513 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5518 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5519 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5520 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5525 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5526 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5527 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5532 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5533 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5534 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5539 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5540 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5541 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5546 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5547 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5548 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5553 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5554 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5555 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5560 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5561 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5562 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5567 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5568 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5569 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5574 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5575 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5576 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5581 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5582 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5583 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5588 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5589 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5590 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5595 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5596 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5597 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5602 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5603 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5604 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5609 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5610 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5611 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5616 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5617 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5618 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5623 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5624 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5625 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5630 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5631 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5632 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5637 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5638 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5639 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5644 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5645 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5646 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5651 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5652 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5653 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5658 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5659 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5660 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5665 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5666 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5667 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5672 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5673 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5674 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5679 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5680 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5681 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5686 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5687 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5688 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5693 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5694 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5695 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5700 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5701 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5702 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5707 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5708 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5709 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5714 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5715 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5716 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5721 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5722 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5723 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5728 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5729 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5730 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5735 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5736 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5737 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5742 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5743 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5744 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5749 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5750 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5751 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5756 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5757 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5758 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5763 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5764 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5765 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5770 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5771 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5772 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5777 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5778 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5779 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5784 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5785 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5786 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5791 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5792 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5793 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5798 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5799 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5800 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5805 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5806 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5807 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5812 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5813 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5814 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5819 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5820 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5821 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5826 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5827 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5828 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5833 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5834 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5835 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5840 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5841 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5842 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5847 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5848 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5849 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5854 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5855 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5856 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5861 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5862 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5863 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5868 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5869 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5870 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5875 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5876 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5877 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5882 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5883 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5884 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5889 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5890 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5891 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5896 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5897 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5898 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5903 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5904 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5905 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5910 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5911 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5912 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5917 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5918 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5919 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5924 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5925 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5926 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5931 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5932 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5933 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5938 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5939 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5940 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5945 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5946 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5947 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5952 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5953 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5954 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5959 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5960 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5961 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5966 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5967 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5968 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5973 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5974 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5975 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5980 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5981 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5982 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5987 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5988 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5989 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5994 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5995 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5996 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6001 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6002 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6003 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6008 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6009 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6010 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6015 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6016 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6017 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6022 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6023 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6024 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6029 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6030 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6031 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6036 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6037 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6038 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6043 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6044 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6045 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6050 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6051 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6052 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6057 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6058 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6059 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6064 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6065 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6066 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6071 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6072 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6073 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6078 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6079 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6080 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6085 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6086 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6087 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6092 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6093 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6094 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6099 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6100 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6101 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6106 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6107 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6108 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6113 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6114 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6115 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6120 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6121 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6122 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6127 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6128 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6129 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6134 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6135 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6136 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6141 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6142 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6143 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6148 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6149 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6150 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6155 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6156 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6157 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6162 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6163 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6164 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6169 static const struct chan_info_nphy_radio2057_rev5
6170 chan_info_nphyrev8_2057_rev5[] = {
6172 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6173 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6174 0x043a, 0x043f, 0x0443},
6176 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6177 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6178 0x0438, 0x043d, 0x0441},
6180 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6181 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6182 0x0436, 0x043a, 0x043f},
6184 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6185 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6186 0x0434, 0x0438, 0x043d},
6188 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6189 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6190 0x0431, 0x0436, 0x043a},
6192 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6193 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6194 0x042f, 0x0434, 0x0438},
6196 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6197 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6198 0x042d, 0x0431, 0x0436},
6200 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6201 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6202 0x042b, 0x042f, 0x0434},
6204 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6205 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6206 0x0429, 0x042d, 0x0431},
6208 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6209 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6210 0x0427, 0x042b, 0x042f},
6212 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6213 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6214 0x0424, 0x0429, 0x042d},
6216 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6217 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6218 0x0422, 0x0427, 0x042b},
6220 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6221 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6222 0x0420, 0x0424, 0x0429},
6224 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6225 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6226 0x041b, 0x041f, 0x0424}
6229 static const struct chan_info_nphy_radio2057_rev5
6230 chan_info_nphyrev9_2057_rev5v1[] = {
6232 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6233 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6234 0x043a, 0x043f, 0x0443},
6236 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6237 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6238 0x0438, 0x043d, 0x0441},
6240 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6241 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6242 0x0436, 0x043a, 0x043f},
6244 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6245 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6246 0x0434, 0x0438, 0x043d},
6248 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6249 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6250 0x0431, 0x0436, 0x043a},
6252 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6253 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6254 0x042f, 0x0434, 0x0438},
6256 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6257 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6258 0x042d, 0x0431, 0x0436},
6260 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6261 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6262 0x042b, 0x042f, 0x0434},
6264 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6265 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6266 0x0429, 0x042d, 0x0431},
6268 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6269 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6270 0x0427, 0x042b, 0x042f},
6272 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6273 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6274 0x0424, 0x0429, 0x042d},
6276 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6277 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6278 0x0422, 0x0427, 0x042b},
6280 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6281 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6282 0x0420, 0x0424, 0x0429},
6284 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6285 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6286 0x041b, 0x041f, 0x0424}
6289 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6291 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6292 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6293 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6297 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6298 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6299 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6303 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6304 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6305 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6309 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6311 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6315 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6316 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6317 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6321 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6322 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6323 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6327 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6328 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6329 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6333 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6334 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6335 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6339 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6340 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6341 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6345 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6346 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6347 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6351 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6352 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6353 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6357 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6358 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6359 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6363 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6364 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6365 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6369 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6370 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6371 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6375 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6376 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6377 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6381 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6382 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6383 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6387 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6388 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6389 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6393 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6394 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6395 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6399 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6400 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6401 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6405 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6406 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6407 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6411 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6412 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6413 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6417 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6418 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6419 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6423 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6424 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6425 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6429 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6430 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6431 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6435 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6436 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6437 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6441 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6442 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6443 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6447 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6448 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6449 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6453 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6454 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6455 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6459 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6460 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6461 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6465 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6466 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6467 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6471 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6472 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6473 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6477 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6478 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6479 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6483 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6484 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6485 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6489 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6490 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6491 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6495 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6496 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6497 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6501 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6502 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6503 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6507 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6508 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6509 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6513 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6514 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6515 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6519 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6520 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6521 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6525 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6526 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6527 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6531 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6532 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6533 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6537 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6538 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6539 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6543 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6544 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6545 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6549 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6550 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6551 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6555 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6556 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6557 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6561 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6562 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6563 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6567 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6568 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6569 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6573 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6574 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6575 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6579 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6580 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6581 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6585 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6586 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6587 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6591 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6592 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6593 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6597 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6598 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6599 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6603 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6604 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6605 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6609 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6610 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6611 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6615 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6616 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6617 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6621 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6622 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6623 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6627 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6628 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6629 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6633 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6634 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6635 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6639 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6640 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6641 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6645 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6646 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6647 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6651 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6652 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6653 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6657 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6658 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6659 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6663 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6664 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6665 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6669 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6670 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6671 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6675 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6676 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6677 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6681 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6682 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6683 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6687 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6688 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6689 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6693 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6694 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6695 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6699 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6700 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6701 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6705 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6706 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6707 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6711 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6712 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6713 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6717 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6718 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6719 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6723 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6724 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6725 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6729 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6730 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6731 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6735 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6736 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6737 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6741 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6742 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6743 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6747 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6748 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6749 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6753 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6754 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6755 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6759 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6760 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6761 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6765 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6766 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6767 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6771 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6772 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6773 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6777 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6778 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6779 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6783 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6784 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6785 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6789 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6790 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6791 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6795 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6796 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6797 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6801 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6802 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6803 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6807 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6808 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6809 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6813 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6814 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6815 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6819 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6820 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6821 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6825 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6826 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6827 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6831 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6832 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6833 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6837 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6838 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6839 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6843 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6844 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6845 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6849 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6850 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6851 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6855 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6856 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6857 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6861 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6862 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6863 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6867 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6868 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6869 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6873 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6874 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6875 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6879 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6880 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6881 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6885 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6886 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6887 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6891 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6892 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6893 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6897 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6898 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6899 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6903 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6904 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6905 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6909 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6910 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6911 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6915 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6916 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6917 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6921 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6922 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6923 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6927 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6928 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6929 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6933 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6934 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6935 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6939 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6940 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6941 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6945 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6946 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6947 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6951 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6952 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6953 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6957 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6958 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6959 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6963 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6964 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6965 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6969 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6970 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6971 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6975 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6976 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6977 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6981 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6982 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6983 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6987 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6988 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6989 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6993 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6994 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6995 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6999 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7000 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7001 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7005 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7006 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7007 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7011 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7012 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7013 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7017 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7018 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7019 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7023 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7024 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7025 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7030 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7032 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7033 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7034 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7038 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7039 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7040 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7044 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7045 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7046 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7050 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7051 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7052 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7056 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7057 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7058 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7062 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7063 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7064 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7068 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7069 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7070 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7074 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7075 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7076 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7080 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7081 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7082 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7086 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7087 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7088 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7092 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7093 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7094 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7098 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7099 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7100 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7104 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7105 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7106 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7110 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7111 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7112 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7116 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7117 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7118 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7122 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7123 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7124 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7128 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7129 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7130 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7134 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7135 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7136 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7140 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7141 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7142 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7146 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7147 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7148 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7152 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7153 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7154 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7158 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7159 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7160 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7164 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7165 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7166 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7170 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7171 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7172 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7176 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7177 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7178 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7182 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7183 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7184 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7188 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7189 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7190 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7194 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7195 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7196 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7200 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7201 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7202 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7206 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7207 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7208 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7212 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7213 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7214 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7218 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7219 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7220 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7224 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7225 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7226 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7230 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7231 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7232 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7236 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7237 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7238 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7242 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7243 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7244 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7248 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7249 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7250 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7254 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7255 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7256 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7260 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7261 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7262 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7266 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7267 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7268 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7272 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7273 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7274 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7278 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7279 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7280 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7284 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7285 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7286 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7290 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7291 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7292 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7296 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7297 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7298 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7302 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7303 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7304 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7308 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7309 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7310 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7314 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7315 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7316 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7320 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7321 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7322 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7326 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7327 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7328 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7332 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7333 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7334 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7338 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7339 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7340 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7344 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7345 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7346 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7350 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7351 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7352 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7356 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7357 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7358 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7362 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7363 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7364 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7368 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7369 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7370 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7374 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7375 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7376 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7380 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7381 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7382 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7386 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7387 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7388 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7392 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7393 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7394 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7398 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7399 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7400 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7404 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7405 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7406 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7410 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7411 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7412 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7416 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7417 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7418 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7422 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7423 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7424 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7428 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7429 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7430 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7434 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7435 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7436 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7440 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7441 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7442 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7446 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7447 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7448 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7452 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7453 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7454 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7458 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7459 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7460 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7464 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7465 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7466 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7470 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7471 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7472 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7476 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7477 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7478 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7482 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7483 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7484 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7488 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7489 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7490 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7494 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7495 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7496 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7500 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7501 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7502 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7506 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7507 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7508 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7512 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7513 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7514 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7518 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7519 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7520 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7524 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7525 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7526 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7530 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7531 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7532 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7536 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7537 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7538 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7542 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7543 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7544 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7548 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7549 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7550 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7554 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7555 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7556 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7560 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7561 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7562 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7566 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7567 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7568 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7572 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7573 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7574 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7578 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7579 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7580 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7584 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7585 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7586 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7590 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7591 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7592 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7596 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7597 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7598 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7602 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7603 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7604 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7608 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7609 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7610 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7614 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7615 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7616 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7620 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7621 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7622 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7626 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7627 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7628 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7632 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7633 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7634 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7638 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7639 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7640 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7644 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7645 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7646 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7650 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7651 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7652 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7656 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7657 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7658 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7662 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7663 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7664 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7668 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7669 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7670 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7674 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7675 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7676 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7680 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7681 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7682 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7686 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7687 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7688 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7692 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7693 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7694 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7698 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7699 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7700 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7704 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7705 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7706 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7710 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7711 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7712 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7716 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7717 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7718 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7722 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7723 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7724 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7728 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7729 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7730 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7734 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7735 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7736 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7740 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7741 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7742 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7746 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7747 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7748 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7752 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7753 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7754 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7758 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7759 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7760 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7765 static struct radio_regs regs_2055[] = {
7766 {0x02, 0x80, 0x80, 0, 0},
7768 {0x04, 0x27, 0x27, 0, 0},
7770 {0x06, 0x27, 0x27, 0, 0},
7771 {0x07, 0x7f, 0x7f, 1, 1},
7772 {0x08, 0x7, 0x7, 1, 1},
7773 {0x09, 0x7f, 0x7f, 1, 1},
7774 {0x0A, 0x7, 0x7, 1, 1},
7775 {0x0B, 0x15, 0x15, 0, 0},
7776 {0x0C, 0x15, 0x15, 0, 0},
7777 {0x0D, 0x4f, 0x4f, 1, 1},
7778 {0x0E, 0x5, 0x5, 1, 1},
7779 {0x0F, 0x4f, 0x4f, 1, 1},
7780 {0x10, 0x5, 0x5, 1, 1},
7781 {0x11, 0xd0, 0xd0, 0, 0},
7782 {0x12, 0x2, 0x2, 0, 0},
7784 {0x14, 0x40, 0x40, 0, 0},
7793 {0x1D, 0xc0, 0xc0, 0, 0},
7794 {0x1E, 0xff, 0xff, 0, 0},
7795 {0x1F, 0xc0, 0xc0, 0, 0},
7796 {0x20, 0xff, 0xff, 0, 0},
7797 {0x21, 0xc0, 0xc0, 0, 0},
7799 {0x23, 0x2c, 0x2c, 0, 0},
7809 {0x2D, 0xa4, 0xa4, 0, 0},
7810 {0x2E, 0x38, 0x38, 0, 0},
7812 {0x30, 0x4, 0x4, 1, 1},
7814 {0x32, 0xa, 0xa, 0, 0},
7815 {0x33, 0x87, 0x87, 0, 0},
7816 {0x34, 0x9, 0x9, 0, 0},
7817 {0x35, 0x70, 0x70, 0, 0},
7818 {0x36, 0x11, 0x11, 0, 0},
7819 {0x37, 0x18, 0x18, 1, 1},
7820 {0x38, 0x6, 0x6, 0, 0},
7821 {0x39, 0x4, 0x4, 1, 1},
7822 {0x3A, 0x6, 0x6, 0, 0},
7823 {0x3B, 0x9e, 0x9e, 0, 0},
7824 {0x3C, 0x9, 0x9, 0, 0},
7825 {0x3D, 0xc8, 0xc8, 1, 1},
7826 {0x3E, 0x88, 0x88, 0, 0},
7830 {0x42, 0x1, 0x1, 0, 0},
7831 {0x43, 0x2, 0x2, 0, 0},
7832 {0x44, 0x96, 0x96, 0, 0},
7833 {0x45, 0x3e, 0x3e, 0, 0},
7834 {0x46, 0x3e, 0x3e, 0, 0},
7835 {0x47, 0x13, 0x13, 0, 0},
7836 {0x48, 0x2, 0x2, 0, 0},
7837 {0x49, 0x15, 0x15, 0, 0},
7838 {0x4A, 0x7, 0x7, 0, 0},
7844 {0x50, 0x8, 0x8, 0, 0},
7845 {0x51, 0x8, 0x8, 0, 0},
7846 {0x52, 0x6, 0x6, 0, 0},
7847 {0x53, 0x84, 0x84, 1, 1},
7848 {0x54, 0xc3, 0xc3, 0, 0},
7849 {0x55, 0x8f, 0x8f, 0, 0},
7850 {0x56, 0xff, 0xff, 0, 0},
7851 {0x57, 0xff, 0xff, 0, 0},
7852 {0x58, 0x88, 0x88, 0, 0},
7853 {0x59, 0x88, 0x88, 0, 0},
7855 {0x5B, 0xcc, 0xcc, 0, 0},
7856 {0x5C, 0x6, 0x6, 0, 0},
7857 {0x5D, 0x80, 0x80, 0, 0},
7858 {0x5E, 0x80, 0x80, 0, 0},
7859 {0x5F, 0xf8, 0xf8, 0, 0},
7860 {0x60, 0x88, 0x88, 0, 0},
7861 {0x61, 0x88, 0x88, 0, 0},
7862 {0x62, 0x88, 0x8, 1, 1},
7863 {0x63, 0x88, 0x88, 0, 0},
7865 {0x65, 0x1, 0x1, 1, 1},
7866 {0x66, 0x8a, 0x8a, 0, 0},
7867 {0x67, 0x8, 0x8, 0, 0},
7868 {0x68, 0x83, 0x83, 0, 0},
7869 {0x69, 0x6, 0x6, 0, 0},
7870 {0x6A, 0xa0, 0xa0, 0, 0},
7871 {0x6B, 0xa, 0xa, 0, 0},
7872 {0x6C, 0x87, 0x87, 1, 1},
7873 {0x6D, 0x2a, 0x2a, 0, 0},
7874 {0x6E, 0x2a, 0x2a, 0, 0},
7875 {0x6F, 0x2a, 0x2a, 0, 0},
7876 {0x70, 0x2a, 0x2a, 0, 0},
7877 {0x71, 0x18, 0x18, 0, 0},
7878 {0x72, 0x6a, 0x6a, 1, 1},
7879 {0x73, 0xab, 0xab, 1, 1},
7880 {0x74, 0x13, 0x13, 1, 1},
7881 {0x75, 0xc1, 0xc1, 1, 1},
7882 {0x76, 0xaa, 0xaa, 1, 1},
7883 {0x77, 0x87, 0x87, 1, 1},
7885 {0x79, 0x6, 0x6, 0, 0},
7886 {0x7A, 0x7, 0x7, 0, 0},
7887 {0x7B, 0x7, 0x7, 0, 0},
7888 {0x7C, 0x15, 0x15, 0, 0},
7889 {0x7D, 0x55, 0x55, 0, 0},
7890 {0x7E, 0x97, 0x97, 1, 1},
7891 {0x7F, 0x8, 0x8, 0, 0},
7892 {0x80, 0x14, 0x14, 1, 1},
7893 {0x81, 0x33, 0x33, 0, 0},
7894 {0x82, 0x88, 0x88, 0, 0},
7895 {0x83, 0x6, 0x6, 0, 0},
7896 {0x84, 0x3, 0x3, 1, 1},
7897 {0x85, 0xa, 0xa, 0, 0},
7898 {0x86, 0x3, 0x3, 1, 1},
7899 {0x87, 0x2a, 0x2a, 0, 0},
7900 {0x88, 0xa4, 0xa4, 0, 0},
7901 {0x89, 0x18, 0x18, 0, 0},
7902 {0x8A, 0x28, 0x28, 0, 0},
7904 {0x8C, 0x4a, 0x4a, 0, 0},
7906 {0x8E, 0xf8, 0xf8, 0, 0},
7907 {0x8F, 0x88, 0x88, 0, 0},
7908 {0x90, 0x88, 0x88, 0, 0},
7909 {0x91, 0x88, 0x8, 1, 1},
7910 {0x92, 0x88, 0x88, 0, 0},
7912 {0x94, 0x1, 0x1, 1, 1},
7913 {0x95, 0x8a, 0x8a, 0, 0},
7914 {0x96, 0x8, 0x8, 0, 0},
7915 {0x97, 0x83, 0x83, 0, 0},
7916 {0x98, 0x6, 0x6, 0, 0},
7917 {0x99, 0xa0, 0xa0, 0, 0},
7918 {0x9A, 0xa, 0xa, 0, 0},
7919 {0x9B, 0x87, 0x87, 1, 1},
7920 {0x9C, 0x2a, 0x2a, 0, 0},
7921 {0x9D, 0x2a, 0x2a, 0, 0},
7922 {0x9E, 0x2a, 0x2a, 0, 0},
7923 {0x9F, 0x2a, 0x2a, 0, 0},
7924 {0xA0, 0x18, 0x18, 0, 0},
7925 {0xA1, 0x6a, 0x6a, 1, 1},
7926 {0xA2, 0xab, 0xab, 1, 1},
7927 {0xA3, 0x13, 0x13, 1, 1},
7928 {0xA4, 0xc1, 0xc1, 1, 1},
7929 {0xA5, 0xaa, 0xaa, 1, 1},
7930 {0xA6, 0x87, 0x87, 1, 1},
7932 {0xA8, 0x6, 0x6, 0, 0},
7933 {0xA9, 0x7, 0x7, 0, 0},
7934 {0xAA, 0x7, 0x7, 0, 0},
7935 {0xAB, 0x15, 0x15, 0, 0},
7936 {0xAC, 0x55, 0x55, 0, 0},
7937 {0xAD, 0x97, 0x97, 1, 1},
7938 {0xAE, 0x8, 0x8, 0, 0},
7939 {0xAF, 0x14, 0x14, 1, 1},
7940 {0xB0, 0x33, 0x33, 0, 0},
7941 {0xB1, 0x88, 0x88, 0, 0},
7942 {0xB2, 0x6, 0x6, 0, 0},
7943 {0xB3, 0x3, 0x3, 1, 1},
7944 {0xB4, 0xa, 0xa, 0, 0},
7945 {0xB5, 0x3, 0x3, 1, 1},
7946 {0xB6, 0x2a, 0x2a, 0, 0},
7947 {0xB7, 0xa4, 0xa4, 0, 0},
7948 {0xB8, 0x18, 0x18, 0, 0},
7949 {0xB9, 0x28, 0x28, 0, 0},
7951 {0xBB, 0x4a, 0x4a, 0, 0},
7953 {0xBD, 0x71, 0x71, 0, 0},
7954 {0xBE, 0x72, 0x72, 0, 0},
7955 {0xBF, 0x73, 0x73, 0, 0},
7956 {0xC0, 0x74, 0x74, 0, 0},
7957 {0xC1, 0x75, 0x75, 0, 0},
7958 {0xC2, 0x76, 0x76, 0, 0},
7959 {0xC3, 0x77, 0x77, 0, 0},
7960 {0xC4, 0x78, 0x78, 0, 0},
7961 {0xC5, 0x79, 0x79, 0, 0},
7962 {0xC6, 0x7a, 0x7a, 0, 0},
7970 {0xCE, 0x6, 0x6, 0, 0},
7973 {0xD1, 0x18, 0x18, 0, 0},
7974 {0xD2, 0x88, 0x88, 0, 0},
7982 {0xDA, 0x6, 0x6, 0, 0},
7985 {0xDD, 0x18, 0x18, 0, 0},
7986 {0xDE, 0x88, 0x88, 0, 0},
7991 {0xFFFF, 0, 0, 0, 0},
7994 static struct radio_regs regs_SYN_2056[] = {
8002 {0x09, 0x1, 0x1, 0, 0},
8027 {0x22, 0x60, 0x60, 0, 0},
8028 {0x23, 0x6, 0x6, 0, 0},
8029 {0x24, 0xc, 0xc, 0, 0},
8033 {0x28, 0x1, 0x1, 0, 0},
8039 {0x2E, 0xd, 0xd, 0, 0},
8040 {0x2F, 0x1f, 0x1f, 0, 0},
8041 {0x30, 0x15, 0x15, 0, 0},
8042 {0x31, 0xf, 0xf, 0, 0},
8053 {0x3C, 0x13, 0x13, 0, 0},
8054 {0x3D, 0xf, 0xf, 0, 0},
8055 {0x3E, 0x18, 0x18, 0, 0},
8058 {0x41, 0x20, 0x20, 0, 0},
8059 {0x42, 0x20, 0x20, 0, 0},
8061 {0x44, 0x77, 0x77, 0, 0},
8062 {0x45, 0x7, 0x7, 0, 0},
8063 {0x46, 0x1, 0x1, 0, 0},
8064 {0x47, 0x4, 0x4, 0, 0},
8065 {0x48, 0xf, 0xf, 0, 0},
8066 {0x49, 0x30, 0x30, 0, 0},
8067 {0x4A, 0x32, 0x32, 0, 0},
8068 {0x4B, 0xd, 0xd, 0, 0},
8069 {0x4C, 0xd, 0xd, 0, 0},
8070 {0x4D, 0x4, 0x4, 0, 0},
8071 {0x4E, 0x6, 0x6, 0, 0},
8072 {0x4F, 0x1, 0x1, 0, 0},
8073 {0x50, 0x1c, 0x1c, 0, 0},
8074 {0x51, 0x2, 0x2, 0, 0},
8075 {0x52, 0x2, 0x2, 0, 0},
8076 {0x53, 0xf7, 0xf7, 1, 1},
8077 {0x54, 0xb4, 0xb4, 0, 0},
8078 {0x55, 0xd2, 0xd2, 0, 0},
8081 {0x58, 0x4, 0x4, 0, 0},
8082 {0x59, 0x96, 0x96, 0, 0},
8083 {0x5A, 0x3e, 0x3e, 0, 0},
8084 {0x5B, 0x3e, 0x3e, 0, 0},
8085 {0x5C, 0x13, 0x13, 0, 0},
8086 {0x5D, 0x2, 0x2, 0, 0},
8088 {0x5F, 0x7, 0x7, 0, 0},
8089 {0x60, 0x7, 0x7, 1, 1},
8090 {0x61, 0x8, 0x8, 0, 0},
8091 {0x62, 0x3, 0x3, 0, 0},
8097 {0x68, 0x40, 0x40, 0, 0},
8102 {0x6D, 0x1, 0x1, 0, 0},
8105 {0x70, 0x60, 0x60, 0, 0},
8106 {0x71, 0x66, 0x66, 0, 0},
8107 {0x72, 0xc, 0xc, 0, 0},
8108 {0x73, 0x66, 0x66, 0, 0},
8109 {0x74, 0x8f, 0x8f, 1, 1},
8111 {0x76, 0xcc, 0xcc, 0, 0},
8112 {0x77, 0x1, 0x1, 0, 0},
8113 {0x78, 0x66, 0x66, 0, 0},
8114 {0x79, 0x66, 0x66, 0, 0},
8126 {0x85, 0xff, 0xff, 0, 0},
8152 {0x9F, 0x6, 0x6, 0, 0},
8153 {0xA0, 0x66, 0x66, 0, 0},
8154 {0xA1, 0x66, 0x66, 0, 0},
8155 {0xA2, 0x66, 0x66, 0, 0},
8156 {0xA3, 0x66, 0x66, 0, 0},
8157 {0xA4, 0x66, 0x66, 0, 0},
8158 {0xA5, 0x66, 0x66, 0, 0},
8159 {0xA6, 0x66, 0x66, 0, 0},
8160 {0xA7, 0x66, 0x66, 0, 0},
8161 {0xA8, 0x66, 0x66, 0, 0},
8162 {0xA9, 0x66, 0x66, 0, 0},
8163 {0xAA, 0x66, 0x66, 0, 0},
8164 {0xAB, 0x66, 0x66, 0, 0},
8165 {0xAC, 0x66, 0x66, 0, 0},
8166 {0xAD, 0x66, 0x66, 0, 0},
8167 {0xAE, 0x66, 0x66, 0, 0},
8168 {0xAF, 0x66, 0x66, 0, 0},
8169 {0xB0, 0x66, 0x66, 0, 0},
8170 {0xB1, 0x66, 0x66, 0, 0},
8171 {0xB2, 0x66, 0x66, 0, 0},
8172 {0xB3, 0xa, 0xa, 0, 0},
8176 {0xFFFF, 0, 0, 0, 0}
8179 static struct radio_regs regs_TX_2056[] = {
8211 {0x21, 0x88, 0x88, 0, 0},
8212 {0x22, 0x88, 0x88, 0, 0},
8213 {0x23, 0x88, 0x88, 0, 0},
8214 {0x24, 0x88, 0x88, 0, 0},
8215 {0x25, 0xc, 0xc, 0, 0},
8217 {0x27, 0x3, 0x3, 0, 0},
8219 {0x29, 0x3, 0x3, 0, 0},
8220 {0x2A, 0x37, 0x37, 0, 0},
8221 {0x2B, 0x3, 0x3, 0, 0},
8224 {0x2E, 0x1, 0x1, 0, 0},
8225 {0x2F, 0x1, 0x1, 0, 0},
8229 {0x33, 0x11, 0x11, 0, 0},
8230 {0x34, 0x11, 0x11, 0, 0},
8233 {0x37, 0x3, 0x3, 0, 0},
8234 {0x38, 0xf, 0xf, 0, 0},
8236 {0x3A, 0x2d, 0x2d, 0, 0},
8238 {0x3C, 0x6e, 0x6e, 0, 0},
8239 {0x3D, 0xf0, 0xf0, 1, 1},
8243 {0x41, 0x3, 0x3, 0, 0},
8244 {0x42, 0x3, 0x3, 0, 0},
8246 {0x44, 0x1e, 0x1e, 0, 0},
8248 {0x46, 0x6e, 0x6e, 0, 0},
8249 {0x47, 0xf0, 0xf0, 1, 1},
8251 {0x49, 0x2, 0x2, 0, 0},
8252 {0x4A, 0xff, 0xff, 1, 1},
8253 {0x4B, 0xc, 0xc, 0, 0},
8255 {0x4D, 0x38, 0x38, 0, 0},
8256 {0x4E, 0x70, 0x70, 1, 1},
8257 {0x4F, 0x2, 0x2, 0, 0},
8258 {0x50, 0x88, 0x88, 0, 0},
8259 {0x51, 0xc, 0xc, 0, 0},
8261 {0x53, 0x8, 0x8, 0, 0},
8262 {0x54, 0x70, 0x70, 1, 1},
8263 {0x55, 0x2, 0x2, 0, 0},
8264 {0x56, 0xff, 0xff, 1, 1},
8266 {0x58, 0x83, 0x83, 0, 0},
8267 {0x59, 0x77, 0x77, 1, 1},
8269 {0x5B, 0x2, 0x2, 0, 0},
8270 {0x5C, 0x88, 0x88, 0, 0},
8272 {0x5E, 0x8, 0x8, 0, 0},
8273 {0x5F, 0x77, 0x77, 1, 1},
8274 {0x60, 0x1, 0x1, 0, 0},
8276 {0x62, 0x7, 0x7, 0, 0},
8278 {0x64, 0x7, 0x7, 0, 0},
8281 {0x67, 0x74, 0x74, 1, 1},
8283 {0x69, 0xa, 0xa, 0, 0},
8291 {0x71, 0x2, 0x2, 0, 0},
8294 {0x74, 0xe, 0xe, 0, 0},
8295 {0x75, 0xe, 0xe, 0, 0},
8296 {0x76, 0xe, 0xe, 0, 0},
8297 {0x77, 0x13, 0x13, 0, 0},
8298 {0x78, 0x13, 0x13, 0, 0},
8299 {0x79, 0x1b, 0x1b, 0, 0},
8300 {0x7A, 0x1b, 0x1b, 0, 0},
8301 {0x7B, 0x55, 0x55, 0, 0},
8302 {0x7C, 0x5b, 0x5b, 0, 0},
8325 {0xFFFF, 0, 0, 0, 0}
8328 static struct radio_regs regs_RX_2056[] = {
8359 {0x20, 0x3, 0x3, 0, 0},
8362 {0x23, 0x90, 0x90, 0, 0},
8363 {0x24, 0x55, 0x55, 0, 0},
8364 {0x25, 0x15, 0x15, 0, 0},
8365 {0x26, 0x5, 0x5, 0, 0},
8366 {0x27, 0x15, 0x15, 0, 0},
8367 {0x28, 0x5, 0x5, 0, 0},
8368 {0x29, 0x20, 0x20, 0, 0},
8369 {0x2A, 0x11, 0x11, 0, 0},
8370 {0x2B, 0x90, 0x90, 0, 0},
8372 {0x2D, 0x88, 0x88, 0, 0},
8373 {0x2E, 0x32, 0x32, 0, 0},
8374 {0x2F, 0x77, 0x77, 0, 0},
8375 {0x30, 0x17, 0x17, 1, 1},
8376 {0x31, 0xff, 0xff, 1, 1},
8377 {0x32, 0x20, 0x20, 0, 0},
8379 {0x34, 0x88, 0x88, 0, 0},
8380 {0x35, 0x32, 0x32, 0, 0},
8381 {0x36, 0x77, 0x77, 0, 0},
8382 {0x37, 0x17, 0x17, 1, 1},
8383 {0x38, 0xf0, 0xf0, 1, 1},
8384 {0x39, 0x20, 0x20, 0, 0},
8385 {0x3A, 0x8, 0x8, 0, 0},
8386 {0x3B, 0x99, 0x99, 0, 0},
8388 {0x3D, 0x44, 0x44, 1, 1},
8390 {0x3F, 0x44, 0x44, 0, 0},
8391 {0x40, 0xf, 0xf, 1, 1},
8392 {0x41, 0x6, 0x6, 0, 0},
8393 {0x42, 0x4, 0x4, 0, 0},
8394 {0x43, 0x50, 0x50, 1, 1},
8395 {0x44, 0x8, 0x8, 0, 0},
8396 {0x45, 0x99, 0x99, 0, 0},
8398 {0x47, 0x11, 0x11, 0, 0},
8400 {0x49, 0x44, 0x44, 0, 0},
8401 {0x4A, 0x7, 0x7, 0, 0},
8402 {0x4B, 0x6, 0x6, 0, 0},
8403 {0x4C, 0x4, 0x4, 0, 0},
8406 {0x4F, 0x66, 0x66, 0, 0},
8407 {0x50, 0x66, 0x66, 0, 0},
8408 {0x51, 0x57, 0x57, 0, 0},
8409 {0x52, 0x57, 0x57, 0, 0},
8410 {0x53, 0x44, 0x44, 0, 0},
8413 {0x56, 0x8, 0x8, 0, 0},
8414 {0x57, 0x8, 0x8, 0, 0},
8415 {0x58, 0x7, 0x7, 0, 0},
8416 {0x59, 0x22, 0x22, 0, 0},
8417 {0x5A, 0x22, 0x22, 0, 0},
8418 {0x5B, 0x2, 0x2, 0, 0},
8419 {0x5C, 0x23, 0x23, 0, 0},
8420 {0x5D, 0x7, 0x7, 0, 0},
8421 {0x5E, 0x55, 0x55, 0, 0},
8422 {0x5F, 0x23, 0x23, 0, 0},
8423 {0x60, 0x41, 0x41, 0, 0},
8424 {0x61, 0x1, 0x1, 0, 0},
8425 {0x62, 0xa, 0xa, 0, 0},
8434 {0x6B, 0xc, 0xc, 0, 0},
8441 {0x72, 0x22, 0x22, 0, 0},
8442 {0x73, 0x22, 0x22, 0, 0},
8443 {0x74, 0x2, 0x2, 0, 0},
8444 {0x75, 0xa, 0xa, 0, 0},
8445 {0x76, 0x1, 0x1, 0, 0},
8446 {0x77, 0x22, 0x22, 0, 0},
8447 {0x78, 0x30, 0x30, 0, 0},
8476 {0xFFFF, 0, 0, 0, 0}
8479 static struct radio_regs regs_SYN_2056_A1[] = {
8487 {0x09, 0x1, 0x1, 0, 0},
8512 {0x22, 0x60, 0x60, 0, 0},
8513 {0x23, 0x6, 0x6, 0, 0},
8514 {0x24, 0xc, 0xc, 0, 0},
8518 {0x28, 0x1, 0x1, 0, 0},
8524 {0x2E, 0xd, 0xd, 0, 0},
8525 {0x2F, 0x1f, 0x1f, 0, 0},
8526 {0x30, 0x15, 0x15, 0, 0},
8527 {0x31, 0xf, 0xf, 0, 0},
8538 {0x3C, 0x13, 0x13, 0, 0},
8539 {0x3D, 0xf, 0xf, 0, 0},
8540 {0x3E, 0x18, 0x18, 0, 0},
8543 {0x41, 0x20, 0x20, 0, 0},
8544 {0x42, 0x20, 0x20, 0, 0},
8546 {0x44, 0x77, 0x77, 0, 0},
8547 {0x45, 0x7, 0x7, 0, 0},
8548 {0x46, 0x1, 0x1, 0, 0},
8549 {0x47, 0x4, 0x4, 0, 0},
8550 {0x48, 0xf, 0xf, 0, 0},
8551 {0x49, 0x30, 0x30, 0, 0},
8552 {0x4A, 0x32, 0x32, 0, 0},
8553 {0x4B, 0xd, 0xd, 0, 0},
8554 {0x4C, 0xd, 0xd, 0, 0},
8555 {0x4D, 0x4, 0x4, 0, 0},
8556 {0x4E, 0x6, 0x6, 0, 0},
8557 {0x4F, 0x1, 0x1, 0, 0},
8558 {0x50, 0x1c, 0x1c, 0, 0},
8559 {0x51, 0x2, 0x2, 0, 0},
8560 {0x52, 0x2, 0x2, 0, 0},
8561 {0x53, 0xf7, 0xf7, 1, 1},
8562 {0x54, 0xb4, 0xb4, 0, 0},
8563 {0x55, 0xd2, 0xd2, 0, 0},
8566 {0x58, 0x4, 0x4, 0, 0},
8567 {0x59, 0x96, 0x96, 0, 0},
8568 {0x5A, 0x3e, 0x3e, 0, 0},
8569 {0x5B, 0x3e, 0x3e, 0, 0},
8570 {0x5C, 0x13, 0x13, 0, 0},
8571 {0x5D, 0x2, 0x2, 0, 0},
8573 {0x5F, 0x7, 0x7, 0, 0},
8574 {0x60, 0x7, 0x7, 1, 1},
8575 {0x61, 0x8, 0x8, 0, 0},
8576 {0x62, 0x3, 0x3, 0, 0},
8582 {0x68, 0x40, 0x40, 0, 0},
8587 {0x6D, 0x1, 0x1, 0, 0},
8590 {0x70, 0x60, 0x60, 0, 0},
8591 {0x71, 0x66, 0x66, 0, 0},
8592 {0x72, 0xc, 0xc, 0, 0},
8593 {0x73, 0x66, 0x66, 0, 0},
8594 {0x74, 0x8f, 0x8f, 1, 1},
8596 {0x76, 0xcc, 0xcc, 0, 0},
8597 {0x77, 0x1, 0x1, 0, 0},
8598 {0x78, 0x66, 0x66, 0, 0},
8599 {0x79, 0x66, 0x66, 0, 0},
8611 {0x85, 0xff, 0xff, 0, 0},
8637 {0x9F, 0x6, 0x6, 0, 0},
8638 {0xA0, 0x66, 0x66, 0, 0},
8639 {0xA1, 0x66, 0x66, 0, 0},
8640 {0xA2, 0x66, 0x66, 0, 0},
8641 {0xA3, 0x66, 0x66, 0, 0},
8642 {0xA4, 0x66, 0x66, 0, 0},
8643 {0xA5, 0x66, 0x66, 0, 0},
8644 {0xA6, 0x66, 0x66, 0, 0},
8645 {0xA7, 0x66, 0x66, 0, 0},
8646 {0xA8, 0x66, 0x66, 0, 0},
8647 {0xA9, 0x66, 0x66, 0, 0},
8648 {0xAA, 0x66, 0x66, 0, 0},
8649 {0xAB, 0x66, 0x66, 0, 0},
8650 {0xAC, 0x66, 0x66, 0, 0},
8651 {0xAD, 0x66, 0x66, 0, 0},
8652 {0xAE, 0x66, 0x66, 0, 0},
8653 {0xAF, 0x66, 0x66, 0, 0},
8654 {0xB0, 0x66, 0x66, 0, 0},
8655 {0xB1, 0x66, 0x66, 0, 0},
8656 {0xB2, 0x66, 0x66, 0, 0},
8657 {0xB3, 0xa, 0xa, 0, 0},
8661 {0xFFFF, 0, 0, 0, 0}
8664 static struct radio_regs regs_TX_2056_A1[] = {
8696 {0x21, 0x88, 0x88, 0, 0},
8697 {0x22, 0x88, 0x88, 0, 0},
8698 {0x23, 0x88, 0x88, 0, 0},
8699 {0x24, 0x88, 0x88, 0, 0},
8700 {0x25, 0xc, 0xc, 0, 0},
8702 {0x27, 0x3, 0x3, 0, 0},
8704 {0x29, 0x3, 0x3, 0, 0},
8705 {0x2A, 0x37, 0x37, 0, 0},
8706 {0x2B, 0x3, 0x3, 0, 0},
8709 {0x2E, 0x1, 0x1, 0, 0},
8710 {0x2F, 0x1, 0x1, 0, 0},
8714 {0x33, 0x11, 0x11, 0, 0},
8715 {0x34, 0x11, 0x11, 0, 0},
8718 {0x37, 0x3, 0x3, 0, 0},
8719 {0x38, 0xf, 0xf, 0, 0},
8721 {0x3A, 0x2d, 0x2d, 0, 0},
8723 {0x3C, 0x6e, 0x6e, 0, 0},
8724 {0x3D, 0xf0, 0xf0, 1, 1},
8728 {0x41, 0x3, 0x3, 0, 0},
8729 {0x42, 0x3, 0x3, 0, 0},
8731 {0x44, 0x1e, 0x1e, 0, 0},
8733 {0x46, 0x6e, 0x6e, 0, 0},
8734 {0x47, 0xf0, 0xf0, 1, 1},
8736 {0x49, 0x2, 0x2, 0, 0},
8737 {0x4A, 0xff, 0xff, 1, 1},
8738 {0x4B, 0xc, 0xc, 0, 0},
8740 {0x4D, 0x38, 0x38, 0, 0},
8741 {0x4E, 0x70, 0x70, 1, 1},
8742 {0x4F, 0x2, 0x2, 0, 0},
8743 {0x50, 0x88, 0x88, 0, 0},
8744 {0x51, 0xc, 0xc, 0, 0},
8746 {0x53, 0x8, 0x8, 0, 0},
8747 {0x54, 0x70, 0x70, 1, 1},
8748 {0x55, 0x2, 0x2, 0, 0},
8749 {0x56, 0xff, 0xff, 1, 1},
8751 {0x58, 0x83, 0x83, 0, 0},
8752 {0x59, 0x77, 0x77, 1, 1},
8754 {0x5B, 0x2, 0x2, 0, 0},
8755 {0x5C, 0x88, 0x88, 0, 0},
8757 {0x5E, 0x8, 0x8, 0, 0},
8758 {0x5F, 0x77, 0x77, 1, 1},
8759 {0x60, 0x1, 0x1, 0, 0},
8761 {0x62, 0x7, 0x7, 0, 0},
8763 {0x64, 0x7, 0x7, 0, 0},
8766 {0x67, 0x72, 0x72, 1, 1},
8768 {0x69, 0xa, 0xa, 0, 0},
8776 {0x71, 0x2, 0x2, 0, 0},
8779 {0x74, 0xe, 0xe, 0, 0},
8780 {0x75, 0xe, 0xe, 0, 0},
8781 {0x76, 0xe, 0xe, 0, 0},
8782 {0x77, 0x13, 0x13, 0, 0},
8783 {0x78, 0x13, 0x13, 0, 0},
8784 {0x79, 0x1b, 0x1b, 0, 0},
8785 {0x7A, 0x1b, 0x1b, 0, 0},
8786 {0x7B, 0x55, 0x55, 0, 0},
8787 {0x7C, 0x5b, 0x5b, 0, 0},
8810 {0xFFFF, 0, 0, 0, 0}
8813 static struct radio_regs regs_RX_2056_A1[] = {
8844 {0x20, 0x3, 0x3, 0, 0},
8847 {0x23, 0x90, 0x90, 0, 0},
8848 {0x24, 0x55, 0x55, 0, 0},
8849 {0x25, 0x15, 0x15, 0, 0},
8850 {0x26, 0x5, 0x5, 0, 0},
8851 {0x27, 0x15, 0x15, 0, 0},
8852 {0x28, 0x5, 0x5, 0, 0},
8853 {0x29, 0x20, 0x20, 0, 0},
8854 {0x2A, 0x11, 0x11, 0, 0},
8855 {0x2B, 0x90, 0x90, 0, 0},
8857 {0x2D, 0x88, 0x88, 0, 0},
8858 {0x2E, 0x32, 0x32, 0, 0},
8859 {0x2F, 0x77, 0x77, 0, 0},
8860 {0x30, 0x17, 0x17, 1, 1},
8861 {0x31, 0xff, 0xff, 1, 1},
8862 {0x32, 0x20, 0x20, 0, 0},
8864 {0x34, 0x88, 0x88, 0, 0},
8865 {0x35, 0x32, 0x32, 0, 0},
8866 {0x36, 0x77, 0x77, 0, 0},
8867 {0x37, 0x17, 0x17, 1, 1},
8868 {0x38, 0xf0, 0xf0, 1, 1},
8869 {0x39, 0x20, 0x20, 0, 0},
8870 {0x3A, 0x8, 0x8, 0, 0},
8871 {0x3B, 0x55, 0x55, 1, 1},
8873 {0x3D, 0x44, 0x44, 1, 1},
8875 {0x3F, 0x44, 0x44, 0, 0},
8876 {0x40, 0xf, 0xf, 1, 1},
8877 {0x41, 0x6, 0x6, 0, 0},
8878 {0x42, 0x4, 0x4, 0, 0},
8879 {0x43, 0x50, 0x50, 1, 1},
8880 {0x44, 0x8, 0x8, 0, 0},
8881 {0x45, 0x55, 0x55, 1, 1},
8883 {0x47, 0x11, 0x11, 0, 0},
8885 {0x49, 0x44, 0x44, 0, 0},
8886 {0x4A, 0x7, 0x7, 0, 0},
8887 {0x4B, 0x6, 0x6, 0, 0},
8888 {0x4C, 0x4, 0x4, 0, 0},
8891 {0x4F, 0x26, 0x26, 1, 1},
8892 {0x50, 0x26, 0x26, 1, 1},
8893 {0x51, 0xf, 0xf, 1, 1},
8894 {0x52, 0xf, 0xf, 1, 1},
8895 {0x53, 0x44, 0x44, 0, 0},
8898 {0x56, 0x8, 0x8, 0, 0},
8899 {0x57, 0x8, 0x8, 0, 0},
8900 {0x58, 0x7, 0x7, 0, 0},
8901 {0x59, 0x22, 0x22, 0, 0},
8902 {0x5A, 0x22, 0x22, 0, 0},
8903 {0x5B, 0x2, 0x2, 0, 0},
8904 {0x5C, 0x2f, 0x2f, 1, 1},
8905 {0x5D, 0x7, 0x7, 0, 0},
8906 {0x5E, 0x55, 0x55, 0, 0},
8907 {0x5F, 0x23, 0x23, 0, 0},
8908 {0x60, 0x41, 0x41, 0, 0},
8909 {0x61, 0x1, 0x1, 0, 0},
8910 {0x62, 0xa, 0xa, 0, 0},
8919 {0x6B, 0xc, 0xc, 0, 0},
8926 {0x72, 0x22, 0x22, 0, 0},
8927 {0x73, 0x22, 0x22, 0, 0},
8929 {0x75, 0xa, 0xa, 0, 0},
8930 {0x76, 0x1, 0x1, 0, 0},
8931 {0x77, 0x22, 0x22, 0, 0},
8932 {0x78, 0x30, 0x30, 0, 0},
8961 {0xFFFF, 0, 0, 0, 0}
8964 static struct radio_regs regs_SYN_2056_rev5[] = {
8972 {0x09, 0x1, 0x1, 0, 0},
8997 {0x22, 0x60, 0x60, 0, 0},
8998 {0x23, 0x6, 0x6, 0, 0},
8999 {0x24, 0xc, 0xc, 0, 0},
9003 {0x28, 0x1, 0x1, 0, 0},
9010 {0x2F, 0x1f, 0x1f, 0, 0},
9011 {0x30, 0x15, 0x15, 0, 0},
9012 {0x31, 0xf, 0xf, 0, 0},
9023 {0x3C, 0x13, 0x13, 0, 0},
9024 {0x3D, 0xf, 0xf, 0, 0},
9025 {0x3E, 0x18, 0x18, 0, 0},
9028 {0x41, 0x20, 0x20, 0, 0},
9029 {0x42, 0x20, 0x20, 0, 0},
9031 {0x44, 0x77, 0x77, 0, 0},
9032 {0x45, 0x7, 0x7, 0, 0},
9033 {0x46, 0x1, 0x1, 0, 0},
9034 {0x47, 0x4, 0x4, 0, 0},
9035 {0x48, 0xf, 0xf, 0, 0},
9036 {0x49, 0x30, 0x30, 0, 0},
9037 {0x4A, 0x32, 0x32, 0, 0},
9038 {0x4B, 0xd, 0xd, 0, 0},
9039 {0x4C, 0xd, 0xd, 0, 0},
9040 {0x4D, 0x4, 0x4, 0, 0},
9041 {0x4E, 0x6, 0x6, 0, 0},
9042 {0x4F, 0x1, 0x1, 0, 0},
9043 {0x50, 0x1c, 0x1c, 0, 0},
9044 {0x51, 0x2, 0x2, 0, 0},
9045 {0x52, 0x2, 0x2, 0, 0},
9046 {0x53, 0xf7, 0xf7, 1, 1},
9047 {0x54, 0xb4, 0xb4, 0, 0},
9048 {0x55, 0xd2, 0xd2, 0, 0},
9051 {0x58, 0x4, 0x4, 0, 0},
9052 {0x59, 0x96, 0x96, 0, 0},
9053 {0x5A, 0x3e, 0x3e, 0, 0},
9054 {0x5B, 0x3e, 0x3e, 0, 0},
9055 {0x5C, 0x13, 0x13, 0, 0},
9056 {0x5D, 0x2, 0x2, 0, 0},
9058 {0x5F, 0x7, 0x7, 0, 0},
9059 {0x60, 0x7, 0x7, 1, 1},
9060 {0x61, 0x8, 0x8, 0, 0},
9061 {0x62, 0x3, 0x3, 0, 0},
9067 {0x68, 0x40, 0x40, 0, 0},
9072 {0x6D, 0x1, 0x1, 0, 0},
9075 {0x70, 0x60, 0x60, 0, 0},
9076 {0x71, 0x66, 0x66, 0, 0},
9077 {0x72, 0xc, 0xc, 0, 0},
9078 {0x73, 0x66, 0x66, 0, 0},
9079 {0x74, 0x8f, 0x8f, 1, 1},
9081 {0x76, 0xcc, 0xcc, 0, 0},
9082 {0x77, 0x1, 0x1, 0, 0},
9083 {0x78, 0x66, 0x66, 0, 0},
9084 {0x79, 0x66, 0x66, 0, 0},
9096 {0x85, 0xff, 0xff, 0, 0},
9122 {0x9F, 0x6, 0x6, 0, 0},
9123 {0xA0, 0x66, 0x66, 0, 0},
9124 {0xA1, 0x66, 0x66, 0, 0},
9125 {0xA2, 0x66, 0x66, 0, 0},
9126 {0xA3, 0x66, 0x66, 0, 0},
9127 {0xA4, 0x66, 0x66, 0, 0},
9128 {0xA5, 0x66, 0x66, 0, 0},
9129 {0xA6, 0x66, 0x66, 0, 0},
9130 {0xA7, 0x66, 0x66, 0, 0},
9131 {0xA8, 0x66, 0x66, 0, 0},
9132 {0xA9, 0x66, 0x66, 0, 0},
9133 {0xAA, 0x66, 0x66, 0, 0},
9134 {0xAB, 0x66, 0x66, 0, 0},
9135 {0xAC, 0x66, 0x66, 0, 0},
9136 {0xAD, 0x66, 0x66, 0, 0},
9137 {0xAE, 0x66, 0x66, 0, 0},
9138 {0xAF, 0x66, 0x66, 0, 0},
9139 {0xB0, 0x66, 0x66, 0, 0},
9140 {0xB1, 0x66, 0x66, 0, 0},
9141 {0xB2, 0x66, 0x66, 0, 0},
9142 {0xB3, 0xa, 0xa, 0, 0},
9146 {0xFFFF, 0, 0, 0, 0}
9149 static struct radio_regs regs_TX_2056_rev5[] = {
9181 {0x21, 0x88, 0x88, 0, 0},
9182 {0x22, 0x88, 0x88, 0, 0},
9183 {0x23, 0x88, 0x88, 0, 0},
9184 {0x24, 0x88, 0x88, 0, 0},
9185 {0x25, 0xc, 0xc, 0, 0},
9187 {0x27, 0x3, 0x3, 0, 0},
9189 {0x29, 0x3, 0x3, 0, 0},
9190 {0x2A, 0x37, 0x37, 0, 0},
9191 {0x2B, 0x3, 0x3, 0, 0},
9194 {0x2E, 0x1, 0x1, 0, 0},
9195 {0x2F, 0x1, 0x1, 0, 0},
9199 {0x33, 0x11, 0x11, 0, 0},
9200 {0x34, 0x11, 0x11, 0, 0},
9203 {0x37, 0x3, 0x3, 0, 0},
9204 {0x38, 0xf, 0xf, 0, 0},
9206 {0x3A, 0x2d, 0x2d, 0, 0},
9208 {0x3C, 0x6e, 0x6e, 0, 0},
9209 {0x3D, 0xf0, 0xf0, 1, 1},
9213 {0x41, 0x3, 0x3, 0, 0},
9214 {0x42, 0x3, 0x3, 0, 0},
9216 {0x44, 0x1e, 0x1e, 0, 0},
9218 {0x46, 0x6e, 0x6e, 0, 0},
9219 {0x47, 0xf0, 0xf0, 1, 1},
9221 {0x49, 0x2, 0x2, 0, 0},
9222 {0x4A, 0xff, 0xff, 1, 1},
9223 {0x4B, 0xc, 0xc, 0, 0},
9225 {0x4D, 0x38, 0x38, 0, 0},
9226 {0x4E, 0x70, 0x70, 1, 1},
9227 {0x4F, 0x2, 0x2, 0, 0},
9228 {0x50, 0x88, 0x88, 0, 0},
9229 {0x51, 0xc, 0xc, 0, 0},
9231 {0x53, 0x8, 0x8, 0, 0},
9232 {0x54, 0x70, 0x70, 1, 1},
9233 {0x55, 0x2, 0x2, 0, 0},
9234 {0x56, 0xff, 0xff, 1, 1},
9236 {0x58, 0x83, 0x83, 0, 0},
9237 {0x59, 0x77, 0x77, 1, 1},
9239 {0x5B, 0x2, 0x2, 0, 0},
9240 {0x5C, 0x88, 0x88, 0, 0},
9242 {0x5E, 0x8, 0x8, 0, 0},
9243 {0x5F, 0x77, 0x77, 1, 1},
9244 {0x60, 0x1, 0x1, 0, 0},
9246 {0x62, 0x7, 0x7, 0, 0},
9248 {0x64, 0x7, 0x7, 0, 0},
9253 {0x69, 0xa, 0xa, 0, 0},
9261 {0x71, 0x2, 0x2, 0, 0},
9264 {0x74, 0xe, 0xe, 0, 0},
9265 {0x75, 0xe, 0xe, 0, 0},
9266 {0x76, 0xe, 0xe, 0, 0},
9267 {0x77, 0x13, 0x13, 0, 0},
9268 {0x78, 0x13, 0x13, 0, 0},
9269 {0x79, 0x1b, 0x1b, 0, 0},
9270 {0x7A, 0x1b, 0x1b, 0, 0},
9271 {0x7B, 0x55, 0x55, 0, 0},
9272 {0x7C, 0x5b, 0x5b, 0, 0},
9295 {0x93, 0x70, 0x70, 0, 0},
9296 {0x94, 0x70, 0x70, 0, 0},
9297 {0x95, 0x71, 0x71, 1, 1},
9298 {0x96, 0x71, 0x71, 1, 1},
9299 {0x97, 0x72, 0x72, 1, 1},
9300 {0x98, 0x73, 0x73, 1, 1},
9301 {0x99, 0x74, 0x74, 1, 1},
9302 {0x9A, 0x75, 0x75, 1, 1},
9303 {0xFFFF, 0, 0, 0, 0}
9306 static struct radio_regs regs_RX_2056_rev5[] = {
9337 {0x20, 0x3, 0x3, 0, 0},
9340 {0x23, 0x90, 0x90, 0, 0},
9341 {0x24, 0x55, 0x55, 0, 0},
9342 {0x25, 0x15, 0x15, 0, 0},
9343 {0x26, 0x5, 0x5, 0, 0},
9344 {0x27, 0x15, 0x15, 0, 0},
9345 {0x28, 0x5, 0x5, 0, 0},
9346 {0x29, 0x20, 0x20, 0, 0},
9347 {0x2A, 0x11, 0x11, 0, 0},
9348 {0x2B, 0x90, 0x90, 0, 0},
9350 {0x2D, 0x88, 0x88, 0, 0},
9351 {0x2E, 0x32, 0x32, 0, 0},
9352 {0x2F, 0x77, 0x77, 0, 0},
9353 {0x30, 0x17, 0x17, 1, 1},
9354 {0x31, 0xff, 0xff, 1, 1},
9355 {0x32, 0x20, 0x20, 0, 0},
9357 {0x34, 0x88, 0x88, 0, 0},
9358 {0x35, 0x32, 0x32, 0, 0},
9359 {0x36, 0x77, 0x77, 0, 0},
9360 {0x37, 0x17, 0x17, 1, 1},
9361 {0x38, 0xf0, 0xf0, 1, 1},
9362 {0x39, 0x20, 0x20, 0, 0},
9363 {0x3A, 0x8, 0x8, 0, 0},
9364 {0x3B, 0x55, 0x55, 1, 1},
9366 {0x3D, 0x88, 0x88, 1, 1},
9369 {0x40, 0x7, 0x7, 1, 1},
9370 {0x41, 0x6, 0x6, 0, 0},
9371 {0x42, 0x4, 0x4, 0, 0},
9373 {0x44, 0x8, 0x8, 0, 0},
9374 {0x45, 0x55, 0x55, 1, 1},
9376 {0x47, 0x11, 0x11, 0, 0},
9379 {0x4A, 0x7, 0x7, 0, 0},
9380 {0x4B, 0x6, 0x6, 0, 0},
9381 {0x4C, 0x4, 0x4, 0, 0},
9384 {0x4F, 0x26, 0x26, 1, 1},
9385 {0x50, 0x26, 0x26, 1, 1},
9386 {0x51, 0xf, 0xf, 1, 1},
9387 {0x52, 0xf, 0xf, 1, 1},
9388 {0x53, 0x44, 0x44, 0, 0},
9391 {0x56, 0x8, 0x8, 0, 0},
9392 {0x57, 0x8, 0x8, 0, 0},
9393 {0x58, 0x7, 0x7, 0, 0},
9394 {0x59, 0x22, 0x22, 0, 0},
9395 {0x5A, 0x22, 0x22, 0, 0},
9396 {0x5B, 0x2, 0x2, 0, 0},
9397 {0x5C, 0x4, 0x4, 1, 1},
9398 {0x5D, 0x7, 0x7, 0, 0},
9399 {0x5E, 0x55, 0x55, 0, 0},
9400 {0x5F, 0x23, 0x23, 0, 0},
9401 {0x60, 0x41, 0x41, 0, 0},
9402 {0x61, 0x1, 0x1, 0, 0},
9403 {0x62, 0xa, 0xa, 0, 0},
9412 {0x6B, 0xc, 0xc, 0, 0},
9419 {0x72, 0x22, 0x22, 0, 0},
9420 {0x73, 0x22, 0x22, 0, 0},
9422 {0x75, 0xa, 0xa, 0, 0},
9423 {0x76, 0x1, 0x1, 0, 0},
9424 {0x77, 0x22, 0x22, 0, 0},
9425 {0x78, 0x30, 0x30, 0, 0},
9454 {0xFFFF, 0, 0, 0, 0}
9457 static struct radio_regs regs_SYN_2056_rev6[] = {
9465 {0x09, 0x1, 0x1, 0, 0},
9490 {0x22, 0x60, 0x60, 0, 0},
9491 {0x23, 0x6, 0x6, 0, 0},
9492 {0x24, 0xc, 0xc, 0, 0},
9496 {0x28, 0x1, 0x1, 0, 0},
9503 {0x2F, 0x1f, 0x1f, 0, 0},
9504 {0x30, 0x15, 0x15, 0, 0},
9505 {0x31, 0xf, 0xf, 0, 0},
9516 {0x3C, 0x13, 0x13, 0, 0},
9517 {0x3D, 0xf, 0xf, 0, 0},
9518 {0x3E, 0x18, 0x18, 0, 0},
9521 {0x41, 0x20, 0x20, 0, 0},
9522 {0x42, 0x20, 0x20, 0, 0},
9524 {0x44, 0x77, 0x77, 0, 0},
9525 {0x45, 0x7, 0x7, 0, 0},
9526 {0x46, 0x1, 0x1, 0, 0},
9527 {0x47, 0x4, 0x4, 0, 0},
9528 {0x48, 0xf, 0xf, 0, 0},
9529 {0x49, 0x30, 0x30, 0, 0},
9530 {0x4A, 0x32, 0x32, 0, 0},
9531 {0x4B, 0xd, 0xd, 0, 0},
9532 {0x4C, 0xd, 0xd, 0, 0},
9533 {0x4D, 0x4, 0x4, 0, 0},
9534 {0x4E, 0x6, 0x6, 0, 0},
9535 {0x4F, 0x1, 0x1, 0, 0},
9536 {0x50, 0x1c, 0x1c, 0, 0},
9537 {0x51, 0x2, 0x2, 0, 0},
9538 {0x52, 0x2, 0x2, 0, 0},
9539 {0x53, 0xf7, 0xf7, 1, 1},
9540 {0x54, 0xb4, 0xb4, 0, 0},
9541 {0x55, 0xd2, 0xd2, 0, 0},
9544 {0x58, 0x4, 0x4, 0, 0},
9545 {0x59, 0x96, 0x96, 0, 0},
9546 {0x5A, 0x3e, 0x3e, 0, 0},
9547 {0x5B, 0x3e, 0x3e, 0, 0},
9548 {0x5C, 0x13, 0x13, 0, 0},
9549 {0x5D, 0x2, 0x2, 0, 0},
9551 {0x5F, 0x7, 0x7, 0, 0},
9552 {0x60, 0x7, 0x7, 1, 1},
9553 {0x61, 0x8, 0x8, 0, 0},
9554 {0x62, 0x3, 0x3, 0, 0},
9560 {0x68, 0x40, 0x40, 0, 0},
9565 {0x6D, 0x1, 0x1, 0, 0},
9568 {0x70, 0x60, 0x60, 0, 0},
9569 {0x71, 0x66, 0x66, 0, 0},
9570 {0x72, 0xc, 0xc, 0, 0},
9571 {0x73, 0x66, 0x66, 0, 0},
9572 {0x74, 0x8f, 0x8f, 1, 1},
9574 {0x76, 0xcc, 0xcc, 0, 0},
9575 {0x77, 0x1, 0x1, 0, 0},
9576 {0x78, 0x66, 0x66, 0, 0},
9577 {0x79, 0x66, 0x66, 0, 0},
9589 {0x85, 0xff, 0xff, 0, 0},
9615 {0x9F, 0x6, 0x6, 0, 0},
9616 {0xA0, 0x66, 0x66, 0, 0},
9617 {0xA1, 0x66, 0x66, 0, 0},
9618 {0xA2, 0x66, 0x66, 0, 0},
9619 {0xA3, 0x66, 0x66, 0, 0},
9620 {0xA4, 0x66, 0x66, 0, 0},
9621 {0xA5, 0x66, 0x66, 0, 0},
9622 {0xA6, 0x66, 0x66, 0, 0},
9623 {0xA7, 0x66, 0x66, 0, 0},
9624 {0xA8, 0x66, 0x66, 0, 0},
9625 {0xA9, 0x66, 0x66, 0, 0},
9626 {0xAA, 0x66, 0x66, 0, 0},
9627 {0xAB, 0x66, 0x66, 0, 0},
9628 {0xAC, 0x66, 0x66, 0, 0},
9629 {0xAD, 0x66, 0x66, 0, 0},
9630 {0xAE, 0x66, 0x66, 0, 0},
9631 {0xAF, 0x66, 0x66, 0, 0},
9632 {0xB0, 0x66, 0x66, 0, 0},
9633 {0xB1, 0x66, 0x66, 0, 0},
9634 {0xB2, 0x66, 0x66, 0, 0},
9635 {0xB3, 0xa, 0xa, 0, 0},
9639 {0xFFFF, 0, 0, 0, 0}
9642 static struct radio_regs regs_TX_2056_rev6[] = {
9674 {0x21, 0x88, 0x88, 0, 0},
9675 {0x22, 0x88, 0x88, 0, 0},
9676 {0x23, 0x88, 0x88, 0, 0},
9677 {0x24, 0x88, 0x88, 0, 0},
9678 {0x25, 0xc, 0xc, 0, 0},
9680 {0x27, 0x3, 0x3, 0, 0},
9682 {0x29, 0x3, 0x3, 0, 0},
9683 {0x2A, 0x37, 0x37, 0, 0},
9684 {0x2B, 0x3, 0x3, 0, 0},
9687 {0x2E, 0x1, 0x1, 0, 0},
9688 {0x2F, 0x1, 0x1, 0, 0},
9692 {0x33, 0x11, 0x11, 0, 0},
9693 {0x34, 0xee, 0xee, 1, 1},
9696 {0x37, 0x3, 0x3, 0, 0},
9697 {0x38, 0x50, 0x50, 1, 1},
9699 {0x3A, 0x50, 0x50, 1, 1},
9701 {0x3C, 0x6e, 0x6e, 0, 0},
9702 {0x3D, 0xf0, 0xf0, 1, 1},
9706 {0x41, 0x3, 0x3, 0, 0},
9707 {0x42, 0x3, 0x3, 0, 0},
9709 {0x44, 0x1e, 0x1e, 0, 0},
9711 {0x46, 0x6e, 0x6e, 0, 0},
9712 {0x47, 0xf0, 0xf0, 1, 1},
9714 {0x49, 0x2, 0x2, 0, 0},
9715 {0x4A, 0xff, 0xff, 1, 1},
9716 {0x4B, 0xc, 0xc, 0, 0},
9718 {0x4D, 0x38, 0x38, 0, 0},
9719 {0x4E, 0x70, 0x70, 1, 1},
9720 {0x4F, 0x2, 0x2, 0, 0},
9721 {0x50, 0x88, 0x88, 0, 0},
9722 {0x51, 0xc, 0xc, 0, 0},
9724 {0x53, 0x8, 0x8, 0, 0},
9725 {0x54, 0x70, 0x70, 1, 1},
9726 {0x55, 0x2, 0x2, 0, 0},
9727 {0x56, 0xff, 0xff, 1, 1},
9729 {0x58, 0x83, 0x83, 0, 0},
9730 {0x59, 0x77, 0x77, 1, 1},
9732 {0x5B, 0x2, 0x2, 0, 0},
9733 {0x5C, 0x88, 0x88, 0, 0},
9735 {0x5E, 0x8, 0x8, 0, 0},
9736 {0x5F, 0x77, 0x77, 1, 1},
9737 {0x60, 0x1, 0x1, 0, 0},
9739 {0x62, 0x7, 0x7, 0, 0},
9741 {0x64, 0x7, 0x7, 0, 0},
9746 {0x69, 0xa, 0xa, 0, 0},
9754 {0x71, 0x2, 0x2, 0, 0},
9757 {0x74, 0xe, 0xe, 0, 0},
9758 {0x75, 0xe, 0xe, 0, 0},
9759 {0x76, 0xe, 0xe, 0, 0},
9760 {0x77, 0x13, 0x13, 0, 0},
9761 {0x78, 0x13, 0x13, 0, 0},
9762 {0x79, 0x1b, 0x1b, 0, 0},
9763 {0x7A, 0x1b, 0x1b, 0, 0},
9764 {0x7B, 0x55, 0x55, 0, 0},
9765 {0x7C, 0x5b, 0x5b, 0, 0},
9766 {0x7D, 0x30, 0x30, 1, 1},
9788 {0x93, 0x70, 0x70, 0, 0},
9789 {0x94, 0x70, 0x70, 0, 0},
9790 {0x95, 0x70, 0x70, 0, 0},
9791 {0x96, 0x70, 0x70, 0, 0},
9792 {0x97, 0x70, 0x70, 0, 0},
9793 {0x98, 0x70, 0x70, 0, 0},
9794 {0x99, 0x70, 0x70, 0, 0},
9795 {0x9A, 0x70, 0x70, 0, 0},
9796 {0xFFFF, 0, 0, 0, 0}
9799 static struct radio_regs regs_RX_2056_rev6[] = {
9830 {0x20, 0x3, 0x3, 0, 0},
9833 {0x23, 0x90, 0x90, 0, 0},
9834 {0x24, 0x55, 0x55, 0, 0},
9835 {0x25, 0x15, 0x15, 0, 0},
9836 {0x26, 0x5, 0x5, 0, 0},
9837 {0x27, 0x15, 0x15, 0, 0},
9838 {0x28, 0x5, 0x5, 0, 0},
9839 {0x29, 0x20, 0x20, 0, 0},
9840 {0x2A, 0x11, 0x11, 0, 0},
9841 {0x2B, 0x90, 0x90, 0, 0},
9843 {0x2D, 0x88, 0x88, 0, 0},
9844 {0x2E, 0x32, 0x32, 0, 0},
9845 {0x2F, 0x77, 0x77, 0, 0},
9846 {0x30, 0x17, 0x17, 1, 1},
9847 {0x31, 0xff, 0xff, 1, 1},
9848 {0x32, 0x20, 0x20, 0, 0},
9850 {0x34, 0x88, 0x88, 0, 0},
9851 {0x35, 0x32, 0x32, 0, 0},
9852 {0x36, 0x77, 0x77, 0, 0},
9853 {0x37, 0x17, 0x17, 1, 1},
9854 {0x38, 0xf0, 0xf0, 1, 1},
9855 {0x39, 0x20, 0x20, 0, 0},
9856 {0x3A, 0x8, 0x8, 0, 0},
9857 {0x3B, 0x55, 0x55, 1, 1},
9859 {0x3D, 0x88, 0x88, 1, 1},
9861 {0x3F, 0x44, 0x44, 0, 0},
9862 {0x40, 0x7, 0x7, 1, 1},
9863 {0x41, 0x6, 0x6, 0, 0},
9864 {0x42, 0x4, 0x4, 0, 0},
9866 {0x44, 0x8, 0x8, 0, 0},
9867 {0x45, 0x55, 0x55, 1, 1},
9869 {0x47, 0x11, 0x11, 0, 0},
9871 {0x49, 0x44, 0x44, 0, 0},
9872 {0x4A, 0x7, 0x7, 0, 0},
9873 {0x4B, 0x6, 0x6, 0, 0},
9874 {0x4C, 0x4, 0x4, 0, 0},
9877 {0x4F, 0x26, 0x26, 1, 1},
9878 {0x50, 0x26, 0x26, 1, 1},
9879 {0x51, 0xf, 0xf, 1, 1},
9880 {0x52, 0xf, 0xf, 1, 1},
9881 {0x53, 0x44, 0x44, 0, 0},
9884 {0x56, 0x8, 0x8, 0, 0},
9885 {0x57, 0x8, 0x8, 0, 0},
9886 {0x58, 0x7, 0x7, 0, 0},
9887 {0x59, 0x22, 0x22, 0, 0},
9888 {0x5A, 0x22, 0x22, 0, 0},
9889 {0x5B, 0x2, 0x2, 0, 0},
9890 {0x5C, 0x4, 0x4, 1, 1},
9891 {0x5D, 0x7, 0x7, 0, 0},
9892 {0x5E, 0x55, 0x55, 0, 0},
9893 {0x5F, 0x23, 0x23, 0, 0},
9894 {0x60, 0x41, 0x41, 0, 0},
9895 {0x61, 0x1, 0x1, 0, 0},
9896 {0x62, 0xa, 0xa, 0, 0},
9905 {0x6B, 0xc, 0xc, 0, 0},
9912 {0x72, 0x22, 0x22, 0, 0},
9913 {0x73, 0x22, 0x22, 0, 0},
9915 {0x75, 0xa, 0xa, 0, 0},
9916 {0x76, 0x1, 0x1, 0, 0},
9917 {0x77, 0x22, 0x22, 0, 0},
9918 {0x78, 0x30, 0x30, 0, 0},
9923 {0x7D, 0x5, 0x5, 1, 1},
9947 {0xFFFF, 0, 0, 0, 0}
9950 static struct radio_regs regs_SYN_2056_rev7[] = {
9958 {0x09, 0x1, 0x1, 0, 0},
9983 {0x22, 0x60, 0x60, 0, 0},
9984 {0x23, 0x6, 0x6, 0, 0},
9985 {0x24, 0xc, 0xc, 0, 0},
9989 {0x28, 0x1, 0x1, 0, 0},
9996 {0x2F, 0x1f, 0x1f, 0, 0},
9997 {0x30, 0x15, 0x15, 0, 0},
9998 {0x31, 0xf, 0xf, 0, 0},
10000 {0x33, 0, 0, 0, 0},
10001 {0x34, 0, 0, 0, 0},
10002 {0x35, 0, 0, 0, 0},
10003 {0x36, 0, 0, 0, 0},
10004 {0x37, 0, 0, 0, 0},
10005 {0x38, 0, 0, 0, 0},
10006 {0x39, 0, 0, 0, 0},
10007 {0x3A, 0, 0, 0, 0},
10008 {0x3B, 0, 0, 0, 0},
10009 {0x3C, 0x13, 0x13, 0, 0},
10010 {0x3D, 0xf, 0xf, 0, 0},
10011 {0x3E, 0x18, 0x18, 0, 0},
10012 {0x3F, 0, 0, 0, 0},
10013 {0x40, 0, 0, 0, 0},
10014 {0x41, 0x20, 0x20, 0, 0},
10015 {0x42, 0x20, 0x20, 0, 0},
10016 {0x43, 0, 0, 0, 0},
10017 {0x44, 0x77, 0x77, 0, 0},
10018 {0x45, 0x7, 0x7, 0, 0},
10019 {0x46, 0x1, 0x1, 0, 0},
10020 {0x47, 0x4, 0x4, 0, 0},
10021 {0x48, 0xf, 0xf, 0, 0},
10022 {0x49, 0x30, 0x30, 0, 0},
10023 {0x4A, 0x32, 0x32, 0, 0},
10024 {0x4B, 0xd, 0xd, 0, 0},
10025 {0x4C, 0xd, 0xd, 0, 0},
10026 {0x4D, 0x4, 0x4, 0, 0},
10027 {0x4E, 0x6, 0x6, 0, 0},
10028 {0x4F, 0x1, 0x1, 0, 0},
10029 {0x50, 0x1c, 0x1c, 0, 0},
10030 {0x51, 0x2, 0x2, 0, 0},
10031 {0x52, 0x2, 0x2, 0, 0},
10032 {0x53, 0xf7, 0xf7, 1, 1},
10033 {0x54, 0xb4, 0xb4, 0, 0},
10034 {0x55, 0xd2, 0xd2, 0, 0},
10035 {0x56, 0, 0, 0, 0},
10036 {0x57, 0, 0, 0, 0},
10037 {0x58, 0x4, 0x4, 0, 0},
10038 {0x59, 0x96, 0x96, 0, 0},
10039 {0x5A, 0x3e, 0x3e, 0, 0},
10040 {0x5B, 0x3e, 0x3e, 0, 0},
10041 {0x5C, 0x13, 0x13, 0, 0},
10042 {0x5D, 0x2, 0x2, 0, 0},
10043 {0x5E, 0, 0, 0, 0},
10044 {0x5F, 0x7, 0x7, 0, 0},
10045 {0x60, 0x7, 0x7, 1, 1},
10046 {0x61, 0x8, 0x8, 0, 0},
10047 {0x62, 0x3, 0x3, 0, 0},
10048 {0x63, 0, 0, 0, 0},
10049 {0x64, 0, 0, 0, 0},
10050 {0x65, 0, 0, 0, 0},
10051 {0x66, 0, 0, 0, 0},
10052 {0x67, 0, 0, 0, 0},
10053 {0x68, 0x40, 0x40, 0, 0},
10054 {0x69, 0, 0, 0, 0},
10055 {0x6A, 0, 0, 0, 0},
10056 {0x6B, 0, 0, 0, 0},
10057 {0x6C, 0, 0, 0, 0},
10058 {0x6D, 0x1, 0x1, 0, 0},
10059 {0x6E, 0, 0, 0, 0},
10060 {0x6F, 0, 0, 0, 0},
10061 {0x70, 0x60, 0x60, 0, 0},
10062 {0x71, 0x66, 0x66, 0, 0},
10063 {0x72, 0xc, 0xc, 0, 0},
10064 {0x73, 0x66, 0x66, 0, 0},
10065 {0x74, 0x8f, 0x8f, 1, 1},
10066 {0x75, 0, 0, 0, 0},
10067 {0x76, 0xcc, 0xcc, 0, 0},
10068 {0x77, 0x1, 0x1, 0, 0},
10069 {0x78, 0x66, 0x66, 0, 0},
10070 {0x79, 0x66, 0x66, 0, 0},
10071 {0x7A, 0, 0, 0, 0},
10072 {0x7B, 0, 0, 0, 0},
10073 {0x7C, 0, 0, 0, 0},
10074 {0x7D, 0, 0, 0, 0},
10075 {0x7E, 0, 0, 0, 0},
10076 {0x7F, 0, 0, 0, 0},
10077 {0x80, 0, 0, 0, 0},
10078 {0x81, 0, 0, 0, 0},
10079 {0x82, 0, 0, 0, 0},
10080 {0x83, 0, 0, 0, 0},
10081 {0x84, 0, 0, 0, 0},
10082 {0x85, 0xff, 0xff, 0, 0},
10083 {0x86, 0, 0, 0, 0},
10084 {0x87, 0, 0, 0, 0},
10085 {0x88, 0, 0, 0, 0},
10086 {0x89, 0, 0, 0, 0},
10087 {0x8A, 0, 0, 0, 0},
10088 {0x8B, 0, 0, 0, 0},
10089 {0x8C, 0, 0, 0, 0},
10090 {0x8D, 0, 0, 0, 0},
10091 {0x8E, 0, 0, 0, 0},
10092 {0x8F, 0, 0, 0, 0},
10093 {0x90, 0, 0, 0, 0},
10094 {0x91, 0, 0, 0, 0},
10095 {0x92, 0, 0, 0, 0},
10096 {0x93, 0, 0, 0, 0},
10097 {0x94, 0, 0, 0, 0},
10098 {0x95, 0, 0, 0, 0},
10099 {0x96, 0, 0, 0, 0},
10100 {0x97, 0, 0, 0, 0},
10101 {0x98, 0, 0, 0, 0},
10102 {0x99, 0, 0, 0, 0},
10103 {0x9A, 0, 0, 0, 0},
10104 {0x9B, 0, 0, 0, 0},
10105 {0x9C, 0, 0, 0, 0},
10106 {0x9D, 0, 0, 0, 0},
10107 {0x9E, 0, 0, 0, 0},
10108 {0x9F, 0x6, 0x6, 0, 0},
10109 {0xA0, 0x66, 0x66, 0, 0},
10110 {0xA1, 0x66, 0x66, 0, 0},
10111 {0xA2, 0x66, 0x66, 0, 0},
10112 {0xA3, 0x66, 0x66, 0, 0},
10113 {0xA4, 0x66, 0x66, 0, 0},
10114 {0xA5, 0x66, 0x66, 0, 0},
10115 {0xA6, 0x66, 0x66, 0, 0},
10116 {0xA7, 0x66, 0x66, 0, 0},
10117 {0xA8, 0x66, 0x66, 0, 0},
10118 {0xA9, 0x66, 0x66, 0, 0},
10119 {0xAA, 0x66, 0x66, 0, 0},
10120 {0xAB, 0x66, 0x66, 0, 0},
10121 {0xAC, 0x66, 0x66, 0, 0},
10122 {0xAD, 0x66, 0x66, 0, 0},
10123 {0xAE, 0x66, 0x66, 0, 0},
10124 {0xAF, 0x66, 0x66, 0, 0},
10125 {0xB0, 0x66, 0x66, 0, 0},
10126 {0xB1, 0x66, 0x66, 0, 0},
10127 {0xB2, 0x66, 0x66, 0, 0},
10128 {0xB3, 0xa, 0xa, 0, 0},
10129 {0xB4, 0, 0, 0, 0},
10130 {0xB5, 0, 0, 0, 0},
10131 {0xB6, 0, 0, 0, 0},
10132 {0xFFFF, 0, 0, 0, 0},
10135 static struct radio_regs regs_TX_2056_rev7[] = {
10136 {0x02, 0, 0, 0, 0},
10137 {0x03, 0, 0, 0, 0},
10138 {0x04, 0, 0, 0, 0},
10139 {0x05, 0, 0, 0, 0},
10140 {0x06, 0, 0, 0, 0},
10141 {0x07, 0, 0, 0, 0},
10142 {0x08, 0, 0, 0, 0},
10143 {0x09, 0, 0, 0, 0},
10144 {0x0A, 0, 0, 0, 0},
10145 {0x0B, 0, 0, 0, 0},
10146 {0x0C, 0, 0, 0, 0},
10147 {0x0D, 0, 0, 0, 0},
10148 {0x0E, 0, 0, 0, 0},
10149 {0x0F, 0, 0, 0, 0},
10150 {0x10, 0, 0, 0, 0},
10151 {0x11, 0, 0, 0, 0},
10152 {0x12, 0, 0, 0, 0},
10153 {0x13, 0, 0, 0, 0},
10154 {0x14, 0, 0, 0, 0},
10155 {0x15, 0, 0, 0, 0},
10156 {0x16, 0, 0, 0, 0},
10157 {0x17, 0, 0, 0, 0},
10158 {0x18, 0, 0, 0, 0},
10159 {0x19, 0, 0, 0, 0},
10160 {0x1A, 0, 0, 0, 0},
10161 {0x1B, 0, 0, 0, 0},
10162 {0x1C, 0, 0, 0, 0},
10163 {0x1D, 0, 0, 0, 0},
10164 {0x1E, 0, 0, 0, 0},
10165 {0x1F, 0, 0, 0, 0},
10166 {0x20, 0, 0, 0, 0},
10167 {0x21, 0x88, 0x88, 0, 0},
10168 {0x22, 0x88, 0x88, 0, 0},
10169 {0x23, 0x88, 0x88, 0, 0},
10170 {0x24, 0x88, 0x88, 0, 0},
10171 {0x25, 0xc, 0xc, 0, 0},
10172 {0x26, 0, 0, 0, 0},
10173 {0x27, 0x3, 0x3, 0, 0},
10174 {0x28, 0, 0, 0, 0},
10175 {0x29, 0x3, 0x3, 0, 0},
10176 {0x2A, 0x37, 0x37, 0, 0},
10177 {0x2B, 0x3, 0x3, 0, 0},
10178 {0x2C, 0, 0, 0, 0},
10179 {0x2D, 0, 0, 0, 0},
10180 {0x2E, 0x1, 0x1, 0, 0},
10181 {0x2F, 0x1, 0x1, 0, 0},
10182 {0x30, 0, 0, 0, 0},
10183 {0x31, 0, 0, 0, 0},
10184 {0x32, 0, 0, 0, 0},
10185 {0x33, 0x11, 0x11, 0, 0},
10186 {0x34, 0xee, 0xee, 1, 1},
10187 {0x35, 0, 0, 0, 0},
10188 {0x36, 0, 0, 0, 0},
10189 {0x37, 0x3, 0x3, 0, 0},
10190 {0x38, 0x50, 0x50, 1, 1},
10191 {0x39, 0, 0, 0, 0},
10192 {0x3A, 0x50, 0x50, 1, 1},
10193 {0x3B, 0, 0, 0, 0},
10194 {0x3C, 0x6e, 0x6e, 0, 0},
10195 {0x3D, 0xf0, 0xf0, 1, 1},
10196 {0x3E, 0, 0, 0, 0},
10197 {0x3F, 0, 0, 0, 0},
10198 {0x40, 0, 0, 0, 0},
10199 {0x41, 0x3, 0x3, 0, 0},
10200 {0x42, 0x3, 0x3, 0, 0},
10201 {0x43, 0, 0, 0, 0},
10202 {0x44, 0x1e, 0x1e, 0, 0},
10203 {0x45, 0, 0, 0, 0},
10204 {0x46, 0x6e, 0x6e, 0, 0},
10205 {0x47, 0xf0, 0xf0, 1, 1},
10206 {0x48, 0, 0, 0, 0},
10207 {0x49, 0x2, 0x2, 0, 0},
10208 {0x4A, 0xff, 0xff, 1, 1},
10209 {0x4B, 0xc, 0xc, 0, 0},
10210 {0x4C, 0, 0, 0, 0},
10211 {0x4D, 0x38, 0x38, 0, 0},
10212 {0x4E, 0x70, 0x70, 1, 1},
10213 {0x4F, 0x2, 0x2, 0, 0},
10214 {0x50, 0x88, 0x88, 0, 0},
10215 {0x51, 0xc, 0xc, 0, 0},
10216 {0x52, 0, 0, 0, 0},
10217 {0x53, 0x8, 0x8, 0, 0},
10218 {0x54, 0x70, 0x70, 1, 1},
10219 {0x55, 0x2, 0x2, 0, 0},
10220 {0x56, 0xff, 0xff, 1, 1},
10221 {0x57, 0, 0, 0, 0},
10222 {0x58, 0x83, 0x83, 0, 0},
10223 {0x59, 0x77, 0x77, 1, 1},
10224 {0x5A, 0, 0, 0, 0},
10225 {0x5B, 0x2, 0x2, 0, 0},
10226 {0x5C, 0x88, 0x88, 0, 0},
10227 {0x5D, 0, 0, 0, 0},
10228 {0x5E, 0x8, 0x8, 0, 0},
10229 {0x5F, 0x77, 0x77, 1, 1},
10230 {0x60, 0x1, 0x1, 0, 0},
10231 {0x61, 0, 0, 0, 0},
10232 {0x62, 0x7, 0x7, 0, 0},
10233 {0x63, 0, 0, 0, 0},
10234 {0x64, 0x7, 0x7, 0, 0},
10235 {0x65, 0, 0, 0, 0},
10236 {0x66, 0, 0, 0, 0},
10237 {0x67, 0, 0, 1, 1},
10238 {0x68, 0, 0, 0, 0},
10239 {0x69, 0xa, 0xa, 0, 0},
10240 {0x6A, 0, 0, 0, 0},
10241 {0x6B, 0, 0, 0, 0},
10242 {0x6C, 0, 0, 0, 0},
10243 {0x6D, 0, 0, 0, 0},
10244 {0x6E, 0, 0, 0, 0},
10245 {0x6F, 0, 0, 0, 0},
10246 {0x70, 0, 0, 0, 0},
10247 {0x71, 0x2, 0x2, 0, 0},
10248 {0x72, 0, 0, 0, 0},
10249 {0x73, 0, 0, 0, 0},
10250 {0x74, 0xe, 0xe, 0, 0},
10251 {0x75, 0xe, 0xe, 0, 0},
10252 {0x76, 0xe, 0xe, 0, 0},
10253 {0x77, 0x13, 0x13, 0, 0},
10254 {0x78, 0x13, 0x13, 0, 0},
10255 {0x79, 0x1b, 0x1b, 0, 0},
10256 {0x7A, 0x1b, 0x1b, 0, 0},
10257 {0x7B, 0x55, 0x55, 0, 0},
10258 {0x7C, 0x5b, 0x5b, 0, 0},
10259 {0x7D, 0x30, 0x30, 1, 1},
10260 {0x7E, 0, 0, 0, 0},
10261 {0x7F, 0, 0, 0, 0},
10262 {0x80, 0, 0, 0, 0},
10263 {0x81, 0, 0, 0, 0},
10264 {0x82, 0, 0, 0, 0},
10265 {0x83, 0, 0, 0, 0},
10266 {0x84, 0, 0, 0, 0},
10267 {0x85, 0, 0, 0, 0},
10268 {0x86, 0, 0, 0, 0},
10269 {0x87, 0, 0, 0, 0},
10270 {0x88, 0, 0, 0, 0},
10271 {0x89, 0, 0, 0, 0},
10272 {0x8A, 0, 0, 0, 0},
10273 {0x8B, 0, 0, 0, 0},
10274 {0x8C, 0, 0, 0, 0},
10275 {0x8D, 0, 0, 0, 0},
10276 {0x8E, 0, 0, 0, 0},
10277 {0x8F, 0, 0, 0, 0},
10278 {0x90, 0, 0, 0, 0},
10279 {0x91, 0, 0, 0, 0},
10280 {0x92, 0, 0, 0, 0},
10281 {0x93, 0x70, 0x70, 0, 0},
10282 {0x94, 0x70, 0x70, 0, 0},
10283 {0x95, 0x71, 0x71, 1, 1},
10284 {0x96, 0x71, 0x71, 1, 1},
10285 {0x97, 0x72, 0x72, 1, 1},
10286 {0x98, 0x73, 0x73, 1, 1},
10287 {0x99, 0x74, 0x74, 1, 1},
10288 {0x9A, 0x75, 0x75, 1, 1},
10289 {0xFFFF, 0, 0, 0, 0},
10292 static struct radio_regs regs_RX_2056_rev7[] = {
10293 {0x02, 0, 0, 0, 0},
10294 {0x03, 0, 0, 0, 0},
10295 {0x04, 0, 0, 0, 0},
10296 {0x05, 0, 0, 0, 0},
10297 {0x06, 0, 0, 0, 0},
10298 {0x07, 0, 0, 0, 0},
10299 {0x08, 0, 0, 0, 0},
10300 {0x09, 0, 0, 0, 0},
10301 {0x0A, 0, 0, 0, 0},
10302 {0x0B, 0, 0, 0, 0},
10303 {0x0C, 0, 0, 0, 0},
10304 {0x0D, 0, 0, 0, 0},
10305 {0x0E, 0, 0, 0, 0},
10306 {0x0F, 0, 0, 0, 0},
10307 {0x10, 0, 0, 0, 0},
10308 {0x11, 0, 0, 0, 0},
10309 {0x12, 0, 0, 0, 0},
10310 {0x13, 0, 0, 0, 0},
10311 {0x14, 0, 0, 0, 0},
10312 {0x15, 0, 0, 0, 0},
10313 {0x16, 0, 0, 0, 0},
10314 {0x17, 0, 0, 0, 0},
10315 {0x18, 0, 0, 0, 0},
10316 {0x19, 0, 0, 0, 0},
10317 {0x1A, 0, 0, 0, 0},
10318 {0x1B, 0, 0, 0, 0},
10319 {0x1C, 0, 0, 0, 0},
10320 {0x1D, 0, 0, 0, 0},
10321 {0x1E, 0, 0, 0, 0},
10322 {0x1F, 0, 0, 0, 0},
10323 {0x20, 0x3, 0x3, 0, 0},
10324 {0x21, 0, 0, 0, 0},
10325 {0x22, 0, 0, 0, 0},
10326 {0x23, 0x90, 0x90, 0, 0},
10327 {0x24, 0x55, 0x55, 0, 0},
10328 {0x25, 0x15, 0x15, 0, 0},
10329 {0x26, 0x5, 0x5, 0, 0},
10330 {0x27, 0x15, 0x15, 0, 0},
10331 {0x28, 0x5, 0x5, 0, 0},
10332 {0x29, 0x20, 0x20, 0, 0},
10333 {0x2A, 0x11, 0x11, 0, 0},
10334 {0x2B, 0x90, 0x90, 0, 0},
10335 {0x2C, 0, 0, 0, 0},
10336 {0x2D, 0x88, 0x88, 0, 0},
10337 {0x2E, 0x32, 0x32, 0, 0},
10338 {0x2F, 0x77, 0x77, 0, 0},
10339 {0x30, 0x17, 0x17, 1, 1},
10340 {0x31, 0xff, 0xff, 1, 1},
10341 {0x32, 0x20, 0x20, 0, 0},
10342 {0x33, 0, 0, 0, 0},
10343 {0x34, 0x88, 0x88, 0, 0},
10344 {0x35, 0x32, 0x32, 0, 0},
10345 {0x36, 0x77, 0x77, 0, 0},
10346 {0x37, 0x17, 0x17, 1, 1},
10347 {0x38, 0xf0, 0xf0, 1, 1},
10348 {0x39, 0x20, 0x20, 0, 0},
10349 {0x3A, 0x8, 0x8, 0, 0},
10350 {0x3B, 0x55, 0x55, 1, 1},
10351 {0x3C, 0, 0, 0, 0},
10352 {0x3D, 0x88, 0x88, 1, 1},
10353 {0x3E, 0, 0, 0, 0},
10354 {0x3F, 0, 0, 1, 1},
10355 {0x40, 0x7, 0x7, 1, 1},
10356 {0x41, 0x6, 0x6, 0, 0},
10357 {0x42, 0x4, 0x4, 0, 0},
10358 {0x43, 0, 0, 0, 0},
10359 {0x44, 0x8, 0x8, 0, 0},
10360 {0x45, 0x55, 0x55, 1, 1},
10361 {0x46, 0, 0, 0, 0},
10362 {0x47, 0x11, 0x11, 0, 0},
10363 {0x48, 0, 0, 0, 0},
10364 {0x49, 0, 0, 1, 1},
10365 {0x4A, 0x7, 0x7, 0, 0},
10366 {0x4B, 0x6, 0x6, 0, 0},
10367 {0x4C, 0x4, 0x4, 0, 0},
10368 {0x4D, 0, 0, 0, 0},
10369 {0x4E, 0, 0, 0, 0},
10370 {0x4F, 0x26, 0x26, 1, 1},
10371 {0x50, 0x26, 0x26, 1, 1},
10372 {0x51, 0xf, 0xf, 1, 1},
10373 {0x52, 0xf, 0xf, 1, 1},
10374 {0x53, 0x44, 0x44, 0, 0},
10375 {0x54, 0, 0, 0, 0},
10376 {0x55, 0, 0, 0, 0},
10377 {0x56, 0x8, 0x8, 0, 0},
10378 {0x57, 0x8, 0x8, 0, 0},
10379 {0x58, 0x7, 0x7, 0, 0},
10380 {0x59, 0x22, 0x22, 0, 0},
10381 {0x5A, 0x22, 0x22, 0, 0},
10382 {0x5B, 0x2, 0x2, 0, 0},
10383 {0x5C, 0x4, 0x4, 1, 1},
10384 {0x5D, 0x7, 0x7, 0, 0},
10385 {0x5E, 0x55, 0x55, 0, 0},
10386 {0x5F, 0x23, 0x23, 0, 0},
10387 {0x60, 0x41, 0x41, 0, 0},
10388 {0x61, 0x1, 0x1, 0, 0},
10389 {0x62, 0xa, 0xa, 0, 0},
10390 {0x63, 0, 0, 0, 0},
10391 {0x64, 0, 0, 0, 0},
10392 {0x65, 0, 0, 0, 0},
10393 {0x66, 0, 0, 0, 0},
10394 {0x67, 0, 0, 0, 0},
10395 {0x68, 0, 0, 0, 0},
10396 {0x69, 0, 0, 0, 0},
10397 {0x6A, 0, 0, 0, 0},
10398 {0x6B, 0xc, 0xc, 0, 0},
10399 {0x6C, 0, 0, 0, 0},
10400 {0x6D, 0, 0, 0, 0},
10401 {0x6E, 0, 0, 0, 0},
10402 {0x6F, 0, 0, 0, 0},
10403 {0x70, 0, 0, 0, 0},
10404 {0x71, 0, 0, 0, 0},
10405 {0x72, 0x22, 0x22, 0, 0},
10406 {0x73, 0x22, 0x22, 0, 0},
10407 {0x74, 0, 0, 1, 1},
10408 {0x75, 0xa, 0xa, 0, 0},
10409 {0x76, 0x1, 0x1, 0, 0},
10410 {0x77, 0x22, 0x22, 0, 0},
10411 {0x78, 0x30, 0x30, 0, 0},
10412 {0x79, 0, 0, 0, 0},
10413 {0x7A, 0, 0, 0, 0},
10414 {0x7B, 0, 0, 0, 0},
10415 {0x7C, 0, 0, 0, 0},
10416 {0x7D, 0, 0, 0, 0},
10417 {0x7E, 0, 0, 0, 0},
10418 {0x7F, 0, 0, 0, 0},
10419 {0x80, 0, 0, 0, 0},
10420 {0x81, 0, 0, 0, 0},
10421 {0x82, 0, 0, 0, 0},
10422 {0x83, 0, 0, 0, 0},
10423 {0x84, 0, 0, 0, 0},
10424 {0x85, 0, 0, 0, 0},
10425 {0x86, 0, 0, 0, 0},
10426 {0x87, 0, 0, 0, 0},
10427 {0x88, 0, 0, 0, 0},
10428 {0x89, 0, 0, 0, 0},
10429 {0x8A, 0, 0, 0, 0},
10430 {0x8B, 0, 0, 0, 0},
10431 {0x8C, 0, 0, 0, 0},
10432 {0x8D, 0, 0, 0, 0},
10433 {0x8E, 0, 0, 0, 0},
10434 {0x8F, 0, 0, 0, 0},
10435 {0x90, 0, 0, 0, 0},
10436 {0x91, 0, 0, 0, 0},
10437 {0x92, 0, 0, 0, 0},
10438 {0x93, 0, 0, 0, 0},
10439 {0x94, 0, 0, 0, 0},
10440 {0xFFFF, 0, 0, 0, 0},
10443 static struct radio_regs regs_SYN_2056_rev8[] = {
10444 {0x02, 0, 0, 0, 0},
10445 {0x03, 0, 0, 0, 0},
10446 {0x04, 0, 0, 0, 0},
10447 {0x05, 0, 0, 0, 0},
10448 {0x06, 0, 0, 0, 0},
10449 {0x07, 0, 0, 0, 0},
10450 {0x08, 0, 0, 0, 0},
10451 {0x09, 0x1, 0x1, 0, 0},
10452 {0x0A, 0, 0, 0, 0},
10453 {0x0B, 0, 0, 0, 0},
10454 {0x0C, 0, 0, 0, 0},
10455 {0x0D, 0, 0, 0, 0},
10456 {0x0E, 0, 0, 0, 0},
10457 {0x0F, 0, 0, 0, 0},
10458 {0x10, 0, 0, 0, 0},
10459 {0x11, 0, 0, 0, 0},
10460 {0x12, 0, 0, 0, 0},
10461 {0x13, 0, 0, 0, 0},
10462 {0x14, 0, 0, 0, 0},
10463 {0x15, 0, 0, 0, 0},
10464 {0x16, 0, 0, 0, 0},
10465 {0x17, 0, 0, 0, 0},
10466 {0x18, 0, 0, 0, 0},
10467 {0x19, 0, 0, 0, 0},
10468 {0x1A, 0, 0, 0, 0},
10469 {0x1B, 0, 0, 0, 0},
10470 {0x1C, 0, 0, 0, 0},
10471 {0x1D, 0, 0, 0, 0},
10472 {0x1E, 0, 0, 0, 0},
10473 {0x1F, 0, 0, 0, 0},
10474 {0x20, 0, 0, 0, 0},
10475 {0x21, 0, 0, 0, 0},
10476 {0x22, 0x60, 0x60, 0, 0},
10477 {0x23, 0x6, 0x6, 0, 0},
10478 {0x24, 0xc, 0xc, 0, 0},
10479 {0x25, 0, 0, 0, 0},
10480 {0x26, 0, 0, 0, 0},
10481 {0x27, 0, 0, 0, 0},
10482 {0x28, 0x1, 0x1, 0, 0},
10483 {0x29, 0, 0, 0, 0},
10484 {0x2A, 0, 0, 0, 0},
10485 {0x2B, 0, 0, 0, 0},
10486 {0x2C, 0, 0, 0, 0},
10487 {0x2D, 0, 0, 0, 0},
10488 {0x2E, 0, 0, 0, 0},
10489 {0x2F, 0x1f, 0x1f, 0, 0},
10490 {0x30, 0x15, 0x15, 0, 0},
10491 {0x31, 0xf, 0xf, 0, 0},
10492 {0x32, 0, 0, 0, 0},
10493 {0x33, 0, 0, 0, 0},
10494 {0x34, 0, 0, 0, 0},
10495 {0x35, 0, 0, 0, 0},
10496 {0x36, 0, 0, 0, 0},
10497 {0x37, 0, 0, 0, 0},
10498 {0x38, 0, 0, 0, 0},
10499 {0x39, 0, 0, 0, 0},
10500 {0x3A, 0, 0, 0, 0},
10501 {0x3B, 0, 0, 0, 0},
10502 {0x3C, 0x13, 0x13, 0, 0},
10503 {0x3D, 0xf, 0xf, 0, 0},
10504 {0x3E, 0x18, 0x18, 0, 0},
10505 {0x3F, 0, 0, 0, 0},
10506 {0x40, 0, 0, 0, 0},
10507 {0x41, 0x20, 0x20, 0, 0},
10508 {0x42, 0x20, 0x20, 0, 0},
10509 {0x43, 0, 0, 0, 0},
10510 {0x44, 0x77, 0x77, 0, 0},
10511 {0x45, 0x7, 0x7, 0, 0},
10512 {0x46, 0x1, 0x1, 0, 0},
10513 {0x47, 0x4, 0x4, 0, 0},
10514 {0x48, 0xf, 0xf, 0, 0},
10515 {0x49, 0x30, 0x30, 0, 0},
10516 {0x4A, 0x32, 0x32, 0, 0},
10517 {0x4B, 0xd, 0xd, 0, 0},
10518 {0x4C, 0xd, 0xd, 0, 0},
10519 {0x4D, 0x4, 0x4, 0, 0},
10520 {0x4E, 0x6, 0x6, 0, 0},
10521 {0x4F, 0x1, 0x1, 0, 0},
10522 {0x50, 0x1c, 0x1c, 0, 0},
10523 {0x51, 0x2, 0x2, 0, 0},
10524 {0x52, 0x2, 0x2, 0, 0},
10525 {0x53, 0xf7, 0xf7, 1, 1},
10526 {0x54, 0xb4, 0xb4, 0, 0},
10527 {0x55, 0xd2, 0xd2, 0, 0},
10528 {0x56, 0, 0, 0, 0},
10529 {0x57, 0, 0, 0, 0},
10530 {0x58, 0x4, 0x4, 0, 0},
10531 {0x59, 0x96, 0x96, 0, 0},
10532 {0x5A, 0x3e, 0x3e, 0, 0},
10533 {0x5B, 0x3e, 0x3e, 0, 0},
10534 {0x5C, 0x13, 0x13, 0, 0},
10535 {0x5D, 0x2, 0x2, 0, 0},
10536 {0x5E, 0, 0, 0, 0},
10537 {0x5F, 0x7, 0x7, 0, 0},
10538 {0x60, 0x7, 0x7, 1, 1},
10539 {0x61, 0x8, 0x8, 0, 0},
10540 {0x62, 0x3, 0x3, 0, 0},
10541 {0x63, 0, 0, 0, 0},
10542 {0x64, 0, 0, 0, 0},
10543 {0x65, 0, 0, 0, 0},
10544 {0x66, 0, 0, 0, 0},
10545 {0x67, 0, 0, 0, 0},
10546 {0x68, 0x40, 0x40, 0, 0},
10547 {0x69, 0, 0, 0, 0},
10548 {0x6A, 0, 0, 0, 0},
10549 {0x6B, 0, 0, 0, 0},
10550 {0x6C, 0, 0, 0, 0},
10551 {0x6D, 0x1, 0x1, 0, 0},
10552 {0x6E, 0, 0, 0, 0},
10553 {0x6F, 0, 0, 0, 0},
10554 {0x70, 0x60, 0x60, 0, 0},
10555 {0x71, 0x66, 0x66, 0, 0},
10556 {0x72, 0xc, 0xc, 0, 0},
10557 {0x73, 0x66, 0x66, 0, 0},
10558 {0x74, 0x8f, 0x8f, 1, 1},
10559 {0x75, 0, 0, 0, 0},
10560 {0x76, 0xcc, 0xcc, 0, 0},
10561 {0x77, 0x1, 0x1, 0, 0},
10562 {0x78, 0x66, 0x66, 0, 0},
10563 {0x79, 0x66, 0x66, 0, 0},
10564 {0x7A, 0, 0, 0, 0},
10565 {0x7B, 0, 0, 0, 0},
10566 {0x7C, 0, 0, 0, 0},
10567 {0x7D, 0, 0, 0, 0},
10568 {0x7E, 0, 0, 0, 0},
10569 {0x7F, 0, 0, 0, 0},
10570 {0x80, 0, 0, 0, 0},
10571 {0x81, 0, 0, 0, 0},
10572 {0x82, 0, 0, 0, 0},
10573 {0x83, 0, 0, 0, 0},
10574 {0x84, 0, 0, 0, 0},
10575 {0x85, 0xff, 0xff, 0, 0},
10576 {0x86, 0, 0, 0, 0},
10577 {0x87, 0, 0, 0, 0},
10578 {0x88, 0, 0, 0, 0},
10579 {0x89, 0, 0, 0, 0},
10580 {0x8A, 0, 0, 0, 0},
10581 {0x8B, 0, 0, 0, 0},
10582 {0x8C, 0, 0, 0, 0},
10583 {0x8D, 0, 0, 0, 0},
10584 {0x8E, 0, 0, 0, 0},
10585 {0x8F, 0, 0, 0, 0},
10586 {0x90, 0, 0, 0, 0},
10587 {0x91, 0, 0, 0, 0},
10588 {0x92, 0, 0, 0, 0},
10589 {0x93, 0, 0, 0, 0},
10590 {0x94, 0, 0, 0, 0},
10591 {0x95, 0, 0, 0, 0},
10592 {0x96, 0, 0, 0, 0},
10593 {0x97, 0, 0, 0, 0},
10594 {0x98, 0, 0, 0, 0},
10595 {0x99, 0, 0, 0, 0},
10596 {0x9A, 0, 0, 0, 0},
10597 {0x9B, 0, 0, 0, 0},
10598 {0x9C, 0, 0, 0, 0},
10599 {0x9D, 0, 0, 0, 0},
10600 {0x9E, 0, 0, 0, 0},
10601 {0x9F, 0x6, 0x6, 0, 0},
10602 {0xA0, 0x66, 0x66, 0, 0},
10603 {0xA1, 0x66, 0x66, 0, 0},
10604 {0xA2, 0x66, 0x66, 0, 0},
10605 {0xA3, 0x66, 0x66, 0, 0},
10606 {0xA4, 0x66, 0x66, 0, 0},
10607 {0xA5, 0x66, 0x66, 0, 0},
10608 {0xA6, 0x66, 0x66, 0, 0},
10609 {0xA7, 0x66, 0x66, 0, 0},
10610 {0xA8, 0x66, 0x66, 0, 0},
10611 {0xA9, 0x66, 0x66, 0, 0},
10612 {0xAA, 0x66, 0x66, 0, 0},
10613 {0xAB, 0x66, 0x66, 0, 0},
10614 {0xAC, 0x66, 0x66, 0, 0},
10615 {0xAD, 0x66, 0x66, 0, 0},
10616 {0xAE, 0x66, 0x66, 0, 0},
10617 {0xAF, 0x66, 0x66, 0, 0},
10618 {0xB0, 0x66, 0x66, 0, 0},
10619 {0xB1, 0x66, 0x66, 0, 0},
10620 {0xB2, 0x66, 0x66, 0, 0},
10621 {0xB3, 0xa, 0xa, 0, 0},
10622 {0xB4, 0, 0, 0, 0},
10623 {0xB5, 0, 0, 0, 0},
10624 {0xB6, 0, 0, 0, 0},
10625 {0xFFFF, 0, 0, 0, 0},
10628 static struct radio_regs regs_TX_2056_rev8[] = {
10629 {0x02, 0, 0, 0, 0},
10630 {0x03, 0, 0, 0, 0},
10631 {0x04, 0, 0, 0, 0},
10632 {0x05, 0, 0, 0, 0},
10633 {0x06, 0, 0, 0, 0},
10634 {0x07, 0, 0, 0, 0},
10635 {0x08, 0, 0, 0, 0},
10636 {0x09, 0, 0, 0, 0},
10637 {0x0A, 0, 0, 0, 0},
10638 {0x0B, 0, 0, 0, 0},
10639 {0x0C, 0, 0, 0, 0},
10640 {0x0D, 0, 0, 0, 0},
10641 {0x0E, 0, 0, 0, 0},
10642 {0x0F, 0, 0, 0, 0},
10643 {0x10, 0, 0, 0, 0},
10644 {0x11, 0, 0, 0, 0},
10645 {0x12, 0, 0, 0, 0},
10646 {0x13, 0, 0, 0, 0},
10647 {0x14, 0, 0, 0, 0},
10648 {0x15, 0, 0, 0, 0},
10649 {0x16, 0, 0, 0, 0},
10650 {0x17, 0, 0, 0, 0},
10651 {0x18, 0, 0, 0, 0},
10652 {0x19, 0, 0, 0, 0},
10653 {0x1A, 0, 0, 0, 0},
10654 {0x1B, 0, 0, 0, 0},
10655 {0x1C, 0, 0, 0, 0},
10656 {0x1D, 0, 0, 0, 0},
10657 {0x1E, 0, 0, 0, 0},
10658 {0x1F, 0, 0, 0, 0},
10659 {0x20, 0, 0, 0, 0},
10660 {0x21, 0x88, 0x88, 0, 0},
10661 {0x22, 0x88, 0x88, 0, 0},
10662 {0x23, 0x88, 0x88, 0, 0},
10663 {0x24, 0x88, 0x88, 0, 0},
10664 {0x25, 0xc, 0xc, 0, 0},
10665 {0x26, 0, 0, 0, 0},
10666 {0x27, 0x3, 0x3, 0, 0},
10667 {0x28, 0, 0, 0, 0},
10668 {0x29, 0x3, 0x3, 0, 0},
10669 {0x2A, 0x37, 0x37, 0, 0},
10670 {0x2B, 0x3, 0x3, 0, 0},
10671 {0x2C, 0, 0, 0, 0},
10672 {0x2D, 0, 0, 0, 0},
10673 {0x2E, 0x1, 0x1, 0, 0},
10674 {0x2F, 0x1, 0x1, 0, 0},
10675 {0x30, 0, 0, 0, 0},
10676 {0x31, 0, 0, 0, 0},
10677 {0x32, 0, 0, 0, 0},
10678 {0x33, 0x11, 0x11, 0, 0},
10679 {0x34, 0xee, 0xee, 1, 1},
10680 {0x35, 0, 0, 0, 0},
10681 {0x36, 0, 0, 0, 0},
10682 {0x37, 0x3, 0x3, 0, 0},
10683 {0x38, 0x50, 0x50, 1, 1},
10684 {0x39, 0, 0, 0, 0},
10685 {0x3A, 0x50, 0x50, 1, 1},
10686 {0x3B, 0, 0, 0, 0},
10687 {0x3C, 0x6e, 0x6e, 0, 0},
10688 {0x3D, 0xf0, 0xf0, 1, 1},
10689 {0x3E, 0, 0, 0, 0},
10690 {0x3F, 0, 0, 0, 0},
10691 {0x40, 0, 0, 0, 0},
10692 {0x41, 0x3, 0x3, 0, 0},
10693 {0x42, 0x3, 0x3, 0, 0},
10694 {0x43, 0, 0, 0, 0},
10695 {0x44, 0x1e, 0x1e, 0, 0},
10696 {0x45, 0, 0, 0, 0},
10697 {0x46, 0x6e, 0x6e, 0, 0},
10698 {0x47, 0xf0, 0xf0, 1, 1},
10699 {0x48, 0, 0, 0, 0},
10700 {0x49, 0x2, 0x2, 0, 0},
10701 {0x4A, 0xff, 0xff, 1, 1},
10702 {0x4B, 0xc, 0xc, 0, 0},
10703 {0x4C, 0, 0, 0, 0},
10704 {0x4D, 0x38, 0x38, 0, 0},
10705 {0x4E, 0x70, 0x70, 1, 1},
10706 {0x4F, 0x2, 0x2, 0, 0},
10707 {0x50, 0x88, 0x88, 0, 0},
10708 {0x51, 0xc, 0xc, 0, 0},
10709 {0x52, 0, 0, 0, 0},
10710 {0x53, 0x8, 0x8, 0, 0},
10711 {0x54, 0x70, 0x70, 1, 1},
10712 {0x55, 0x2, 0x2, 0, 0},
10713 {0x56, 0xff, 0xff, 1, 1},
10714 {0x57, 0, 0, 0, 0},
10715 {0x58, 0x83, 0x83, 0, 0},
10716 {0x59, 0x77, 0x77, 1, 1},
10717 {0x5A, 0, 0, 0, 0},
10718 {0x5B, 0x2, 0x2, 0, 0},
10719 {0x5C, 0x88, 0x88, 0, 0},
10720 {0x5D, 0, 0, 0, 0},
10721 {0x5E, 0x8, 0x8, 0, 0},
10722 {0x5F, 0x77, 0x77, 1, 1},
10723 {0x60, 0x1, 0x1, 0, 0},
10724 {0x61, 0, 0, 0, 0},
10725 {0x62, 0x7, 0x7, 0, 0},
10726 {0x63, 0, 0, 0, 0},
10727 {0x64, 0x7, 0x7, 0, 0},
10728 {0x65, 0, 0, 0, 0},
10729 {0x66, 0, 0, 0, 0},
10730 {0x67, 0, 0, 1, 1},
10731 {0x68, 0, 0, 0, 0},
10732 {0x69, 0xa, 0xa, 0, 0},
10733 {0x6A, 0, 0, 0, 0},
10734 {0x6B, 0, 0, 0, 0},
10735 {0x6C, 0, 0, 0, 0},
10736 {0x6D, 0, 0, 0, 0},
10737 {0x6E, 0, 0, 0, 0},
10738 {0x6F, 0, 0, 0, 0},
10739 {0x70, 0, 0, 0, 0},
10740 {0x71, 0x2, 0x2, 0, 0},
10741 {0x72, 0, 0, 0, 0},
10742 {0x73, 0, 0, 0, 0},
10743 {0x74, 0xe, 0xe, 0, 0},
10744 {0x75, 0xe, 0xe, 0, 0},
10745 {0x76, 0xe, 0xe, 0, 0},
10746 {0x77, 0x13, 0x13, 0, 0},
10747 {0x78, 0x13, 0x13, 0, 0},
10748 {0x79, 0x1b, 0x1b, 0, 0},
10749 {0x7A, 0x1b, 0x1b, 0, 0},
10750 {0x7B, 0x55, 0x55, 0, 0},
10751 {0x7C, 0x5b, 0x5b, 0, 0},
10752 {0x7D, 0x30, 0x30, 1, 1},
10753 {0x7E, 0, 0, 0, 0},
10754 {0x7F, 0, 0, 0, 0},
10755 {0x80, 0, 0, 0, 0},
10756 {0x81, 0, 0, 0, 0},
10757 {0x82, 0, 0, 0, 0},
10758 {0x83, 0, 0, 0, 0},
10759 {0x84, 0, 0, 0, 0},
10760 {0x85, 0, 0, 0, 0},
10761 {0x86, 0, 0, 0, 0},
10762 {0x87, 0, 0, 0, 0},
10763 {0x88, 0, 0, 0, 0},
10764 {0x89, 0, 0, 0, 0},
10765 {0x8A, 0, 0, 0, 0},
10766 {0x8B, 0, 0, 0, 0},
10767 {0x8C, 0, 0, 0, 0},
10768 {0x8D, 0, 0, 0, 0},
10769 {0x8E, 0, 0, 0, 0},
10770 {0x8F, 0, 0, 0, 0},
10771 {0x90, 0, 0, 0, 0},
10772 {0x91, 0, 0, 0, 0},
10773 {0x92, 0, 0, 0, 0},
10774 {0x93, 0x70, 0x70, 0, 0},
10775 {0x94, 0x70, 0x70, 0, 0},
10776 {0x95, 0x70, 0x70, 0, 0},
10777 {0x96, 0x70, 0x70, 0, 0},
10778 {0x97, 0x70, 0x70, 0, 0},
10779 {0x98, 0x70, 0x70, 0, 0},
10780 {0x99, 0x70, 0x70, 0, 0},
10781 {0x9A, 0x70, 0x70, 0, 0},
10782 {0xFFFF, 0, 0, 0, 0},
10785 static struct radio_regs regs_RX_2056_rev8[] = {
10786 {0x02, 0, 0, 0, 0},
10787 {0x03, 0, 0, 0, 0},
10788 {0x04, 0, 0, 0, 0},
10789 {0x05, 0, 0, 0, 0},
10790 {0x06, 0, 0, 0, 0},
10791 {0x07, 0, 0, 0, 0},
10792 {0x08, 0, 0, 0, 0},
10793 {0x09, 0, 0, 0, 0},
10794 {0x0A, 0, 0, 0, 0},
10795 {0x0B, 0, 0, 0, 0},
10796 {0x0C, 0, 0, 0, 0},
10797 {0x0D, 0, 0, 0, 0},
10798 {0x0E, 0, 0, 0, 0},
10799 {0x0F, 0, 0, 0, 0},
10800 {0x10, 0, 0, 0, 0},
10801 {0x11, 0, 0, 0, 0},
10802 {0x12, 0, 0, 0, 0},
10803 {0x13, 0, 0, 0, 0},
10804 {0x14, 0, 0, 0, 0},
10805 {0x15, 0, 0, 0, 0},
10806 {0x16, 0, 0, 0, 0},
10807 {0x17, 0, 0, 0, 0},
10808 {0x18, 0, 0, 0, 0},
10809 {0x19, 0, 0, 0, 0},
10810 {0x1A, 0, 0, 0, 0},
10811 {0x1B, 0, 0, 0, 0},
10812 {0x1C, 0, 0, 0, 0},
10813 {0x1D, 0, 0, 0, 0},
10814 {0x1E, 0, 0, 0, 0},
10815 {0x1F, 0, 0, 0, 0},
10816 {0x20, 0x3, 0x3, 0, 0},
10817 {0x21, 0, 0, 0, 0},
10818 {0x22, 0, 0, 0, 0},
10819 {0x23, 0x90, 0x90, 0, 0},
10820 {0x24, 0x55, 0x55, 0, 0},
10821 {0x25, 0x15, 0x15, 0, 0},
10822 {0x26, 0x5, 0x5, 0, 0},
10823 {0x27, 0x15, 0x15, 0, 0},
10824 {0x28, 0x5, 0x5, 0, 0},
10825 {0x29, 0x20, 0x20, 0, 0},
10826 {0x2A, 0x11, 0x11, 0, 0},
10827 {0x2B, 0x90, 0x90, 0, 0},
10828 {0x2C, 0, 0, 0, 0},
10829 {0x2D, 0x88, 0x88, 0, 0},
10830 {0x2E, 0x32, 0x32, 0, 0},
10831 {0x2F, 0x77, 0x77, 0, 0},
10832 {0x30, 0x17, 0x17, 1, 1},
10833 {0x31, 0xff, 0xff, 1, 1},
10834 {0x32, 0x20, 0x20, 0, 0},
10835 {0x33, 0, 0, 0, 0},
10836 {0x34, 0x88, 0x88, 0, 0},
10837 {0x35, 0x32, 0x32, 0, 0},
10838 {0x36, 0x77, 0x77, 0, 0},
10839 {0x37, 0x17, 0x17, 1, 1},
10840 {0x38, 0xf0, 0xf0, 1, 1},
10841 {0x39, 0x20, 0x20, 0, 0},
10842 {0x3A, 0x8, 0x8, 0, 0},
10843 {0x3B, 0x55, 0x55, 1, 1},
10844 {0x3C, 0, 0, 0, 0},
10845 {0x3D, 0x88, 0x88, 1, 1},
10846 {0x3E, 0, 0, 0, 0},
10847 {0x3F, 0x44, 0x44, 0, 0},
10848 {0x40, 0x7, 0x7, 1, 1},
10849 {0x41, 0x6, 0x6, 0, 0},
10850 {0x42, 0x4, 0x4, 0, 0},
10851 {0x43, 0, 0, 0, 0},
10852 {0x44, 0x8, 0x8, 0, 0},
10853 {0x45, 0x55, 0x55, 1, 1},
10854 {0x46, 0, 0, 0, 0},
10855 {0x47, 0x11, 0x11, 0, 0},
10856 {0x48, 0, 0, 0, 0},
10857 {0x49, 0x44, 0x44, 0, 0},
10858 {0x4A, 0x7, 0x7, 0, 0},
10859 {0x4B, 0x6, 0x6, 0, 0},
10860 {0x4C, 0x4, 0x4, 0, 0},
10861 {0x4D, 0, 0, 0, 0},
10862 {0x4E, 0, 0, 0, 0},
10863 {0x4F, 0x26, 0x26, 1, 1},
10864 {0x50, 0x26, 0x26, 1, 1},
10865 {0x51, 0xf, 0xf, 1, 1},
10866 {0x52, 0xf, 0xf, 1, 1},
10867 {0x53, 0x44, 0x44, 0, 0},
10868 {0x54, 0, 0, 0, 0},
10869 {0x55, 0, 0, 0, 0},
10870 {0x56, 0x8, 0x8, 0, 0},
10871 {0x57, 0x8, 0x8, 0, 0},
10872 {0x58, 0x7, 0x7, 0, 0},
10873 {0x59, 0x22, 0x22, 0, 0},
10874 {0x5A, 0x22, 0x22, 0, 0},
10875 {0x5B, 0x2, 0x2, 0, 0},
10876 {0x5C, 0x4, 0x4, 1, 1},
10877 {0x5D, 0x7, 0x7, 0, 0},
10878 {0x5E, 0x55, 0x55, 0, 0},
10879 {0x5F, 0x23, 0x23, 0, 0},
10880 {0x60, 0x41, 0x41, 0, 0},
10881 {0x61, 0x1, 0x1, 0, 0},
10882 {0x62, 0xa, 0xa, 0, 0},
10883 {0x63, 0, 0, 0, 0},
10884 {0x64, 0, 0, 0, 0},
10885 {0x65, 0, 0, 0, 0},
10886 {0x66, 0, 0, 0, 0},
10887 {0x67, 0, 0, 0, 0},
10888 {0x68, 0, 0, 0, 0},
10889 {0x69, 0, 0, 0, 0},
10890 {0x6A, 0, 0, 0, 0},
10891 {0x6B, 0xc, 0xc, 0, 0},
10892 {0x6C, 0, 0, 0, 0},
10893 {0x6D, 0, 0, 0, 0},
10894 {0x6E, 0, 0, 0, 0},
10895 {0x6F, 0, 0, 0, 0},
10896 {0x70, 0, 0, 0, 0},
10897 {0x71, 0, 0, 0, 0},
10898 {0x72, 0x22, 0x22, 0, 0},
10899 {0x73, 0x22, 0x22, 0, 0},
10900 {0x74, 0, 0, 1, 1},
10901 {0x75, 0xa, 0xa, 0, 0},
10902 {0x76, 0x1, 0x1, 0, 0},
10903 {0x77, 0x22, 0x22, 0, 0},
10904 {0x78, 0x30, 0x30, 0, 0},
10905 {0x79, 0, 0, 0, 0},
10906 {0x7A, 0, 0, 0, 0},
10907 {0x7B, 0, 0, 0, 0},
10908 {0x7C, 0, 0, 0, 0},
10909 {0x7D, 0x5, 0x5, 1, 1},
10910 {0x7E, 0, 0, 0, 0},
10911 {0x7F, 0, 0, 0, 0},
10912 {0x80, 0, 0, 0, 0},
10913 {0x81, 0, 0, 0, 0},
10914 {0x82, 0, 0, 0, 0},
10915 {0x83, 0, 0, 0, 0},
10916 {0x84, 0, 0, 0, 0},
10917 {0x85, 0, 0, 0, 0},
10918 {0x86, 0, 0, 0, 0},
10919 {0x87, 0, 0, 0, 0},
10920 {0x88, 0, 0, 0, 0},
10921 {0x89, 0, 0, 0, 0},
10922 {0x8A, 0, 0, 0, 0},
10923 {0x8B, 0, 0, 0, 0},
10924 {0x8C, 0, 0, 0, 0},
10925 {0x8D, 0, 0, 0, 0},
10926 {0x8E, 0, 0, 0, 0},
10927 {0x8F, 0, 0, 0, 0},
10928 {0x90, 0, 0, 0, 0},
10929 {0x91, 0, 0, 0, 0},
10930 {0x92, 0, 0, 0, 0},
10931 {0x93, 0, 0, 0, 0},
10932 {0x94, 0, 0, 0, 0},
10933 {0xFFFF, 0, 0, 0, 0},
10936 static const struct radio_regs regs_SYN_2056_rev11[] = {
10937 {0x02, 0, 0, 0, 0},
10938 {0x03, 0, 0, 0, 0},
10939 {0x04, 0, 0, 0, 0},
10940 {0x05, 0, 0, 0, 0},
10941 {0x06, 0, 0, 0, 0},
10942 {0x07, 0, 0, 0, 0},
10943 {0x08, 0, 0, 0, 0},
10944 {0x09, 0x1, 0x1, 0, 0},
10945 {0x0A, 0, 0, 0, 0},
10946 {0x0B, 0, 0, 0, 0},
10947 {0x0C, 0, 0, 0, 0},
10948 {0x0D, 0, 0, 0, 0},
10949 {0x0E, 0, 0, 0, 0},
10950 {0x0F, 0, 0, 0, 0},
10951 {0x10, 0, 0, 0, 0},
10952 {0x11, 0, 0, 0, 0},
10953 {0x12, 0, 0, 0, 0},
10954 {0x13, 0, 0, 0, 0},
10955 {0x14, 0, 0, 0, 0},
10956 {0x15, 0, 0, 0, 0},
10957 {0x16, 0, 0, 0, 0},
10958 {0x17, 0, 0, 0, 0},
10959 {0x18, 0, 0, 0, 0},
10960 {0x19, 0, 0, 0, 0},
10961 {0x1A, 0, 0, 0, 0},
10962 {0x1B, 0, 0, 0, 0},
10963 {0x1C, 0, 0, 0, 0},
10964 {0x1D, 0, 0, 0, 0},
10965 {0x1E, 0, 0, 0, 0},
10966 {0x1F, 0, 0, 0, 0},
10967 {0x20, 0, 0, 0, 0},
10968 {0x21, 0, 0, 0, 0},
10969 {0x22, 0x60, 0x60, 0, 0},
10970 {0x23, 0x6, 0x6, 0, 0},
10971 {0x24, 0xc, 0xc, 0, 0},
10972 {0x25, 0, 0, 0, 0},
10973 {0x26, 0, 0, 0, 0},
10974 {0x27, 0, 0, 0, 0},
10975 {0x28, 0x1, 0x1, 0, 0},
10976 {0x29, 0, 0, 0, 0},
10977 {0x2A, 0, 0, 0, 0},
10978 {0x2B, 0, 0, 0, 0},
10979 {0x2C, 0, 0, 0, 0},
10980 {0x2D, 0, 0, 0, 0},
10981 {0x2E, 0, 0, 0, 0},
10982 {0x2F, 0x1f, 0x1f, 0, 0},
10983 {0x30, 0x15, 0x15, 0, 0},
10984 {0x31, 0xf, 0xf, 0, 0},
10985 {0x32, 0, 0, 0, 0},
10986 {0x33, 0, 0, 0, 0},
10987 {0x34, 0, 0, 0, 0},
10988 {0x35, 0, 0, 0, 0},
10989 {0x36, 0, 0, 0, 0},
10990 {0x37, 0, 0, 0, 0},
10991 {0x38, 0, 0, 0, 0},
10992 {0x39, 0, 0, 0, 0},
10993 {0x3A, 0, 0, 0, 0},
10994 {0x3B, 0, 0, 0, 0},
10995 {0x3C, 0x13, 0x13, 0, 0},
10996 {0x3D, 0xf, 0xf, 0, 0},
10997 {0x3E, 0x18, 0x18, 0, 0},
10998 {0x3F, 0, 0, 0, 0},
10999 {0x40, 0, 0, 0, 0},
11000 {0x41, 0x20, 0x20, 0, 0},
11001 {0x42, 0x20, 0x20, 0, 0},
11002 {0x43, 0, 0, 0, 0},
11003 {0x44, 0x77, 0x77, 0, 0},
11004 {0x45, 0x7, 0x7, 0, 0},
11005 {0x46, 0x1, 0x1, 0, 0},
11006 {0x47, 0x6, 0x6, 1, 1},
11007 {0x48, 0xf, 0xf, 0, 0},
11008 {0x49, 0x3f, 0x3f, 1, 1},
11009 {0x4A, 0x32, 0x32, 0, 0},
11010 {0x4B, 0x6, 0x6, 1, 1},
11011 {0x4C, 0x6, 0x6, 1, 1},
11012 {0x4D, 0x4, 0x4, 0, 0},
11013 {0x4E, 0x2b, 0x2b, 1, 1},
11014 {0x4F, 0x1, 0x1, 0, 0},
11015 {0x50, 0x1c, 0x1c, 0, 0},
11016 {0x51, 0x2, 0x2, 0, 0},
11017 {0x52, 0x2, 0x2, 0, 0},
11018 {0x53, 0xf7, 0xf7, 1, 1},
11019 {0x54, 0xb4, 0xb4, 0, 0},
11020 {0x55, 0xd2, 0xd2, 0, 0},
11021 {0x56, 0, 0, 0, 0},
11022 {0x57, 0, 0, 0, 0},
11023 {0x58, 0x4, 0x4, 0, 0},
11024 {0x59, 0x96, 0x96, 0, 0},
11025 {0x5A, 0x3e, 0x3e, 0, 0},
11026 {0x5B, 0x3e, 0x3e, 0, 0},
11027 {0x5C, 0x13, 0x13, 0, 0},
11028 {0x5D, 0x2, 0x2, 0, 0},
11029 {0x5E, 0, 0, 0, 0},
11030 {0x5F, 0x7, 0x7, 0, 0},
11031 {0x60, 0x7, 0x7, 1, 1},
11032 {0x61, 0x8, 0x8, 0, 0},
11033 {0x62, 0x3, 0x3, 0, 0},
11034 {0x63, 0, 0, 0, 0},
11035 {0x64, 0, 0, 0, 0},
11036 {0x65, 0, 0, 0, 0},
11037 {0x66, 0, 0, 0, 0},
11038 {0x67, 0, 0, 0, 0},
11039 {0x68, 0x40, 0x40, 0, 0},
11040 {0x69, 0, 0, 0, 0},
11041 {0x6A, 0, 0, 0, 0},
11042 {0x6B, 0, 0, 0, 0},
11043 {0x6C, 0, 0, 0, 0},
11044 {0x6D, 0x1, 0x1, 0, 0},
11045 {0x6E, 0, 0, 0, 0},
11046 {0x6F, 0, 0, 0, 0},
11047 {0x70, 0x60, 0x60, 0, 0},
11048 {0x71, 0x66, 0x66, 0, 0},
11049 {0x72, 0xc, 0xc, 0, 0},
11050 {0x73, 0x66, 0x66, 0, 0},
11051 {0x74, 0x8f, 0x8f, 1, 1},
11052 {0x75, 0, 0, 0, 0},
11053 {0x76, 0xcc, 0xcc, 0, 0},
11054 {0x77, 0x1, 0x1, 0, 0},
11055 {0x78, 0x66, 0x66, 0, 0},
11056 {0x79, 0x66, 0x66, 0, 0},
11057 {0x7A, 0, 0, 0, 0},
11058 {0x7B, 0, 0, 0, 0},
11059 {0x7C, 0, 0, 0, 0},
11060 {0x7D, 0, 0, 0, 0},
11061 {0x7E, 0, 0, 0, 0},
11062 {0x7F, 0, 0, 0, 0},
11063 {0x80, 0, 0, 0, 0},
11064 {0x81, 0, 0, 0, 0},
11065 {0x82, 0, 0, 0, 0},
11066 {0x83, 0, 0, 0, 0},
11067 {0x84, 0, 0, 0, 0},
11068 {0x85, 0xff, 0xff, 0, 0},
11069 {0x86, 0, 0, 0, 0},
11070 {0x87, 0, 0, 0, 0},
11071 {0x88, 0, 0, 0, 0},
11072 {0x89, 0, 0, 0, 0},
11073 {0x8A, 0, 0, 0, 0},
11074 {0x8B, 0, 0, 0, 0},
11075 {0x8C, 0, 0, 0, 0},
11076 {0x8D, 0, 0, 0, 0},
11077 {0x8E, 0, 0, 0, 0},
11078 {0x8F, 0, 0, 0, 0},
11079 {0x90, 0, 0, 0, 0},
11080 {0x91, 0, 0, 0, 0},
11081 {0x92, 0, 0, 0, 0},
11082 {0x93, 0, 0, 0, 0},
11083 {0x94, 0, 0, 0, 0},
11084 {0x95, 0, 0, 0, 0},
11085 {0x96, 0, 0, 0, 0},
11086 {0x97, 0, 0, 0, 0},
11087 {0x98, 0, 0, 0, 0},
11088 {0x99, 0, 0, 0, 0},
11089 {0x9A, 0, 0, 0, 0},
11090 {0x9B, 0, 0, 0, 0},
11091 {0x9C, 0, 0, 0, 0},
11092 {0x9D, 0, 0, 0, 0},
11093 {0x9E, 0, 0, 0, 0},
11094 {0x9F, 0x6, 0x6, 0, 0},
11095 {0xA0, 0x66, 0x66, 0, 0},
11096 {0xA1, 0x66, 0x66, 0, 0},
11097 {0xA2, 0x66, 0x66, 0, 0},
11098 {0xA3, 0x66, 0x66, 0, 0},
11099 {0xA4, 0x66, 0x66, 0, 0},
11100 {0xA5, 0x66, 0x66, 0, 0},
11101 {0xA6, 0x66, 0x66, 0, 0},
11102 {0xA7, 0x66, 0x66, 0, 0},
11103 {0xA8, 0x66, 0x66, 0, 0},
11104 {0xA9, 0x66, 0x66, 0, 0},
11105 {0xAA, 0x66, 0x66, 0, 0},
11106 {0xAB, 0x66, 0x66, 0, 0},
11107 {0xAC, 0x66, 0x66, 0, 0},
11108 {0xAD, 0x66, 0x66, 0, 0},
11109 {0xAE, 0x66, 0x66, 0, 0},
11110 {0xAF, 0x66, 0x66, 0, 0},
11111 {0xB0, 0x66, 0x66, 0, 0},
11112 {0xB1, 0x66, 0x66, 0, 0},
11113 {0xB2, 0x66, 0x66, 0, 0},
11114 {0xB3, 0xa, 0xa, 0, 0},
11115 {0xB4, 0, 0, 0, 0},
11116 {0xB5, 0, 0, 0, 0},
11117 {0xB6, 0, 0, 0, 0},
11118 {0xFFFF, 0, 0, 0, 0},
11121 static const struct radio_regs regs_TX_2056_rev11[] = {
11122 {0x02, 0, 0, 0, 0},
11123 {0x03, 0, 0, 0, 0},
11124 {0x04, 0, 0, 0, 0},
11125 {0x05, 0, 0, 0, 0},
11126 {0x06, 0, 0, 0, 0},
11127 {0x07, 0, 0, 0, 0},
11128 {0x08, 0, 0, 0, 0},
11129 {0x09, 0, 0, 0, 0},
11130 {0x0A, 0, 0, 0, 0},
11131 {0x0B, 0, 0, 0, 0},
11132 {0x0C, 0, 0, 0, 0},
11133 {0x0D, 0, 0, 0, 0},
11134 {0x0E, 0, 0, 0, 0},
11135 {0x0F, 0, 0, 0, 0},
11136 {0x10, 0, 0, 0, 0},
11137 {0x11, 0, 0, 0, 0},
11138 {0x12, 0, 0, 0, 0},
11139 {0x13, 0, 0, 0, 0},
11140 {0x14, 0, 0, 0, 0},
11141 {0x15, 0, 0, 0, 0},
11142 {0x16, 0, 0, 0, 0},
11143 {0x17, 0, 0, 0, 0},
11144 {0x18, 0, 0, 0, 0},
11145 {0x19, 0, 0, 0, 0},
11146 {0x1A, 0, 0, 0, 0},
11147 {0x1B, 0, 0, 0, 0},
11148 {0x1C, 0, 0, 0, 0},
11149 {0x1D, 0, 0, 0, 0},
11150 {0x1E, 0, 0, 0, 0},
11151 {0x1F, 0, 0, 0, 0},
11152 {0x20, 0, 0, 0, 0},
11153 {0x21, 0x88, 0x88, 0, 0},
11154 {0x22, 0x88, 0x88, 0, 0},
11155 {0x23, 0x88, 0x88, 0, 0},
11156 {0x24, 0x88, 0x88, 0, 0},
11157 {0x25, 0xc, 0xc, 0, 0},
11158 {0x26, 0, 0, 0, 0},
11159 {0x27, 0x3, 0x3, 0, 0},
11160 {0x28, 0, 0, 0, 0},
11161 {0x29, 0x3, 0x3, 0, 0},
11162 {0x2A, 0x37, 0x37, 0, 0},
11163 {0x2B, 0x3, 0x3, 0, 0},
11164 {0x2C, 0, 0, 0, 0},
11165 {0x2D, 0, 0, 0, 0},
11166 {0x2E, 0x1, 0x1, 0, 0},
11167 {0x2F, 0x1, 0x1, 0, 0},
11168 {0x30, 0, 0, 0, 0},
11169 {0x31, 0, 0, 0, 0},
11170 {0x32, 0, 0, 0, 0},
11171 {0x33, 0x11, 0x11, 0, 0},
11172 {0x34, 0xee, 0xee, 1, 1},
11173 {0x35, 0, 0, 0, 0},
11174 {0x36, 0, 0, 0, 0},
11175 {0x37, 0x3, 0x3, 0, 0},
11176 {0x38, 0x50, 0x50, 1, 1},
11177 {0x39, 0, 0, 0, 0},
11178 {0x3A, 0x50, 0x50, 1, 1},
11179 {0x3B, 0, 0, 0, 0},
11180 {0x3C, 0x6e, 0x6e, 0, 0},
11181 {0x3D, 0xf0, 0xf0, 1, 1},
11182 {0x3E, 0, 0, 0, 0},
11183 {0x3F, 0, 0, 0, 0},
11184 {0x40, 0, 0, 0, 0},
11185 {0x41, 0x3, 0x3, 0, 0},
11186 {0x42, 0x3, 0x3, 0, 0},
11187 {0x43, 0, 0, 0, 0},
11188 {0x44, 0x1e, 0x1e, 0, 0},
11189 {0x45, 0, 0, 0, 0},
11190 {0x46, 0x6e, 0x6e, 0, 0},
11191 {0x47, 0xf0, 0xf0, 1, 1},
11192 {0x48, 0, 0, 0, 0},
11193 {0x49, 0x2, 0x2, 0, 0},
11194 {0x4A, 0xff, 0xff, 1, 1},
11195 {0x4B, 0xc, 0xc, 0, 0},
11196 {0x4C, 0, 0, 0, 0},
11197 {0x4D, 0x38, 0x38, 0, 0},
11198 {0x4E, 0x70, 0x70, 1, 1},
11199 {0x4F, 0x2, 0x2, 0, 0},
11200 {0x50, 0x88, 0x88, 0, 0},
11201 {0x51, 0xc, 0xc, 0, 0},
11202 {0x52, 0, 0, 0, 0},
11203 {0x53, 0x8, 0x8, 0, 0},
11204 {0x54, 0x70, 0x70, 1, 1},
11205 {0x55, 0x2, 0x2, 0, 0},
11206 {0x56, 0xff, 0xff, 1, 1},
11207 {0x57, 0, 0, 0, 0},
11208 {0x58, 0x83, 0x83, 0, 0},
11209 {0x59, 0x77, 0x77, 1, 1},
11210 {0x5A, 0, 0, 0, 0},
11211 {0x5B, 0x2, 0x2, 0, 0},
11212 {0x5C, 0x88, 0x88, 0, 0},
11213 {0x5D, 0, 0, 0, 0},
11214 {0x5E, 0x8, 0x8, 0, 0},
11215 {0x5F, 0x77, 0x77, 1, 1},
11216 {0x60, 0x1, 0x1, 0, 0},
11217 {0x61, 0, 0, 0, 0},
11218 {0x62, 0x7, 0x7, 0, 0},
11219 {0x63, 0, 0, 0, 0},
11220 {0x64, 0x7, 0x7, 0, 0},
11221 {0x65, 0, 0, 0, 0},
11222 {0x66, 0, 0, 0, 0},
11223 {0x67, 0, 0, 1, 1},
11224 {0x68, 0, 0, 0, 0},
11225 {0x69, 0xa, 0xa, 0, 0},
11226 {0x6A, 0, 0, 0, 0},
11227 {0x6B, 0, 0, 0, 0},
11228 {0x6C, 0, 0, 0, 0},
11229 {0x6D, 0, 0, 0, 0},
11230 {0x6E, 0, 0, 0, 0},
11231 {0x6F, 0, 0, 0, 0},
11232 {0x70, 0, 0, 0, 0},
11233 {0x71, 0x2, 0x2, 0, 0},
11234 {0x72, 0, 0, 0, 0},
11235 {0x73, 0, 0, 0, 0},
11236 {0x74, 0xe, 0xe, 0, 0},
11237 {0x75, 0xe, 0xe, 0, 0},
11238 {0x76, 0xe, 0xe, 0, 0},
11239 {0x77, 0x13, 0x13, 0, 0},
11240 {0x78, 0x13, 0x13, 0, 0},
11241 {0x79, 0x1b, 0x1b, 0, 0},
11242 {0x7A, 0x1b, 0x1b, 0, 0},
11243 {0x7B, 0x55, 0x55, 0, 0},
11244 {0x7C, 0x5b, 0x5b, 0, 0},
11245 {0x7D, 0x30, 0x30, 1, 1},
11246 {0x7E, 0, 0, 0, 0},
11247 {0x7F, 0, 0, 0, 0},
11248 {0x80, 0, 0, 0, 0},
11249 {0x81, 0, 0, 0, 0},
11250 {0x82, 0, 0, 0, 0},
11251 {0x83, 0, 0, 0, 0},
11252 {0x84, 0, 0, 0, 0},
11253 {0x85, 0, 0, 0, 0},
11254 {0x86, 0, 0, 0, 0},
11255 {0x87, 0, 0, 0, 0},
11256 {0x88, 0, 0, 0, 0},
11257 {0x89, 0, 0, 0, 0},
11258 {0x8A, 0, 0, 0, 0},
11259 {0x8B, 0, 0, 0, 0},
11260 {0x8C, 0, 0, 0, 0},
11261 {0x8D, 0, 0, 0, 0},
11262 {0x8E, 0, 0, 0, 0},
11263 {0x8F, 0, 0, 0, 0},
11264 {0x90, 0, 0, 0, 0},
11265 {0x91, 0, 0, 0, 0},
11266 {0x92, 0, 0, 0, 0},
11267 {0x93, 0x70, 0x70, 0, 0},
11268 {0x94, 0x70, 0x70, 0, 0},
11269 {0x95, 0x70, 0x70, 0, 0},
11270 {0x96, 0x70, 0x70, 0, 0},
11271 {0x97, 0x70, 0x70, 0, 0},
11272 {0x98, 0x70, 0x70, 0, 0},
11273 {0x99, 0x70, 0x70, 0, 0},
11274 {0x9A, 0x70, 0x70, 0, 0},
11275 {0xFFFF, 0, 0, 0, 0},
11278 static const struct radio_regs regs_RX_2056_rev11[] = {
11279 {0x02, 0, 0, 0, 0},
11280 {0x03, 0, 0, 0, 0},
11281 {0x04, 0, 0, 0, 0},
11282 {0x05, 0, 0, 0, 0},
11283 {0x06, 0, 0, 0, 0},
11284 {0x07, 0, 0, 0, 0},
11285 {0x08, 0, 0, 0, 0},
11286 {0x09, 0, 0, 0, 0},
11287 {0x0A, 0, 0, 0, 0},
11288 {0x0B, 0, 0, 0, 0},
11289 {0x0C, 0, 0, 0, 0},
11290 {0x0D, 0, 0, 0, 0},
11291 {0x0E, 0, 0, 0, 0},
11292 {0x0F, 0, 0, 0, 0},
11293 {0x10, 0, 0, 0, 0},
11294 {0x11, 0, 0, 0, 0},
11295 {0x12, 0, 0, 0, 0},
11296 {0x13, 0, 0, 0, 0},
11297 {0x14, 0, 0, 0, 0},
11298 {0x15, 0, 0, 0, 0},
11299 {0x16, 0, 0, 0, 0},
11300 {0x17, 0, 0, 0, 0},
11301 {0x18, 0, 0, 0, 0},
11302 {0x19, 0, 0, 0, 0},
11303 {0x1A, 0, 0, 0, 0},
11304 {0x1B, 0, 0, 0, 0},
11305 {0x1C, 0, 0, 0, 0},
11306 {0x1D, 0, 0, 0, 0},
11307 {0x1E, 0, 0, 0, 0},
11308 {0x1F, 0, 0, 0, 0},
11309 {0x20, 0x3, 0x3, 0, 0},
11310 {0x21, 0, 0, 0, 0},
11311 {0x22, 0, 0, 0, 0},
11312 {0x23, 0x90, 0x90, 0, 0},
11313 {0x24, 0x55, 0x55, 0, 0},
11314 {0x25, 0x15, 0x15, 0, 0},
11315 {0x26, 0x5, 0x5, 0, 0},
11316 {0x27, 0x15, 0x15, 0, 0},
11317 {0x28, 0x5, 0x5, 0, 0},
11318 {0x29, 0x20, 0x20, 0, 0},
11319 {0x2A, 0x11, 0x11, 0, 0},
11320 {0x2B, 0x90, 0x90, 0, 0},
11321 {0x2C, 0, 0, 0, 0},
11322 {0x2D, 0x88, 0x88, 0, 0},
11323 {0x2E, 0x32, 0x32, 0, 0},
11324 {0x2F, 0x77, 0x77, 0, 0},
11325 {0x30, 0x17, 0x17, 1, 1},
11326 {0x31, 0xff, 0xff, 1, 1},
11327 {0x32, 0x20, 0x20, 0, 0},
11328 {0x33, 0, 0, 0, 0},
11329 {0x34, 0x88, 0x88, 0, 0},
11330 {0x35, 0x32, 0x32, 0, 0},
11331 {0x36, 0x77, 0x77, 0, 0},
11332 {0x37, 0x17, 0x17, 1, 1},
11333 {0x38, 0xf0, 0xf0, 1, 1},
11334 {0x39, 0x20, 0x20, 0, 0},
11335 {0x3A, 0x8, 0x8, 0, 0},
11336 {0x3B, 0x55, 0x55, 1, 1},
11337 {0x3C, 0, 0, 0, 0},
11338 {0x3D, 0x88, 0x88, 1, 1},
11339 {0x3E, 0, 0, 0, 0},
11340 {0x3F, 0x44, 0x44, 0, 0},
11341 {0x40, 0x7, 0x7, 1, 1},
11342 {0x41, 0x6, 0x6, 0, 0},
11343 {0x42, 0x4, 0x4, 0, 0},
11344 {0x43, 0, 0, 0, 0},
11345 {0x44, 0x8, 0x8, 0, 0},
11346 {0x45, 0x55, 0x55, 1, 1},
11347 {0x46, 0, 0, 0, 0},
11348 {0x47, 0x11, 0x11, 0, 0},
11349 {0x48, 0, 0, 0, 0},
11350 {0x49, 0x44, 0x44, 0, 0},
11351 {0x4A, 0x7, 0x7, 0, 0},
11352 {0x4B, 0x6, 0x6, 0, 0},
11353 {0x4C, 0x4, 0x4, 0, 0},
11354 {0x4D, 0, 0, 0, 0},
11355 {0x4E, 0, 0, 0, 0},
11356 {0x4F, 0x26, 0x26, 1, 1},
11357 {0x50, 0x26, 0x26, 1, 1},
11358 {0x51, 0xf, 0xf, 1, 1},
11359 {0x52, 0xf, 0xf, 1, 1},
11360 {0x53, 0x44, 0x44, 0, 0},
11361 {0x54, 0, 0, 0, 0},
11362 {0x55, 0, 0, 0, 0},
11363 {0x56, 0x8, 0x8, 0, 0},
11364 {0x57, 0x8, 0x8, 0, 0},
11365 {0x58, 0x7, 0x7, 0, 0},
11366 {0x59, 0x22, 0x22, 0, 0},
11367 {0x5A, 0x22, 0x22, 0, 0},
11368 {0x5B, 0x2, 0x2, 0, 0},
11369 {0x5C, 0x4, 0x4, 1, 1},
11370 {0x5D, 0x7, 0x7, 0, 0},
11371 {0x5E, 0x55, 0x55, 0, 0},
11372 {0x5F, 0x23, 0x23, 0, 0},
11373 {0x60, 0x41, 0x41, 0, 0},
11374 {0x61, 0x1, 0x1, 0, 0},
11375 {0x62, 0xa, 0xa, 0, 0},
11376 {0x63, 0, 0, 0, 0},
11377 {0x64, 0, 0, 0, 0},
11378 {0x65, 0, 0, 0, 0},
11379 {0x66, 0, 0, 0, 0},
11380 {0x67, 0, 0, 0, 0},
11381 {0x68, 0, 0, 0, 0},
11382 {0x69, 0, 0, 0, 0},
11383 {0x6A, 0, 0, 0, 0},
11384 {0x6B, 0xc, 0xc, 0, 0},
11385 {0x6C, 0, 0, 0, 0},
11386 {0x6D, 0, 0, 0, 0},
11387 {0x6E, 0, 0, 0, 0},
11388 {0x6F, 0, 0, 0, 0},
11389 {0x70, 0, 0, 0, 0},
11390 {0x71, 0, 0, 0, 0},
11391 {0x72, 0x22, 0x22, 0, 0},
11392 {0x73, 0x22, 0x22, 0, 0},
11393 {0x74, 0, 0, 1, 1},
11394 {0x75, 0xa, 0xa, 0, 0},
11395 {0x76, 0x1, 0x1, 0, 0},
11396 {0x77, 0x22, 0x22, 0, 0},
11397 {0x78, 0x30, 0x30, 0, 0},
11398 {0x79, 0, 0, 0, 0},
11399 {0x7A, 0, 0, 0, 0},
11400 {0x7B, 0, 0, 0, 0},
11401 {0x7C, 0, 0, 0, 0},
11402 {0x7D, 0x5, 0x5, 1, 1},
11403 {0x7E, 0, 0, 0, 0},
11404 {0x7F, 0, 0, 0, 0},
11405 {0x80, 0, 0, 0, 0},
11406 {0x81, 0, 0, 0, 0},
11407 {0x82, 0, 0, 0, 0},
11408 {0x83, 0, 0, 0, 0},
11409 {0x84, 0, 0, 0, 0},
11410 {0x85, 0, 0, 0, 0},
11411 {0x86, 0, 0, 0, 0},
11412 {0x87, 0, 0, 0, 0},
11413 {0x88, 0, 0, 0, 0},
11414 {0x89, 0, 0, 0, 0},
11415 {0x8A, 0, 0, 0, 0},
11416 {0x8B, 0, 0, 0, 0},
11417 {0x8C, 0, 0, 0, 0},
11418 {0x8D, 0, 0, 0, 0},
11419 {0x8E, 0, 0, 0, 0},
11420 {0x8F, 0, 0, 0, 0},
11421 {0x90, 0, 0, 0, 0},
11422 {0x91, 0, 0, 0, 0},
11423 {0x92, 0, 0, 0, 0},
11424 {0x93, 0, 0, 0, 0},
11425 {0x94, 0, 0, 0, 0},
11426 {0xFFFF, 0, 0, 0, 0},
11429 static struct radio_20xx_regs regs_2057_rev4[] = {
11819 static struct radio_20xx_regs regs_2057_rev5[] = {
12151 static struct radio_20xx_regs regs_2057_rev5v1[] = {
12483 static struct radio_20xx_regs regs_2057_rev7[] = {
12899 static struct radio_20xx_regs regs_2057_rev8[] = {
13315 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13317 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13318 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13320 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13322 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13323 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13324 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13325 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13326 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13327 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13328 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13329 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13330 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13333 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13334 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13335 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13336 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13337 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13338 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13339 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13340 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13341 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13345 static const u32 nphy_tpc_txgain[] = {
13346 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13347 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13348 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13349 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13350 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13351 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13352 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13353 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13354 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13355 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13356 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13357 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13358 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13359 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13360 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13361 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13362 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13363 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13364 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13365 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13366 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13367 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13368 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13369 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13370 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13371 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13372 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13373 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13374 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13375 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13376 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13377 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13380 static const u16 nphy_tpc_loscale[] = {
13381 256, 256, 271, 271, 287, 256, 256, 271,
13382 271, 287, 287, 304, 304, 256, 256, 271,
13383 271, 287, 287, 304, 304, 322, 322, 341,
13384 341, 362, 362, 383, 383, 256, 256, 271,
13385 271, 287, 287, 304, 304, 322, 322, 256,
13386 256, 271, 271, 287, 287, 304, 304, 322,
13387 322, 341, 341, 362, 362, 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, 341,
13392 341, 362, 362, 383, 383, 406, 406, 430,
13393 430, 455, 455, 482, 482, 511, 511, 541,
13394 541, 573, 573, 607, 607, 643, 643, 681,
13395 681, 722, 722, 764, 764, 810, 810, 858,
13396 858, 908, 908, 962, 962, 1019, 1019, 256
13399 static u32 nphy_tpc_txgain_ipa[] = {
13400 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13401 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13402 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13403 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13404 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13405 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13406 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13407 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13408 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13409 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13410 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13411 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13412 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13413 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13414 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13415 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13416 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13417 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13418 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13419 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13420 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13421 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13422 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13423 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13424 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13425 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13426 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13427 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13428 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13429 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13430 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13431 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13434 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13435 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13436 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13437 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13438 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13439 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13440 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13441 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13442 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13443 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13444 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13445 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13446 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13447 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13448 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13449 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13450 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13451 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13452 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13453 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13454 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13455 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13456 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13457 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13458 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13459 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13460 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13461 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13462 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13463 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13464 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13465 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13466 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13469 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13470 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13471 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13472 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13473 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13474 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13475 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13476 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13477 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13478 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13479 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13480 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13481 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13482 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13483 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13484 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13485 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13486 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13487 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13488 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13489 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13490 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13491 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13492 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13493 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13494 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13495 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13496 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13497 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13498 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13499 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13500 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13501 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13504 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13505 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13506 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13507 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13508 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13509 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13510 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13511 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13512 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13513 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13514 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13515 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13516 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13517 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13518 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13519 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13520 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13521 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13522 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13523 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13524 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13525 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13526 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13527 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13528 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13529 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13530 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13531 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13532 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13533 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13534 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13535 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13536 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13539 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13540 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13541 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13542 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13543 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13544 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13545 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13546 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13547 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13548 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13549 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13550 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13551 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13552 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13553 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13554 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13555 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13556 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13557 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13558 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13559 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13560 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13561 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13562 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13563 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13564 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13565 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13566 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13567 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13568 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13569 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13570 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13571 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13574 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13575 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13576 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13577 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13578 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13579 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13580 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13581 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13582 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13583 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13584 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13585 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13586 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13587 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13588 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13589 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13590 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13591 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13592 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13593 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13594 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13595 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13596 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
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
13609 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13610 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13611 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13612 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13613 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13614 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13615 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13616 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13617 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13618 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13619 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13620 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13621 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13622 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13623 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13624 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13625 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13626 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13627 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13628 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13629 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13630 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13631 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
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
13644 static u32 nphy_tpc_txgain_ipa_5g[] = {
13645 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13646 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13647 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13648 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13649 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13650 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13651 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13652 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13653 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13654 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13655 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13656 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13657 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13658 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13659 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13660 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13661 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13662 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13663 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13664 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13665 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13666 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13667 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13668 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13669 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13670 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13671 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13672 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13673 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13674 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13675 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13676 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13679 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13680 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13681 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13682 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13683 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13684 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13685 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13686 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13687 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13688 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13689 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13690 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13691 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13692 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13693 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13694 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13695 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13696 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13697 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13698 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13699 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13700 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13701 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13702 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13703 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13704 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13705 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13706 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13707 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13708 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13709 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13710 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13711 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13714 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13715 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13716 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13717 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13718 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13719 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13720 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13721 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13722 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13723 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13724 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13725 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13726 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13727 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13728 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13729 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13730 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13731 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13732 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13733 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13734 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13735 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13736 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13737 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13738 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13739 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13740 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13741 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13742 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13743 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13744 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13745 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13746 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13749 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13750 -114, -108, -98, -91, -84, -78, -70, -62,
13751 -54, -46, -39, -31, -23, -15, -8, 0
13754 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13755 -100, -95, -89, -83, -77, -70, -63, -56,
13756 -48, -41, -33, -25, -19, -12, -6, 0
13759 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13760 -159, -113, -86, -72, -62, -54, -48, -43,
13761 -39, -35, -31, -28, -25, -23, -20, -18,
13762 -17, -15, -13, -11, -10, -8, -7, -6,
13763 -5, -4, -3, -3, -2, -1, -1, 0
13766 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13767 -109, -109, -82, -68, -58, -50, -44, -39,
13768 -35, -31, -28, -26, -23, -21, -19, -17,
13769 -16, -14, -13, -11, -10, -9, -8, -7,
13770 -5, -5, -4, -3, -2, -1, -1, 0
13773 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13774 -122, -122, -95, -80, -69, -61, -54, -49,
13775 -43, -39, -35, -32, -28, -26, -23, -21,
13776 -18, -16, -15, -13, -11, -10, -8, -7,
13777 -6, -5, -4, -3, -2, -1, -1, 0
13780 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13781 -107, -101, -92, -85, -78, -71, -62, -55,
13782 -47, -39, -32, -24, -19, -12, -6, 0
13785 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13786 -110, -104, -95, -88, -81, -74, -66, -58,
13787 -50, -44, -36, -28, -23, -15, -8, 0
13790 static u8 pad_gain_codes_used_2057rev5[] = {
13791 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13792 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13795 static u8 pad_gain_codes_used_2057rev7[] = {
13796 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13800 static u8 pad_all_gain_codes_2057[] = {
13801 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13802 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13803 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13807 static u8 pga_all_gain_codes_2057[] = {
13808 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13811 static u32 nphy_papd_scaltbl[] = {
13812 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13813 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13814 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13815 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13816 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13817 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13818 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13819 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13820 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13821 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13822 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13823 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13824 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13825 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13826 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13827 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13830 static u32 nphy_tpc_txgain_rev3[] = {
13831 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13832 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13833 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13834 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13835 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13836 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13837 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13838 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13839 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13840 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13841 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13842 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13843 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13844 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13845 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13846 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13847 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13848 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13849 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13850 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13851 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13852 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13853 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13854 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13855 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13856 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13857 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13858 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13859 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13860 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13861 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13862 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13865 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13866 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13867 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13868 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13869 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13870 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13871 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13872 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13873 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13874 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13875 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13876 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13877 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13878 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13879 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13880 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13881 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13882 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13883 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13884 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13885 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13886 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13887 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13888 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13889 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13890 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13891 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13892 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13893 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13894 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13895 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13896 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13897 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13900 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13901 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13902 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13903 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13904 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13905 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13906 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13907 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13908 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13909 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13910 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13911 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13912 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13913 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13914 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13915 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13916 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13917 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13918 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13919 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13920 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13921 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13922 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13923 0x8009071d, 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
13935 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13936 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13937 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13938 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13939 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13940 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13941 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13942 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13943 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13944 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13945 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13946 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13947 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13948 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13949 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13950 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13951 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13952 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13953 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13954 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13955 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13956 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13957 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13958 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13959 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13960 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13961 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13962 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13963 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13964 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13965 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13966 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13967 0x10090001, 0x10090001, 0x10090001, 0x10090001
13970 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13971 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13972 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13973 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13974 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13975 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13976 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13977 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13978 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13979 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13980 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13981 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13982 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13983 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13984 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13985 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13986 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13987 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13988 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13989 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13990 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13991 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13992 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13993 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13994 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13995 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13996 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13997 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13998 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13999 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
14000 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
14001 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
14002 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
14005 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
14006 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
14007 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
14008 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14009 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14010 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14011 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14012 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14013 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14014 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14015 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14016 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14017 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14018 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14019 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14020 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14021 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14022 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14023 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14024 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14025 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14026 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14027 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14028 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14029 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14030 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14031 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14032 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14033 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14034 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14035 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14036 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14037 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14040 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14041 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14042 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14043 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14044 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14045 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14046 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14047 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14048 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14049 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14050 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14051 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14052 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14053 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14054 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14055 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14056 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14057 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14058 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14059 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14060 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14061 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14062 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14063 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14064 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14065 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14066 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14067 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14068 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14069 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14070 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14071 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14072 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14075 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14076 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14077 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14078 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14079 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14080 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14081 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14082 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14083 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14084 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14085 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14086 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14087 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14088 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14089 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14090 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14091 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14092 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14093 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14094 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14095 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14096 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14097 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14098 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14099 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14100 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14101 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14102 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14103 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14104 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14105 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14106 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14107 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14110 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14111 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14112 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14113 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14115 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14116 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14119 bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
14121 struct brcms_phy *pi = (struct brcms_phy *) pih;
14122 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14124 if (NREV_GE(pi->pubpi.phy_rev, 16))
14127 phybist0 = read_phy_reg(pi, 0x0e);
14128 phybist1 = read_phy_reg(pi, 0x0f);
14129 phybist2 = read_phy_reg(pi, 0xea);
14130 phybist3 = read_phy_reg(pi, 0xeb);
14131 phybist4 = read_phy_reg(pi, 0x156);
14133 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14134 (phybist3 == 0) && (phybist4 == 0))
14140 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14145 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14146 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14147 write_phy_reg(pi, addr, val);
14148 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14154 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14158 wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14159 u32 width, const void *data)
14161 struct phytbl_info tbl;
14165 tbl.tbl_offset = offset;
14166 tbl.tbl_width = width;
14167 tbl.tbl_ptr = data;
14168 wlc_phy_write_table_nphy(pi, &tbl);
14172 wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14173 u32 width, void *data)
14175 struct phytbl_info tbl;
14179 tbl.tbl_offset = offset;
14180 tbl.tbl_width = width;
14181 tbl.tbl_ptr = data;
14182 wlc_phy_read_table_nphy(pi, &tbl);
14186 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14190 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14191 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14192 wlc_phy_write_table_nphy(pi,
14193 &mimophytbl_info_rev16[idx]);
14194 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14195 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14196 wlc_phy_write_table_nphy(pi,
14197 &mimophytbl_info_rev7[idx]);
14198 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14199 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14200 wlc_phy_write_table_nphy(pi,
14201 &mimophytbl_info_rev3[idx]);
14203 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14204 wlc_phy_write_table_nphy(pi,
14205 &mimophytbl_info_rev0[idx]);
14209 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14214 if (pi->phy_init_por)
14215 wlc_phy_static_table_download_nphy(pi);
14217 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14219 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14220 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14223 switch (antswctrllut) {
14231 wlc_phy_table_write_nphy(
14233 NPHY_TBL_ID_ANTSWCTRLLUT,
14235 &ant_sw_ctrl_tbl_rev8_2o3[0]);
14237 wlc_phy_table_write_nphy(
14239 NPHY_TBL_ID_ANTSWCTRLLUT,
14241 &ant_sw_ctrl_tbl_rev8
14244 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14246 &ant_sw_ctrl_tbl_rev8[2]);
14247 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14249 &ant_sw_ctrl_tbl_rev8[4]);
14254 wlc_phy_table_write_nphy(
14255 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14257 &ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14258 wlc_phy_table_write_nphy(
14259 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14261 &ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14262 wlc_phy_table_write_nphy(
14263 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14265 &ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14267 wlc_phy_table_write_nphy(
14268 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14270 &ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14271 wlc_phy_table_write_nphy(
14272 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14274 &ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14275 wlc_phy_table_write_nphy(
14276 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14278 &ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14285 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14286 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14288 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14290 CHSPEC_IS2G(pi->radio_chanspec) ?
14291 pi->srom_fem2g.antswctrllut :
14292 pi->srom_fem5g.antswctrllut;
14293 switch (antswctrllut) {
14295 wlc_phy_write_table_nphy(
14297 &mimophytbl_info_rev3_volatile
14301 wlc_phy_write_table_nphy(
14303 &mimophytbl_info_rev3_volatile1
14307 wlc_phy_write_table_nphy(
14309 &mimophytbl_info_rev3_volatile2
14313 wlc_phy_write_table_nphy(
14315 &mimophytbl_info_rev3_volatile3
14322 wlc_phy_write_table_nphy(
14324 &mimophytbl_info_rev3_volatile[idx]);
14328 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14329 wlc_phy_write_table_nphy(pi,
14330 &mimophytbl_info_rev0_volatile
14336 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14338 write_phy_reg(pi, 0x77, holdoff);
14339 write_phy_reg(pi, 0xb4, delay);
14342 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
14344 u16 holdoff, delay;
14356 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14358 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs))
14359 pi->sh->_rifs_phy = rifs;
14362 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14365 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14366 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14367 pi->phy_5g_pwrgain = true;
14371 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14372 pi->phy_5g_pwrgain = false;
14374 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14375 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14376 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14377 else if ((pi->sh->sromrev >= 4)
14378 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14379 pi->phy_5g_pwrgain = true;
14382 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
14384 u16 bw40po, cddpo, stbcpo, bwduppo;
14387 if (pi->sh->sromrev >= 9)
14390 bw40po = (u16) PHY_GETINTVAR(pi, "bw40po");
14391 pi->bw402gpo = bw40po & 0xf;
14392 pi->bw405gpo = (bw40po & 0xf0) >> 4;
14393 pi->bw405glpo = (bw40po & 0xf00) >> 8;
14394 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
14396 cddpo = (u16) PHY_GETINTVAR(pi, "cddpo");
14397 pi->cdd2gpo = cddpo & 0xf;
14398 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
14399 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
14400 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
14402 stbcpo = (u16) PHY_GETINTVAR(pi, "stbcpo");
14403 pi->stbc2gpo = stbcpo & 0xf;
14404 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
14405 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
14406 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
14408 bwduppo = (u16) PHY_GETINTVAR(pi, "bwduppo");
14409 pi->bwdup2gpo = bwduppo & 0xf;
14410 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
14411 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
14412 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
14414 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
14416 switch (band_num) {
14419 pi->nphy_txpid2g[PHY_CORE_0] =
14420 (u8) PHY_GETINTVAR(pi, "txpid2ga0");
14421 pi->nphy_txpid2g[PHY_CORE_1] =
14422 (u8) PHY_GETINTVAR(pi, "txpid2ga1");
14423 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
14424 (s8) PHY_GETINTVAR(pi, "maxp2ga0");
14425 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
14426 (s8) PHY_GETINTVAR(pi, "maxp2ga1");
14427 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
14428 (s16) PHY_GETINTVAR(pi, "pa2gw0a0");
14429 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
14430 (s16) PHY_GETINTVAR(pi, "pa2gw0a1");
14431 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
14432 (s16) PHY_GETINTVAR(pi, "pa2gw1a0");
14433 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
14434 (s16) PHY_GETINTVAR(pi, "pa2gw1a1");
14435 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
14436 (s16) PHY_GETINTVAR(pi, "pa2gw2a0");
14437 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
14438 (s16) PHY_GETINTVAR(pi, "pa2gw2a1");
14439 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
14440 (s8) PHY_GETINTVAR(pi, "itt2ga0");
14441 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
14442 (s8) PHY_GETINTVAR(pi, "itt2ga1");
14444 pi->cck2gpo = (u16) PHY_GETINTVAR(pi, "cck2gpo");
14446 pi->ofdm2gpo = (u32) PHY_GETINTVAR(pi, "ofdm2gpo");
14448 pi->mcs2gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs2gpo0");
14449 pi->mcs2gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs2gpo1");
14450 pi->mcs2gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs2gpo2");
14451 pi->mcs2gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs2gpo3");
14452 pi->mcs2gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs2gpo4");
14453 pi->mcs2gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs2gpo5");
14454 pi->mcs2gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs2gpo6");
14455 pi->mcs2gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs2gpo7");
14459 pi->nphy_txpid5g[PHY_CORE_0] =
14460 (u8) PHY_GETINTVAR(pi, "txpid5ga0");
14461 pi->nphy_txpid5g[PHY_CORE_1] =
14462 (u8) PHY_GETINTVAR(pi, "txpid5ga1");
14463 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
14464 (s8) PHY_GETINTVAR(pi, "maxp5ga0");
14465 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
14466 (s8) PHY_GETINTVAR(pi, "maxp5ga1");
14467 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
14468 (s16) PHY_GETINTVAR(pi, "pa5gw0a0");
14469 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
14470 (s16) PHY_GETINTVAR(pi, "pa5gw0a1");
14471 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
14472 (s16) PHY_GETINTVAR(pi, "pa5gw1a0");
14473 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
14474 (s16) PHY_GETINTVAR(pi, "pa5gw1a1");
14475 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
14476 (s16) PHY_GETINTVAR(pi, "pa5gw2a0");
14477 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
14478 (s16) PHY_GETINTVAR(pi, "pa5gw2a1");
14479 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
14480 (s8) PHY_GETINTVAR(pi, "itt5ga0");
14481 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
14482 (s8) PHY_GETINTVAR(pi, "itt5ga1");
14484 pi->ofdm5gpo = (u32) PHY_GETINTVAR(pi, "ofdm5gpo");
14486 pi->mcs5gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs5gpo0");
14487 pi->mcs5gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs5gpo1");
14488 pi->mcs5gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs5gpo2");
14489 pi->mcs5gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs5gpo3");
14490 pi->mcs5gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs5gpo4");
14491 pi->mcs5gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs5gpo5");
14492 pi->mcs5gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs5gpo6");
14493 pi->mcs5gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs5gpo7");
14497 pi->nphy_txpid5gl[0] =
14498 (u8) PHY_GETINTVAR(pi, "txpid5gla0");
14499 pi->nphy_txpid5gl[1] =
14500 (u8) PHY_GETINTVAR(pi, "txpid5gla1");
14501 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
14502 (s8) PHY_GETINTVAR(pi, "maxp5gla0");
14503 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
14504 (s8) PHY_GETINTVAR(pi, "maxp5gla1");
14505 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
14506 (s16) PHY_GETINTVAR(pi, "pa5glw0a0");
14507 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
14508 (s16) PHY_GETINTVAR(pi, "pa5glw0a1");
14509 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
14510 (s16) PHY_GETINTVAR(pi, "pa5glw1a0");
14511 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
14512 (s16) PHY_GETINTVAR(pi, "pa5glw1a1");
14513 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
14514 (s16) PHY_GETINTVAR(pi, "pa5glw2a0");
14515 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
14516 (s16) PHY_GETINTVAR(pi, "pa5glw2a1");
14517 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
14518 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
14520 pi->ofdm5glpo = (u32) PHY_GETINTVAR(pi, "ofdm5glpo");
14523 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
14525 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
14527 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
14529 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
14531 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
14533 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
14535 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
14537 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
14541 pi->nphy_txpid5gh[0] =
14542 (u8) PHY_GETINTVAR(pi, "txpid5gha0");
14543 pi->nphy_txpid5gh[1] =
14544 (u8) PHY_GETINTVAR(pi, "txpid5gha1");
14545 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
14546 (s8) PHY_GETINTVAR(pi, "maxp5gha0");
14547 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
14548 (s8) PHY_GETINTVAR(pi, "maxp5gha1");
14549 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
14550 (s16) PHY_GETINTVAR(pi, "pa5ghw0a0");
14551 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
14552 (s16) PHY_GETINTVAR(pi, "pa5ghw0a1");
14553 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
14554 (s16) PHY_GETINTVAR(pi, "pa5ghw1a0");
14555 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
14556 (s16) PHY_GETINTVAR(pi, "pa5ghw1a1");
14557 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
14558 (s16) PHY_GETINTVAR(pi, "pa5ghw2a0");
14559 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
14560 (s16) PHY_GETINTVAR(pi, "pa5ghw2a1");
14561 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
14562 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
14564 pi->ofdm5ghpo = (u32) PHY_GETINTVAR(pi, "ofdm5ghpo");
14567 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
14569 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
14571 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
14573 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
14575 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
14577 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
14579 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
14581 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
14586 wlc_phy_txpwr_apply_nphy(pi);
14589 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
14592 pi->antswitch = (u8) PHY_GETINTVAR(pi, "antswitch");
14593 pi->aa2g = (u8) PHY_GETINTVAR(pi, "aa2g");
14594 pi->aa5g = (u8) PHY_GETINTVAR(pi, "aa5g");
14596 pi->srom_fem2g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos2g");
14597 pi->srom_fem2g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain2g");
14598 pi->srom_fem2g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange2g");
14599 pi->srom_fem2g.triso = (u8) PHY_GETINTVAR(pi, "triso2g");
14600 pi->srom_fem2g.antswctrllut = (u8) PHY_GETINTVAR(pi, "antswctl2g");
14602 pi->srom_fem5g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos5g");
14603 pi->srom_fem5g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain5g");
14604 pi->srom_fem5g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange5g");
14605 pi->srom_fem5g.triso = (u8) PHY_GETINTVAR(pi, "triso5g");
14606 if (PHY_GETVAR(pi, "antswctl5g"))
14607 pi->srom_fem5g.antswctrllut =
14608 (u8) PHY_GETINTVAR(pi, "antswctl5g");
14610 pi->srom_fem5g.antswctrllut =
14611 (u8) PHY_GETINTVAR(pi, "antswctl2g");
14613 wlc_phy_txpower_ipa_upd(pi);
14615 pi->phy_txcore_disable_temp = (s16) PHY_GETINTVAR(pi, "tempthresh");
14616 if (pi->phy_txcore_disable_temp == 0)
14617 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
14619 pi->phy_tempsense_offset = (s8) PHY_GETINTVAR(pi, "tempoffset");
14620 if (pi->phy_tempsense_offset != 0) {
14621 if (pi->phy_tempsense_offset >
14622 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
14623 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
14624 else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
14625 NPHY_SROM_MINTEMPOFFSET))
14626 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
14628 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
14631 pi->phy_txcore_enable_temp =
14632 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
14634 pi->phycal_tempdelta = (u8) PHY_GETINTVAR(pi, "phycal_tempdelta");
14635 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
14636 pi->phycal_tempdelta = 0;
14638 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
14643 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14647 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14648 pi->phyhang_avoid = true;
14650 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14651 pi->nphy_gband_spurwar_en = true;
14652 if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14653 pi->nphy_aband_spurwar_en = true;
14655 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14656 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14657 pi->nphy_gband_spurwar2_en = true;
14660 pi->n_preamble_override = AUTO;
14661 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14662 pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14664 pi->nphy_txrx_chain = AUTO;
14665 pi->phy_scraminit = AUTO;
14667 pi->nphy_rxcalparams = 0x010100B5;
14669 pi->nphy_perical = PHY_PERICAL_MPHASE;
14670 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14671 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14673 pi->nphy_gain_boost = true;
14674 pi->nphy_elna_gain_config = false;
14675 pi->radio_is_on = false;
14677 for (i = 0; i < pi->pubpi.phy_corenum; i++)
14678 pi->nphy_txpwrindex[i].index = AUTO;
14680 wlc_phy_txpwrctrl_config_nphy(pi);
14681 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14682 pi->hwpwrctrl_capable = true;
14684 pi->pi_fptr.init = wlc_phy_init_nphy;
14685 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14686 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14687 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14689 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14695 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14697 s32 rfpwr_offset = 0;
14699 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14700 if ((pi->pubpi.radiorev == 3) ||
14701 (pi->pubpi.radiorev == 4) ||
14702 (pi->pubpi.radiorev == 6))
14703 rfpwr_offset = (s16)
14704 nphy_papd_padgain_dlt_2g_2057rev3n4
14706 else if (pi->pubpi.radiorev == 5)
14707 rfpwr_offset = (s16)
14708 nphy_papd_padgain_dlt_2g_2057rev5
14710 else if ((pi->pubpi.radiorev == 7)
14711 || (pi->pubpi.radiorev ==
14713 rfpwr_offset = (s16)
14714 nphy_papd_padgain_dlt_2g_2057rev7
14717 if ((pi->pubpi.radiorev == 3) ||
14718 (pi->pubpi.radiorev == 4) ||
14719 (pi->pubpi.radiorev == 6))
14720 rfpwr_offset = (s16)
14721 nphy_papd_pgagain_dlt_5g_2057
14723 else if ((pi->pubpi.radiorev == 7)
14724 || (pi->pubpi.radiorev ==
14726 rfpwr_offset = (s16)
14727 nphy_papd_pgagain_dlt_5g_2057rev7
14730 return rfpwr_offset;
14733 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14735 bool gf_preamble = false;
14738 if (preamble == BRCMS_N_PREAMBLE_GF)
14739 gf_preamble = true;
14741 val = read_phy_reg(pi, 0xed);
14743 val |= RX_GF_MM_AUTO;
14744 val &= ~RX_GF_OR_MM;
14746 val |= RX_GF_OR_MM;
14748 write_phy_reg(pi, 0xed, val);
14751 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
14754 u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
14756 for (type = 0; type < 3; type++) {
14757 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14758 write_phy_reg(pi, addr_offset[type] + j,
14759 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
14762 if (pi->bw == WL_CHANSPEC_BW_40) {
14763 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14764 write_phy_reg(pi, 0x186 + j,
14765 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14767 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14768 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14769 write_phy_reg(pi, 0x186 + j,
14770 NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
14773 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
14774 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14775 write_phy_reg(pi, 0x2c5 + j,
14776 NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
14781 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
14785 if (pi->bw == WL_CHANSPEC_BW_40) {
14786 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14787 write_phy_reg(pi, 0x195 + j,
14788 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
14790 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14791 write_phy_reg(pi, 0x186 + j,
14792 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14797 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
14800 u32 t1_offset, t2_offset;
14803 NREV_GE(pi->pubpi.phy_rev,
14804 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
14807 if (pi->phyhang_avoid)
14808 wlc_phy_stay_in_carriersearch_nphy(pi, true);
14810 t1_offset = cmd << 4;
14811 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
14813 t2_offset = t1_offset + 0x080;
14814 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
14817 for (ctr = len; ctr < 16; ctr++) {
14818 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14819 t1_offset + ctr, 8, &end_event);
14820 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14821 t2_offset + ctr, 8, &end_dly);
14824 if (pi->phyhang_avoid)
14825 wlc_phy_stay_in_carriersearch_nphy(pi, false);
14828 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
14830 u16 lpf_bw_ctl_val = 0;
14831 u16 rx2tx_lpf_rc_lut_offset = 0;
14834 if (CHSPEC_IS40(pi->radio_chanspec))
14835 rx2tx_lpf_rc_lut_offset = 0x159;
14837 rx2tx_lpf_rc_lut_offset = 0x154;
14839 rx2tx_lpf_rc_lut_offset = offset;
14841 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14842 (u32) rx2tx_lpf_rc_lut_offset, 16,
14845 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
14847 return lpf_bw_ctl_val;
14851 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14852 u8 core_mask, u8 off, u8 override_id)
14855 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
14858 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14860 for (core_num = 0; core_num < 2; core_num++) {
14861 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
14865 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14866 val_addr = (core_num == 0) ? 0x7a :
14868 val_mask = (0x1 << 1);
14872 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14873 val_addr = (core_num == 0) ? 0x7a :
14875 val_mask = (0x1 << 2);
14879 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14880 val_addr = (core_num == 0) ? 0x7a :
14882 val_mask = (0x1 << 4);
14886 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14887 val_addr = (core_num == 0) ? 0x7a :
14889 val_mask = (0x1 << 5);
14893 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14894 val_addr = (core_num == 0) ? 0x7a :
14896 val_mask = (0x1 << 6);
14900 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14901 val_addr = (core_num == 0) ? 0x7a :
14903 val_mask = (0x1 << 7);
14907 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14908 val_addr = (core_num == 0) ? 0xf8 :
14910 val_mask = (0x7 << 4);
14914 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14915 val_addr = (core_num == 0) ? 0x7b :
14917 val_mask = (0xffff << 0);
14921 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14922 val_addr = (core_num == 0) ? 0x7c :
14924 val_mask = (0xffff << 0);
14928 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14929 val_addr = (core_num == 0) ? 0x348 :
14931 val_mask = (0xff << 0);
14935 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14936 val_addr = (core_num == 0) ? 0x348 :
14938 val_mask = (0xf << 0);
14945 } else if (override_id ==
14946 NPHY_REV7_RFCTRLOVERRIDE_ID1) {
14950 en_addr = (core_num == 0) ? 0x342 :
14952 val_addr = (core_num == 0) ? 0x340 :
14954 val_mask = (0x1 << 1);
14958 en_addr = (core_num == 0) ? 0x342 :
14960 val_addr = (core_num == 0) ? 0x340 :
14962 val_mask = (0x1 << 3);
14966 en_addr = (core_num == 0) ? 0x342 :
14968 val_addr = (core_num == 0) ? 0x340 :
14970 val_mask = (0x1 << 5);
14974 en_addr = (core_num == 0) ? 0x342 :
14976 val_addr = (core_num == 0) ? 0x340 :
14978 val_mask = (0x1 << 4);
14983 en_addr = (core_num == 0) ? 0x342 :
14985 val_addr = (core_num == 0) ? 0x340 :
14987 val_mask = (0x1 << 2);
14992 en_addr = (core_num == 0) ? 0x342 :
14994 val_addr = (core_num == 0) ? 0x340 :
14996 val_mask = (0x7 << 8);
15000 en_addr = (core_num == 0) ? 0x342 :
15002 val_addr = (core_num == 0) ? 0x340 :
15004 val_mask = (0x1 << 14);
15008 en_addr = (core_num == 0) ? 0x342 :
15010 val_addr = (core_num == 0) ? 0x340 :
15012 val_mask = (0x1 << 13);
15016 en_addr = (core_num == 0) ? 0x342 :
15018 val_addr = (core_num == 0) ? 0x340 :
15020 val_mask = (0x1 << 12);
15024 en_addr = (core_num == 0) ? 0x342 :
15026 val_addr = (core_num == 0) ? 0x340 :
15028 val_mask = (0x1 << 11);
15032 en_addr = (core_num == 0) ? 0x342 :
15034 val_addr = (core_num == 0) ? 0x340 :
15036 val_mask = (0x1 << 6);
15040 en_addr = (core_num == 0) ? 0x342 :
15042 val_addr = (core_num == 0) ? 0x340 :
15044 val_mask = (0x1 << 0);
15051 } else if (override_id ==
15052 NPHY_REV7_RFCTRLOVERRIDE_ID2) {
15056 en_addr = (core_num == 0) ? 0x346 :
15058 val_addr = (core_num == 0) ? 0x344 :
15060 val_mask = (0x1 << 3);
15064 en_addr = (core_num == 0) ? 0x346 :
15066 val_addr = (core_num == 0) ? 0x344 :
15068 val_mask = (0x1 << 1);
15072 en_addr = (core_num == 0) ? 0x346 :
15074 val_addr = (core_num == 0) ? 0x344 :
15076 val_mask = (0x1 << 0);
15080 en_addr = (core_num == 0) ? 0x346 :
15082 val_addr = (core_num == 0) ? 0x344 :
15084 val_mask = (0x1 << 2);
15088 en_addr = (core_num == 0) ? 0x346 :
15090 val_addr = (core_num == 0) ? 0x344 :
15092 val_mask = (0x1 << 4);
15102 and_phy_reg(pi, en_addr, ~en_mask);
15103 and_phy_reg(pi, val_addr, ~val_mask);
15106 if ((core_mask == 0)
15107 || (core_mask & (1 << core_num))) {
15108 or_phy_reg(pi, en_addr, en_mask);
15110 if (addr != 0xffff)
15111 mod_phy_reg(pi, val_addr,
15121 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
15127 u16 minmax_gain[2];
15130 if (pi->phyhang_avoid)
15131 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15133 if (pi->nphy_gain_boost) {
15134 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
15140 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
15143 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
15145 nphy_lnagain_est0[1]), 13);
15148 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
15150 nphy_lnagain_est1[1]), 13);
15158 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
15159 if (pi->nphy_elna_gain_config) {
15161 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
15162 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
15163 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
15164 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
15166 for (ctr = 0; ctr < 4; ctr++)
15168 nphy_def_lnagains[ctr] +
15171 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
15173 minmax_gain[core] =
15174 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
15177 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
15178 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
15180 if (pi->phyhang_avoid)
15181 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15185 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15187 if (core == PHY_CORE_0) {
15188 write_phy_reg(pi, 0x38, 0x4);
15189 if (CHSPEC_IS2G(pi->radio_chanspec))
15190 write_phy_reg(pi, 0x37, 0x0060);
15192 write_phy_reg(pi, 0x37, 0x1080);
15193 } else if (core == PHY_CORE_1) {
15194 write_phy_reg(pi, 0x2ae, 0x4);
15195 if (CHSPEC_IS2G(pi->radio_chanspec))
15196 write_phy_reg(pi, 0x2ad, 0x0060);
15198 write_phy_reg(pi, 0x2ad, 0x1080);
15202 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15204 u8 txchain0, txchain1;
15206 txchain0 = txchain & 0x1;
15207 txchain1 = (txchain & 0x2) >> 1;
15209 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15212 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15215 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
15217 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
15218 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
15219 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15220 s8 tia_gainbits[] = {
15221 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15223 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15224 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15226 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15228 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
15229 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
15231 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
15233 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
15236 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
15238 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
15241 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15243 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15246 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15248 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15251 write_phy_reg(pi, 0x37, 0x74);
15252 write_phy_reg(pi, 0x2ad, 0x74);
15253 write_phy_reg(pi, 0x38, 0x18);
15254 write_phy_reg(pi, 0x2ae, 0x18);
15256 write_phy_reg(pi, 0x2b, 0xe8);
15257 write_phy_reg(pi, 0x41, 0xe8);
15259 if (CHSPEC_IS20(pi->radio_chanspec)) {
15261 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
15262 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
15265 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
15266 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
15270 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
15273 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
15274 s8 *lna1_gain_db = NULL;
15275 s8 *lna1_gain_db_2 = NULL;
15276 s8 *lna2_gain_db = NULL;
15277 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15279 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15281 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
15282 u16 *rfseq_init_gain;
15284 u16 clip1hi_gaincode;
15285 u16 clip1md_gaincode = 0;
15286 u16 clip1md_gaincode_B;
15287 u16 clip1lo_gaincode;
15288 u16 clip1lo_gaincode_B;
15294 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
15295 u8 chg_nbclip_th = 0;
15297 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15298 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15300 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15301 if (currband == 0) {
15303 lna1_gain_db = lna1G_gain_db_rev7;
15305 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15307 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15310 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
15312 if (CHSPEC_IS40(pi->radio_chanspec)) {
15313 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
15314 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
15317 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15319 if (CHSPEC_IS20(pi->radio_chanspec)) {
15320 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
15321 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
15325 init_gaincode = 0x9e;
15326 clip1hi_gaincode = 0x9e;
15327 clip1md_gaincode_B = 0x24;
15328 clip1lo_gaincode = 0x8a;
15329 clip1lo_gaincode_B = 8;
15330 rfseq_init_gain = rfseqA_init_gain_rev7;
15332 tia_gain_db = tiaA_gain_db_rev7;
15333 tia_gainbits = tiaA_gainbits_rev7;
15335 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
15336 if (CHSPEC_IS20(pi->radio_chanspec)) {
15339 clip1md_gaincode = 0x82;
15341 if ((freq <= 5080) || (freq == 5825)) {
15343 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
15344 s8 lna1A_gain_db_2_rev7[] = {
15346 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15349 lna1_gain_db = lna1A_gain_db_rev7;
15350 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15351 lna2_gain_db = lna2A_gain_db_rev7;
15352 } else if ((freq >= 5500) && (freq <= 5700)) {
15354 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
15355 s8 lna1A_gain_db_2_rev7[] = {
15357 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
15360 clip1md_gaincode_B = 0x14;
15363 lna1_gain_db = lna1A_gain_db_rev7;
15364 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15365 lna2_gain_db = lna2A_gain_db_rev7;
15368 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
15369 s8 lna1A_gain_db_2_rev7[] = {
15371 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15374 lna1_gain_db = lna1A_gain_db_rev7;
15375 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15376 lna2_gain_db = lna2A_gain_db_rev7;
15379 if (freq <= 4920) {
15380 nvar_baseline_offset0 = 5;
15381 nvar_baseline_offset1 = 5;
15382 } else if ((freq > 4920) && (freq <= 5320)) {
15383 nvar_baseline_offset0 = 3;
15384 nvar_baseline_offset1 = 5;
15385 } else if ((freq > 5320) && (freq <= 5700)) {
15386 nvar_baseline_offset0 = 3;
15387 nvar_baseline_offset1 = 2;
15389 nvar_baseline_offset0 = 4;
15390 nvar_baseline_offset1 = 0;
15398 if ((freq >= 4920) && (freq <= 5320)) {
15399 nvar_baseline_offset0 = 4;
15400 nvar_baseline_offset1 = 5;
15401 } else if ((freq > 5320) && (freq <= 5550)) {
15402 nvar_baseline_offset0 = 4;
15403 nvar_baseline_offset1 = 2;
15405 nvar_baseline_offset0 = 5;
15406 nvar_baseline_offset1 = 3;
15410 write_phy_reg(pi, 0x20, init_gaincode);
15411 write_phy_reg(pi, 0x2a7, init_gaincode);
15413 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15414 pi->pubpi.phy_corenum, 0x106, 16,
15417 write_phy_reg(pi, 0x22, clip1hi_gaincode);
15418 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15420 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
15421 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
15423 write_phy_reg(pi, 0x37, clip1lo_gaincode);
15424 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15425 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
15426 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
15428 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15430 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15433 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15435 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15438 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15440 if (chg_nbclip_th == 1) {
15441 write_phy_reg(pi, 0x2b, nbclip_th);
15442 write_phy_reg(pi, 0x41, nbclip_th);
15445 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
15446 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
15448 mod_phy_reg(pi, 0x2e4,
15449 (0x3f << 0), (nvar_baseline_offset0 << 0));
15451 mod_phy_reg(pi, 0x2e4,
15452 (0x3f << 6), (nvar_baseline_offset1 << 6));
15454 if (CHSPEC_IS20(pi->radio_chanspec)) {
15456 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15458 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15461 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15463 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15466 write_phy_reg(pi, 0x24, clip1md_gaincode);
15467 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15469 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15474 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
15476 u16 w1th, hpf_code, currband;
15478 u8 rfseq_updategainu_events[] = {
15479 NPHY_RFSEQ_CMD_RX_GAIN,
15480 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15481 NPHY_RFSEQ_CMD_SET_HPF_BW
15483 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
15484 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
15485 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
15486 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
15487 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
15488 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
15489 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
15490 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
15491 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
15492 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
15493 s8 *lna1_gain_db = NULL;
15494 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
15495 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
15496 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
15497 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
15498 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
15499 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
15500 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
15501 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
15502 s8 *lna2_gain_db = NULL;
15503 s8 tiaG_gain_db[] = {
15504 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15505 s8 tiaA_gain_db[] = {
15506 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15507 s8 tiaA_gain_db_rev4[] = {
15508 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15509 s8 tiaA_gain_db_rev5[] = {
15510 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15511 s8 tiaA_gain_db_rev6[] = {
15512 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15514 s8 tiaG_gainbits[] = {
15515 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15516 s8 tiaA_gainbits[] = {
15517 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15518 s8 tiaA_gainbits_rev4[] = {
15519 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15520 s8 tiaA_gainbits_rev5[] = {
15521 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15522 s8 tiaA_gainbits_rev6[] = {
15523 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15525 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15526 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15527 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15528 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15529 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15530 u16 rfseqG_init_gain_rev5_elna[] = {
15531 0x013f, 0x013f, 0x013f, 0x013f };
15532 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
15533 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
15534 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
15535 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15536 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15537 u16 rfseqA_init_gain_rev4_elna[] = {
15538 0x314f, 0x314f, 0x314f, 0x314f };
15539 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15540 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
15541 u16 *rfseq_init_gain;
15542 u16 initG_gaincode = 0x627e;
15543 u16 initG_gaincode_rev4 = 0x527e;
15544 u16 initG_gaincode_rev5 = 0x427e;
15545 u16 initG_gaincode_rev5_elna = 0x027e;
15546 u16 initG_gaincode_rev6 = 0x527e;
15547 u16 initG_gaincode_rev6_224B0 = 0x427e;
15548 u16 initG_gaincode_rev6_elna = 0x127e;
15549 u16 initA_gaincode = 0x52de;
15550 u16 initA_gaincode_rev4 = 0x629e;
15551 u16 initA_gaincode_rev4_elna = 0x329e;
15552 u16 initA_gaincode_rev5 = 0x729e;
15553 u16 initA_gaincode_rev6 = 0x729e;
15555 u16 clip1hiG_gaincode = 0x107e;
15556 u16 clip1hiG_gaincode_rev4 = 0x007e;
15557 u16 clip1hiG_gaincode_rev5 = 0x1076;
15558 u16 clip1hiG_gaincode_rev6 = 0x007e;
15559 u16 clip1hiA_gaincode = 0x00de;
15560 u16 clip1hiA_gaincode_rev4 = 0x029e;
15561 u16 clip1hiA_gaincode_rev5 = 0x029e;
15562 u16 clip1hiA_gaincode_rev6 = 0x029e;
15563 u16 clip1hi_gaincode;
15564 u16 clip1mdG_gaincode = 0x0066;
15565 u16 clip1mdA_gaincode = 0x00ca;
15566 u16 clip1mdA_gaincode_rev4 = 0x1084;
15567 u16 clip1mdA_gaincode_rev5 = 0x2084;
15568 u16 clip1mdA_gaincode_rev6 = 0x2084;
15569 u16 clip1md_gaincode = 0;
15570 u16 clip1loG_gaincode = 0x0074;
15571 u16 clip1loG_gaincode_rev5[] = {
15572 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15574 u16 clip1loG_gaincode_rev6[] = {
15575 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15577 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
15578 u16 clip1loA_gaincode = 0x00cc;
15579 u16 clip1loA_gaincode_rev4 = 0x0086;
15580 u16 clip1loA_gaincode_rev5 = 0x2086;
15581 u16 clip1loA_gaincode_rev6 = 0x2086;
15582 u16 clip1lo_gaincode;
15583 u8 crsminG_th = 0x18;
15584 u8 crsminG_th_rev5 = 0x18;
15585 u8 crsminG_th_rev6 = 0x18;
15586 u8 crsminA_th = 0x1e;
15587 u8 crsminA_th_rev4 = 0x24;
15588 u8 crsminA_th_rev5 = 0x24;
15589 u8 crsminA_th_rev6 = 0x24;
15591 u8 crsminlG_th = 0x18;
15592 u8 crsminlG_th_rev5 = 0x18;
15593 u8 crsminlG_th_rev6 = 0x18;
15594 u8 crsminlA_th = 0x1e;
15595 u8 crsminlA_th_rev4 = 0x24;
15596 u8 crsminlA_th_rev5 = 0x24;
15597 u8 crsminlA_th_rev6 = 0x24;
15599 u8 crsminuG_th = 0x18;
15600 u8 crsminuG_th_rev5 = 0x18;
15601 u8 crsminuG_th_rev6 = 0x18;
15602 u8 crsminuA_th = 0x1e;
15603 u8 crsminuA_th_rev4 = 0x24;
15604 u8 crsminuA_th_rev5 = 0x24;
15605 u8 crsminuA_th_rev6 = 0x24;
15606 u8 crsminuA_th_rev6_224B0 = 0x2d;
15608 u16 nbclipG_th = 0x20d;
15609 u16 nbclipG_th_rev4 = 0x1a1;
15610 u16 nbclipG_th_rev5 = 0x1d0;
15611 u16 nbclipG_th_rev6 = 0x1d0;
15612 u16 nbclipA_th = 0x1a1;
15613 u16 nbclipA_th_rev4 = 0x107;
15614 u16 nbclipA_th_rev5 = 0x0a9;
15615 u16 nbclipA_th_rev6 = 0x0f0;
15618 u8 w1clipG_th_rev5 = 9;
15619 u8 w1clipG_th_rev6 = 5;
15620 u8 w1clipA_th = 25, w1clip_th;
15621 u8 rssi_gain_default = 0x50;
15622 u8 rssiG_gain_rev6_224B0 = 0x50;
15623 u8 rssiA_gain_rev5 = 0x90;
15624 u8 rssiA_gain_rev6 = 0x90;
15629 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
15630 pi->srom_fem2g.triso;
15632 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15633 if (pi->pubpi.radiorev == 5) {
15634 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
15635 } else if (pi->pubpi.radiorev == 7) {
15636 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15638 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
15639 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
15641 } else if ((pi->pubpi.radiorev == 3)
15642 || (pi->pubpi.radiorev == 8)) {
15643 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15645 if (pi->pubpi.radiorev == 8) {
15646 mod_phy_reg(pi, 0x283,
15647 (0xff << 0), (0x44 << 0));
15648 mod_phy_reg(pi, 0x280,
15649 (0xff << 0), (0x44 << 0));
15652 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15654 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15656 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
15658 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15659 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15662 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15663 if (currband == 0) {
15664 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15665 if (pi->pubpi.radiorev == 11) {
15666 lna1_gain_db = lna1G_gain_db_rev6_224B0;
15667 lna2_gain_db = lna2G_gain_db_rev6_224B0;
15669 rfseqG_init_gain_rev6_224B0;
15671 initG_gaincode_rev6_224B0;
15673 clip1hiG_gaincode_rev6;
15675 clip1loG_gaincode_rev6_224B0;
15676 nbclip_th = nbclipG_th_rev6;
15677 w1clip_th = w1clipG_th_rev6;
15678 crsmin_th = crsminG_th_rev6;
15679 crsminl_th = crsminlG_th_rev6;
15680 crsminu_th = crsminuG_th_rev6;
15681 rssi_gain = rssiG_gain_rev6_224B0;
15683 lna1_gain_db = lna1G_gain_db_rev6;
15684 lna2_gain_db = lna2G_gain_db_rev6;
15685 if (pi->sh->boardflags & BFL_EXTLNA) {
15688 rfseqG_init_gain_rev6_elna;
15690 initG_gaincode_rev6_elna;
15693 rfseqG_init_gain_rev6;
15695 initG_gaincode_rev6;
15698 clip1hiG_gaincode_rev6;
15702 clip1loG_gaincode_rev6
15707 clip1loG_gaincode_rev6
15712 clip1loG_gaincode_rev6
15719 clip1loG_gaincode_rev6
15724 clip1loG_gaincode_rev6
15729 clip1loG_gaincode_rev6
15734 clip1loG_gaincode_rev6
15739 clip1loG_gaincode_rev6
15743 nbclip_th = nbclipG_th_rev6;
15744 w1clip_th = w1clipG_th_rev6;
15745 crsmin_th = crsminG_th_rev6;
15746 crsminl_th = crsminlG_th_rev6;
15747 crsminu_th = crsminuG_th_rev6;
15748 rssi_gain = rssi_gain_default;
15750 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15751 lna1_gain_db = lna1G_gain_db_rev5;
15752 lna2_gain_db = lna2G_gain_db_rev5;
15753 if (pi->sh->boardflags & BFL_EXTLNA) {
15756 rfseqG_init_gain_rev5_elna;
15758 initG_gaincode_rev5_elna;
15760 rfseq_init_gain = rfseqG_init_gain_rev5;
15761 init_gaincode = initG_gaincode_rev5;
15763 clip1hi_gaincode = clip1hiG_gaincode_rev5;
15767 clip1loG_gaincode_rev5[0];
15771 clip1loG_gaincode_rev5[1];
15775 clip1loG_gaincode_rev5[2];
15780 clip1loG_gaincode_rev5[3];
15784 clip1loG_gaincode_rev5[4];
15788 clip1loG_gaincode_rev5[5];
15792 clip1loG_gaincode_rev5[6];
15796 clip1loG_gaincode_rev5[7];
15800 clip1loG_gaincode_rev5[3];
15803 nbclip_th = nbclipG_th_rev5;
15804 w1clip_th = w1clipG_th_rev5;
15805 crsmin_th = crsminG_th_rev5;
15806 crsminl_th = crsminlG_th_rev5;
15807 crsminu_th = crsminuG_th_rev5;
15808 rssi_gain = rssi_gain_default;
15809 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15810 lna1_gain_db = lna1G_gain_db_rev4;
15811 lna2_gain_db = lna2G_gain_db;
15812 rfseq_init_gain = rfseqG_init_gain_rev4;
15813 init_gaincode = initG_gaincode_rev4;
15814 clip1hi_gaincode = clip1hiG_gaincode_rev4;
15815 clip1lo_gaincode = clip1loG_gaincode;
15816 nbclip_th = nbclipG_th_rev4;
15817 w1clip_th = w1clipG_th;
15818 crsmin_th = crsminG_th;
15819 crsminl_th = crsminlG_th;
15820 crsminu_th = crsminuG_th;
15821 rssi_gain = rssi_gain_default;
15823 lna1_gain_db = lna1G_gain_db;
15824 lna2_gain_db = lna2G_gain_db;
15825 rfseq_init_gain = rfseqG_init_gain;
15826 init_gaincode = initG_gaincode;
15827 clip1hi_gaincode = clip1hiG_gaincode;
15828 clip1lo_gaincode = clip1loG_gaincode;
15829 nbclip_th = nbclipG_th;
15830 w1clip_th = w1clipG_th;
15831 crsmin_th = crsminG_th;
15832 crsminl_th = crsminlG_th;
15833 crsminu_th = crsminuG_th;
15834 rssi_gain = rssi_gain_default;
15836 tia_gain_db = tiaG_gain_db;
15837 tia_gainbits = tiaG_gainbits;
15838 clip1md_gaincode = clip1mdG_gaincode;
15840 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15841 lna1_gain_db = lna1A_gain_db_rev6;
15842 lna2_gain_db = lna2A_gain_db_rev6;
15843 tia_gain_db = tiaA_gain_db_rev6;
15844 tia_gainbits = tiaA_gainbits_rev6;
15845 rfseq_init_gain = rfseqA_init_gain_rev6;
15846 init_gaincode = initA_gaincode_rev6;
15847 clip1hi_gaincode = clip1hiA_gaincode_rev6;
15848 clip1md_gaincode = clip1mdA_gaincode_rev6;
15849 clip1lo_gaincode = clip1loA_gaincode_rev6;
15850 crsmin_th = crsminA_th_rev6;
15851 crsminl_th = crsminlA_th_rev6;
15852 if ((pi->pubpi.radiorev == 11) &&
15853 (CHSPEC_IS40(pi->radio_chanspec) == 0))
15854 crsminu_th = crsminuA_th_rev6_224B0;
15856 crsminu_th = crsminuA_th_rev6;
15858 nbclip_th = nbclipA_th_rev6;
15859 rssi_gain = rssiA_gain_rev6;
15860 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15861 lna1_gain_db = lna1A_gain_db_rev5;
15862 lna2_gain_db = lna2A_gain_db_rev5;
15863 tia_gain_db = tiaA_gain_db_rev5;
15864 tia_gainbits = tiaA_gainbits_rev5;
15865 rfseq_init_gain = rfseqA_init_gain_rev5;
15866 init_gaincode = initA_gaincode_rev5;
15867 clip1hi_gaincode = clip1hiA_gaincode_rev5;
15868 clip1md_gaincode = clip1mdA_gaincode_rev5;
15869 clip1lo_gaincode = clip1loA_gaincode_rev5;
15870 crsmin_th = crsminA_th_rev5;
15871 crsminl_th = crsminlA_th_rev5;
15872 crsminu_th = crsminuA_th_rev5;
15873 nbclip_th = nbclipA_th_rev5;
15874 rssi_gain = rssiA_gain_rev5;
15875 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15876 lna1_gain_db = lna1A_gain_db_rev4;
15877 lna2_gain_db = lna2A_gain_db_rev4;
15878 tia_gain_db = tiaA_gain_db_rev4;
15879 tia_gainbits = tiaA_gainbits_rev4;
15880 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
15883 rfseqA_init_gain_rev4_elna;
15885 initA_gaincode_rev4_elna;
15887 rfseq_init_gain = rfseqA_init_gain_rev4;
15888 init_gaincode = initA_gaincode_rev4;
15890 clip1hi_gaincode = clip1hiA_gaincode_rev4;
15891 clip1md_gaincode = clip1mdA_gaincode_rev4;
15892 clip1lo_gaincode = clip1loA_gaincode_rev4;
15893 crsmin_th = crsminA_th_rev4;
15894 crsminl_th = crsminlA_th_rev4;
15895 crsminu_th = crsminuA_th_rev4;
15896 nbclip_th = nbclipA_th_rev4;
15897 rssi_gain = rssi_gain_default;
15899 lna1_gain_db = lna1A_gain_db;
15900 lna2_gain_db = lna2A_gain_db;
15901 tia_gain_db = tiaA_gain_db;
15902 tia_gainbits = tiaA_gainbits;
15903 rfseq_init_gain = rfseqA_init_gain;
15904 init_gaincode = initA_gaincode;
15905 clip1hi_gaincode = clip1hiA_gaincode;
15906 clip1md_gaincode = clip1mdA_gaincode;
15907 clip1lo_gaincode = clip1loA_gaincode;
15908 crsmin_th = crsminA_th;
15909 crsminl_th = crsminlA_th;
15910 crsminu_th = crsminuA_th;
15911 nbclip_th = nbclipA_th;
15912 rssi_gain = rssi_gain_default;
15914 w1clip_th = w1clipA_th;
15917 write_radio_reg(pi,
15918 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
15919 RADIO_2056_RX0), 0x17);
15920 write_radio_reg(pi,
15921 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
15922 RADIO_2056_RX1), 0x17);
15924 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
15926 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
15929 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
15931 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
15934 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
15936 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
15939 write_radio_reg(pi,
15940 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
15941 RADIO_2056_RX0), 0x17);
15942 write_radio_reg(pi,
15943 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
15944 RADIO_2056_RX1), 0x17);
15946 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
15948 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
15951 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
15953 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
15956 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15958 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15961 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
15963 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
15966 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
15968 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
15971 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
15973 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
15975 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
15977 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
15980 write_phy_reg(pi, 0x20, init_gaincode);
15981 write_phy_reg(pi, 0x2a7, init_gaincode);
15983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15984 pi->pubpi.phy_corenum, 0x106, 16,
15987 write_phy_reg(pi, 0x22, clip1hi_gaincode);
15988 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15990 write_phy_reg(pi, 0x24, clip1md_gaincode);
15991 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15993 write_phy_reg(pi, 0x37, clip1lo_gaincode);
15994 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15996 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
15997 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15998 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16000 write_phy_reg(pi, 0x2b, nbclip_th);
16001 write_phy_reg(pi, 0x41, nbclip_th);
16003 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16004 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16006 write_phy_reg(pi, 0x150, 0x809c);
16010 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16011 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16013 write_phy_reg(pi, 0x2b, 0x84);
16014 write_phy_reg(pi, 0x41, 0x84);
16016 if (CHSPEC_IS20(pi->radio_chanspec)) {
16017 write_phy_reg(pi, 0x6b, 0x2b);
16018 write_phy_reg(pi, 0x6c, 0x2b);
16019 write_phy_reg(pi, 0x6d, 0x9);
16020 write_phy_reg(pi, 0x6e, 0x9);
16023 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16024 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16025 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16027 if (CHSPEC_IS20(pi->radio_chanspec)) {
16028 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16029 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16031 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16032 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16035 write_phy_reg(pi, 0x150, 0x809c);
16037 if (pi->nphy_gain_boost)
16038 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16039 (CHSPEC_IS40(pi->radio_chanspec)))
16043 else if (CHSPEC_IS40(pi->radio_chanspec))
16048 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16049 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16051 for (ctr = 0; ctr < 4; ctr++)
16052 regval[ctr] = (hpf_code << 8) | 0x7c;
16053 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16055 wlc_phy_adjust_lnagaintbl_nphy(pi);
16057 if (pi->nphy_elna_gain_config) {
16062 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16063 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16065 for (ctr = 0; ctr < 4; ctr++)
16066 regval[ctr] = (hpf_code << 8) | 0x74;
16067 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16070 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16071 for (ctr = 0; ctr < 21; ctr++)
16072 regval[ctr] = 3 * ctr;
16073 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16074 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16076 for (ctr = 0; ctr < 21; ctr++)
16077 regval[ctr] = (u16) ctr;
16078 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16079 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16082 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16083 rfseq_updategainu_events,
16084 rfseq_updategainu_dlys,
16085 sizeof(rfseq_updategainu_events) /
16086 sizeof(rfseq_updategainu_events[0]));
16088 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16090 if (CHSPEC_IS2G(pi->radio_chanspec))
16092 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16097 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
16099 u8 rfseq_rx2tx_events[] = {
16100 NPHY_RFSEQ_CMD_NOP,
16101 NPHY_RFSEQ_CMD_RXG_FBW,
16102 NPHY_RFSEQ_CMD_TR_SWITCH,
16103 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16104 NPHY_RFSEQ_CMD_RXPD_TXPD,
16105 NPHY_RFSEQ_CMD_TX_GAIN,
16106 NPHY_RFSEQ_CMD_EXT_PA
16108 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16109 u8 rfseq_tx2rx_events[] = {
16110 NPHY_RFSEQ_CMD_NOP,
16111 NPHY_RFSEQ_CMD_EXT_PA,
16112 NPHY_RFSEQ_CMD_TX_GAIN,
16113 NPHY_RFSEQ_CMD_RXPD_TXPD,
16114 NPHY_RFSEQ_CMD_TR_SWITCH,
16115 NPHY_RFSEQ_CMD_RXG_FBW,
16116 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16118 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16119 u8 rfseq_tx2rx_events_rev3[] = {
16120 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16121 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16122 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16123 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16124 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16125 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16126 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16127 NPHY_REV3_RFSEQ_CMD_END
16129 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16130 u8 rfseq_rx2tx_events_rev3[] = {
16131 NPHY_REV3_RFSEQ_CMD_NOP,
16132 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16133 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16134 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16135 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16136 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16137 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16138 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16139 NPHY_REV3_RFSEQ_CMD_END
16141 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16143 u8 rfseq_rx2tx_events_rev3_ipa[] = {
16144 NPHY_REV3_RFSEQ_CMD_NOP,
16145 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16146 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16147 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16148 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16149 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16150 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16151 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16152 NPHY_REV3_RFSEQ_CMD_END
16154 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16155 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16157 s16 alpha0, alpha1, alpha2;
16158 s16 beta0, beta1, beta2;
16159 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16161 u8 chan_freq_range = 0;
16162 u16 dac_control = 0x0002;
16163 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16164 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16165 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16166 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16168 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16169 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16170 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16172 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16173 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16174 s32 min_nvar_val = 0x18d;
16175 s32 min_nvar_offset_6mbps = 20;
16179 u16 afectrl_adc_ctrl1_rev7 = 0x20;
16180 u16 afectrl_adc_ctrl2_rev7 = 0x0;
16181 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16182 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16183 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16184 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16185 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16186 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16187 u16 ipalvlshift_3p3_war_en = 0;
16188 u16 rccal_bcap_val, rccal_scap_val;
16189 u16 rccal_tx20_11b_bcap = 0;
16190 u16 rccal_tx20_11b_scap = 0;
16191 u16 rccal_tx20_11n_bcap = 0;
16192 u16 rccal_tx20_11n_scap = 0;
16193 u16 rccal_tx40_11n_bcap = 0;
16194 u16 rccal_tx40_11n_scap = 0;
16195 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16196 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16197 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16198 u16 tx_lpf_bw_ofdm_20mhz = 0;
16199 u16 tx_lpf_bw_ofdm_40mhz = 0;
16200 u16 tx_lpf_bw_11b = 0;
16201 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16202 u16 txgm_idac_bleed = 0;
16203 bool rccal_ovrd = false;
16207 if (CHSPEC_IS5G(pi->radio_chanspec))
16208 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
16210 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
16212 if (pi->phyhang_avoid)
16213 wlc_phy_stay_in_carriersearch_nphy(pi, true);
16215 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
16217 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16219 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16220 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16222 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16223 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16224 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16225 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16226 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16227 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16228 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16229 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16230 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16231 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16232 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16233 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16234 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16235 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16236 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16237 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16240 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16241 write_phy_reg(pi, 0x23f, 0x1b0);
16242 write_phy_reg(pi, 0x240, 0x1b0);
16245 if (NREV_GE(pi->pubpi.phy_rev, 8))
16246 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16248 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16250 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16253 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16254 1, 0, 32, &leg_data_weights);
16255 leg_data_weights = leg_data_weights & 0xffffff;
16256 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16257 1, 0, 32, &leg_data_weights);
16259 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16261 rfseq_rx2tx_dacbufpu_rev7);
16262 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16263 rfseq_rx2tx_dacbufpu_rev7);
16266 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16267 rfseq_rx2tx_events_rev3_ipa,
16268 rfseq_rx2tx_dlys_rev3_ipa,
16270 (rfseq_rx2tx_events_rev3_ipa) /
16272 (rfseq_rx2tx_events_rev3_ipa
16275 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16276 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16278 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16279 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16280 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16284 if (((pi->pubpi.radiorev == 5)
16285 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16286 || (pi->pubpi.radiorev == 7)
16287 || (pi->pubpi.radiorev == 8)) {
16292 RADIO_2057_RCCAL_BCAP_VAL);
16296 RADIO_2057_RCCAL_SCAP_VAL);
16298 rccal_tx20_11b_bcap = rccal_bcap_val;
16299 rccal_tx20_11b_scap = rccal_scap_val;
16301 if ((pi->pubpi.radiorev == 5) &&
16302 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16304 rccal_tx20_11n_bcap = rccal_bcap_val;
16305 rccal_tx20_11n_scap = rccal_scap_val;
16306 rccal_tx40_11n_bcap = 0xc;
16307 rccal_tx40_11n_scap = 0xc;
16311 } else if ((pi->pubpi.radiorev == 7)
16312 || (pi->pubpi.radiorev == 8)) {
16314 tx_lpf_bw_ofdm_20mhz = 4;
16317 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16318 rccal_tx20_11n_bcap = 0xc;
16319 rccal_tx20_11n_scap = 0xc;
16320 rccal_tx40_11n_bcap = 0xa;
16321 rccal_tx40_11n_scap = 0xa;
16323 rccal_tx20_11n_bcap = 0x14;
16324 rccal_tx20_11n_scap = 0x14;
16325 rccal_tx40_11n_bcap = 0xf;
16326 rccal_tx40_11n_scap = 0xf;
16335 if (pi->pubpi.radiorev == 5) {
16337 tx_lpf_bw_ofdm_20mhz = 1;
16338 tx_lpf_bw_ofdm_40mhz = 3;
16343 RADIO_2057_RCCAL_BCAP_VAL);
16347 RADIO_2057_RCCAL_SCAP_VAL);
16349 rccal_tx20_11b_bcap = rccal_bcap_val;
16350 rccal_tx20_11b_scap = rccal_scap_val;
16352 rccal_tx20_11n_bcap = 0x13;
16353 rccal_tx20_11n_scap = 0x11;
16354 rccal_tx40_11n_bcap = 0x13;
16355 rccal_tx40_11n_scap = 0x11;
16363 rx2tx_lpf_rc_lut_tx20_11b =
16364 (rccal_tx20_11b_bcap << 8) |
16365 (rccal_tx20_11b_scap << 3) |
16367 rx2tx_lpf_rc_lut_tx20_11n =
16368 (rccal_tx20_11n_bcap << 8) |
16369 (rccal_tx20_11n_scap << 3) |
16370 tx_lpf_bw_ofdm_20mhz;
16371 rx2tx_lpf_rc_lut_tx40_11n =
16372 (rccal_tx40_11n_bcap << 8) |
16373 (rccal_tx40_11n_scap << 3) |
16374 tx_lpf_bw_ofdm_40mhz;
16376 for (coreNum = 0; coreNum <= 1; coreNum++) {
16377 wlc_phy_table_write_nphy(
16378 pi, NPHY_TBL_ID_RFSEQ,
16380 0x152 + coreNum * 0x10,
16382 &rx2tx_lpf_rc_lut_tx20_11b);
16383 wlc_phy_table_write_nphy(
16384 pi, NPHY_TBL_ID_RFSEQ,
16386 0x153 + coreNum * 0x10,
16388 &rx2tx_lpf_rc_lut_tx20_11n);
16389 wlc_phy_table_write_nphy(
16390 pi, NPHY_TBL_ID_RFSEQ,
16392 0x154 + coreNum * 0x10,
16394 &rx2tx_lpf_rc_lut_tx20_11n);
16395 wlc_phy_table_write_nphy(
16396 pi, NPHY_TBL_ID_RFSEQ,
16398 0x155 + coreNum * 0x10,
16400 &rx2tx_lpf_rc_lut_tx40_11n);
16401 wlc_phy_table_write_nphy(
16402 pi, NPHY_TBL_ID_RFSEQ,
16404 0x156 + coreNum * 0x10,
16406 &rx2tx_lpf_rc_lut_tx40_11n);
16407 wlc_phy_table_write_nphy(
16408 pi, NPHY_TBL_ID_RFSEQ,
16410 0x157 + coreNum * 0x10,
16412 &rx2tx_lpf_rc_lut_tx40_11n);
16413 wlc_phy_table_write_nphy(
16414 pi, NPHY_TBL_ID_RFSEQ,
16416 0x158 + coreNum * 0x10,
16418 &rx2tx_lpf_rc_lut_tx40_11n);
16419 wlc_phy_table_write_nphy(
16420 pi, NPHY_TBL_ID_RFSEQ,
16422 0x159 + coreNum * 0x10,
16424 &rx2tx_lpf_rc_lut_tx40_11n);
16427 wlc_phy_rfctrl_override_nphy_rev7(
16430 NPHY_REV7_RFCTRLOVERRIDE_ID2);
16433 write_phy_reg(pi, 0x32f, 0x3);
16435 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16436 wlc_phy_rfctrl_override_nphy_rev7(
16439 NPHY_REV7_RFCTRLOVERRIDE_ID0);
16441 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16442 (pi->pubpi.radiorev == 6)) {
16443 if ((pi->sh->sromrev >= 8)
16444 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16445 ipalvlshift_3p3_war_en = 1;
16447 if (ipalvlshift_3p3_war_en) {
16448 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
16450 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
16452 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
16454 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
16457 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
16460 ipa2g_mainbias = 0x1f;
16462 ipa2g_casconv = 0x6f;
16464 ipa2g_biasfilt = 0xaa;
16467 ipa2g_mainbias = 0x2b;
16469 ipa2g_casconv = 0x7f;
16471 ipa2g_biasfilt = 0xee;
16474 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16475 for (coreNum = 0; coreNum <= 1; coreNum++) {
16476 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16477 coreNum, IPA2G_IMAIN,
16479 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16480 coreNum, IPA2G_CASCONV,
16482 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16491 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16492 if ((pi->pubpi.radiorev == 3)
16493 || (pi->pubpi.radiorev == 4)
16494 || (pi->pubpi.radiorev == 6))
16495 txgm_idac_bleed = 0x7f;
16497 for (coreNum = 0; coreNum <= 1; coreNum++) {
16498 if (txgm_idac_bleed != 0)
16506 if (pi->pubpi.radiorev == 5) {
16508 for (coreNum = 0; coreNum <= 1;
16510 WRITE_RADIO_REG4(pi, RADIO_2057,
16514 WRITE_RADIO_REG4(pi, RADIO_2057,
16523 WRITE_RADIO_REG4(pi, RADIO_2057,
16530 PAD_BIAS_FILTER_BWS,
16534 } else if ((pi->pubpi.radiorev == 7)
16535 || (pi->pubpi.radiorev == 8)) {
16537 if (CHSPEC_IS40(pi->radio_chanspec) ==
16539 WRITE_RADIO_REG4(pi, RADIO_2057,
16543 WRITE_RADIO_REG4(pi, RADIO_2057,
16548 WRITE_RADIO_REG4(pi, RADIO_2057,
16552 WRITE_RADIO_REG4(pi, RADIO_2057,
16560 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
16561 pi->radio_chanspec));
16562 if (((freq >= 5180) && (freq <= 5230))
16563 || ((freq >= 5745) && (freq <= 5805))) {
16564 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16565 0, IPA5G_BIAS_FILTER,
16567 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16568 1, IPA5G_BIAS_FILTER,
16574 if (pi->pubpi.radiorev != 5) {
16575 for (coreNum = 0; coreNum <= 1; coreNum++) {
16576 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16578 TXMIX2G_TUNE_BOOST_PU,
16580 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16582 TXGM_IDAC_BLEED, 0x70);
16587 if (pi->pubpi.radiorev == 4) {
16588 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16590 &afectrl_adc_ctrl1_rev7);
16591 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16593 &afectrl_adc_ctrl1_rev7);
16595 for (coreNum = 0; coreNum <= 1; coreNum++) {
16596 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16597 AFE_VCM_CAL_MASTER, 0x0);
16598 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16599 AFE_SET_VCM_I, 0x3f);
16600 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16601 AFE_SET_VCM_Q, 0x3f);
16604 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16605 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16606 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16607 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16609 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16610 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16611 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16612 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16614 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16616 &afectrl_adc_ctrl2_rev7);
16617 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16619 &afectrl_adc_ctrl2_rev7);
16621 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16622 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16623 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16624 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16627 write_phy_reg(pi, 0x6a, 0x2);
16629 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
16630 &min_nvar_offset_6mbps);
16632 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16633 &rfseq_pktgn_lpf_hpc_rev7);
16635 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16636 &rfseq_pktgn_lpf_h_hpc_rev7);
16638 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16639 &rfseq_htpktgn_lpf_hpc_rev7);
16641 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16642 &rfseq_cckpktgn_lpf_hpc_rev7);
16644 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16645 &rfseq_tx2rx_lpf_h_hpc_rev7);
16647 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16648 &rfseq_rx2tx_lpf_h_hpc_rev7);
16650 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16651 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16652 32, &min_nvar_val);
16653 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16654 127, 32, &min_nvar_val);
16656 min_nvar_val = noise_var_tbl_rev7[3];
16657 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16658 32, &min_nvar_val);
16660 min_nvar_val = noise_var_tbl_rev7[127];
16661 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16662 127, 32, &min_nvar_val);
16665 wlc_phy_workarounds_nphy_gainctrl(pi);
16668 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16669 pdetrange : pi->srom_fem2g.pdetrange;
16671 if (pdetrange == 0) {
16673 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16674 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16675 aux_adc_vmid_rev7_core0[3] = 0x70;
16676 aux_adc_vmid_rev7_core1[3] = 0x70;
16677 aux_adc_gain_rev7[3] = 2;
16679 aux_adc_vmid_rev7_core0[3] = 0x80;
16680 aux_adc_vmid_rev7_core1[3] = 0x80;
16681 aux_adc_gain_rev7[3] = 3;
16683 } else if (pdetrange == 1) {
16684 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16685 aux_adc_vmid_rev7_core0[3] = 0x7c;
16686 aux_adc_vmid_rev7_core1[3] = 0x7c;
16687 aux_adc_gain_rev7[3] = 2;
16689 aux_adc_vmid_rev7_core0[3] = 0x8c;
16690 aux_adc_vmid_rev7_core1[3] = 0x8c;
16691 aux_adc_gain_rev7[3] = 1;
16693 } else if (pdetrange == 2) {
16694 if (pi->pubpi.radioid == BCM2057_ID) {
16695 if ((pi->pubpi.radiorev == 5)
16696 || (pi->pubpi.radiorev == 7)
16697 || (pi->pubpi.radiorev == 8)) {
16698 if (chan_freq_range ==
16699 WL_CHAN_FREQ_RANGE_2G) {
16700 aux_adc_vmid_rev7_core0[3] =
16702 aux_adc_vmid_rev7_core1[3] =
16704 aux_adc_gain_rev7[3] = 0;
16706 aux_adc_vmid_rev7_core0[3] =
16708 aux_adc_vmid_rev7_core1[3] =
16710 aux_adc_gain_rev7[3] = 0;
16715 } else if (pdetrange == 3) {
16716 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16717 aux_adc_vmid_rev7_core0[3] = 0x89;
16718 aux_adc_vmid_rev7_core1[3] = 0x89;
16719 aux_adc_gain_rev7[3] = 0;
16722 } else if (pdetrange == 5) {
16724 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16725 aux_adc_vmid_rev7_core0[3] = 0x80;
16726 aux_adc_vmid_rev7_core1[3] = 0x80;
16727 aux_adc_gain_rev7[3] = 3;
16729 aux_adc_vmid_rev7_core0[3] = 0x70;
16730 aux_adc_vmid_rev7_core1[3] = 0x70;
16731 aux_adc_gain_rev7[3] = 2;
16735 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
16736 &aux_adc_vmid_rev7_core0);
16737 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
16738 &aux_adc_vmid_rev7_core1);
16739 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
16740 &aux_adc_gain_rev7);
16741 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
16742 &aux_adc_gain_rev7);
16744 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16746 write_phy_reg(pi, 0x23f, 0x1f8);
16747 write_phy_reg(pi, 0x240, 0x1f8);
16749 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16750 1, 0, 32, &leg_data_weights);
16751 leg_data_weights = leg_data_weights & 0xffffff;
16752 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16753 1, 0, 32, &leg_data_weights);
16761 write_phy_reg(pi, 0x145, alpha0);
16762 write_phy_reg(pi, 0x146, alpha1);
16763 write_phy_reg(pi, 0x147, alpha2);
16764 write_phy_reg(pi, 0x148, beta0);
16765 write_phy_reg(pi, 0x149, beta1);
16766 write_phy_reg(pi, 0x14a, beta2);
16768 write_phy_reg(pi, 0x38, 0xC);
16769 write_phy_reg(pi, 0x2ae, 0xC);
16771 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16772 rfseq_tx2rx_events_rev3,
16773 rfseq_tx2rx_dlys_rev3,
16774 sizeof(rfseq_tx2rx_events_rev3) /
16775 sizeof(rfseq_tx2rx_events_rev3[0]));
16778 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16779 rfseq_rx2tx_events_rev3_ipa,
16780 rfseq_rx2tx_dlys_rev3_ipa,
16782 (rfseq_rx2tx_events_rev3_ipa) /
16784 (rfseq_rx2tx_events_rev3_ipa
16787 if ((pi->sh->hw_phyrxchain != 0x3) &&
16788 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16791 rfseq_rx2tx_dlys_rev3[5] = 59;
16792 rfseq_rx2tx_dlys_rev3[6] = 1;
16793 rfseq_rx2tx_events_rev3[7] =
16794 NPHY_REV3_RFSEQ_CMD_END;
16797 wlc_phy_set_rfseq_nphy(
16798 pi, NPHY_RFSEQ_RX2TX,
16799 rfseq_rx2tx_events_rev3,
16800 rfseq_rx2tx_dlys_rev3,
16801 sizeof(rfseq_rx2tx_events_rev3) /
16802 sizeof(rfseq_rx2tx_events_rev3[0]));
16805 if (CHSPEC_IS2G(pi->radio_chanspec))
16806 write_phy_reg(pi, 0x6a, 0x2);
16808 write_phy_reg(pi, 0x6a, 0x9c40);
16810 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16812 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16813 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16814 32, &min_nvar_val);
16815 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16816 127, 32, &min_nvar_val);
16818 min_nvar_val = noise_var_tbl_rev3[3];
16819 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16820 32, &min_nvar_val);
16822 min_nvar_val = noise_var_tbl_rev3[127];
16823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16824 127, 32, &min_nvar_val);
16827 wlc_phy_workarounds_nphy_gainctrl(pi);
16829 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16831 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16835 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16836 pdetrange : pi->srom_fem2g.pdetrange;
16838 if (pdetrange == 0) {
16839 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16840 aux_adc_vmid = aux_adc_vmid_rev4;
16841 aux_adc_gain = aux_adc_gain_rev4;
16843 aux_adc_vmid = aux_adc_vmid_rev3;
16844 aux_adc_gain = aux_adc_gain_rev3;
16847 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16848 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16849 switch (chan_freq_range) {
16850 case WL_CHAN_FREQ_RANGE_5GL:
16851 aux_adc_vmid[3] = 0x89;
16852 aux_adc_gain[3] = 0;
16854 case WL_CHAN_FREQ_RANGE_5GM:
16855 aux_adc_vmid[3] = 0x89;
16856 aux_adc_gain[3] = 0;
16858 case WL_CHAN_FREQ_RANGE_5GH:
16859 aux_adc_vmid[3] = 0x89;
16860 aux_adc_gain[3] = 0;
16866 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16867 0x08, 16, aux_adc_vmid);
16868 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16869 0x18, 16, aux_adc_vmid);
16870 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16871 0x0c, 16, aux_adc_gain);
16872 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16873 0x1c, 16, aux_adc_gain);
16874 } else if (pdetrange == 1) {
16875 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16876 0x08, 16, sk_adc_vmid);
16877 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16878 0x18, 16, sk_adc_vmid);
16879 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16880 0x0c, 16, sk_adc_gain);
16881 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16882 0x1c, 16, sk_adc_gain);
16883 } else if (pdetrange == 2) {
16885 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16886 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16888 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16890 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16891 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16892 bcm_adc_vmid[3] = 0x8e;
16893 bcm_adc_gain[3] = 0x03;
16895 bcm_adc_vmid[3] = 0x94;
16896 bcm_adc_gain[3] = 0x03;
16898 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16899 bcm_adc_vmid[3] = 0x84;
16900 bcm_adc_gain[3] = 0x02;
16903 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16904 0x08, 16, bcm_adc_vmid);
16905 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16906 0x18, 16, bcm_adc_vmid);
16907 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16908 0x0c, 16, bcm_adc_gain);
16909 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16910 0x1c, 16, bcm_adc_gain);
16911 } else if (pdetrange == 3) {
16913 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16914 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16915 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16917 u16 auxadc_vmid[] = {
16918 0xa2, 0xb4, 0xb4, 0x270
16920 u16 auxadc_gain[] = {
16921 0x02, 0x02, 0x02, 0x00
16924 wlc_phy_table_write_nphy(pi,
16925 NPHY_TBL_ID_AFECTRL, 4,
16926 0x08, 16, auxadc_vmid);
16927 wlc_phy_table_write_nphy(pi,
16928 NPHY_TBL_ID_AFECTRL, 4,
16929 0x18, 16, auxadc_vmid);
16930 wlc_phy_table_write_nphy(pi,
16931 NPHY_TBL_ID_AFECTRL, 4,
16932 0x0c, 16, auxadc_gain);
16933 wlc_phy_table_write_nphy(pi,
16934 NPHY_TBL_ID_AFECTRL, 4,
16935 0x1c, 16, auxadc_gain);
16937 } else if ((pdetrange == 4) || (pdetrange == 5)) {
16938 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16939 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16940 u16 Vmid[2], Av[2];
16943 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16944 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16945 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16946 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16947 Av[0] = (pdetrange == 4) ? 2 : 0;
16948 Av[1] = (pdetrange == 4) ? 2 : 0;
16950 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16951 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16952 Av[0] = (pdetrange == 4) ? 2 : 0;
16953 Av[1] = (pdetrange == 4) ? 2 : 0;
16956 bcm_adc_vmid[3] = Vmid[0];
16957 bcm_adc_gain[3] = Av[0];
16958 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16959 0x08, 16, bcm_adc_vmid);
16960 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16961 0x0c, 16, bcm_adc_gain);
16963 bcm_adc_vmid[3] = Vmid[1];
16964 bcm_adc_gain[3] = Av[1];
16965 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16966 0x18, 16, bcm_adc_vmid);
16967 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16968 0x1c, 16, bcm_adc_gain);
16971 write_radio_reg(pi,
16972 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16974 write_radio_reg(pi,
16975 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16978 write_radio_reg(pi,
16979 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16981 write_radio_reg(pi,
16982 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16985 write_radio_reg(pi,
16986 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16988 write_radio_reg(pi,
16989 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16992 write_radio_reg(pi,
16993 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16995 write_radio_reg(pi,
16996 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16999 write_radio_reg(pi,
17000 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
17002 write_radio_reg(pi,
17003 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
17006 write_radio_reg(pi,
17007 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
17009 write_radio_reg(pi,
17010 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
17014 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
17015 triso : pi->srom_fem2g.triso;
17017 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
17018 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
17021 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
17023 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
17024 (CHSPEC_IS5G(pi->radio_chanspec))) ||
17025 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
17026 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
17027 (CHSPEC_IS2G(pi->radio_chanspec)))) {
17028 nss1_data_weights = 0x00088888;
17029 ht_data_weights = 0x00088888;
17030 stbc_data_weights = 0x00088888;
17032 nss1_data_weights = 0x88888888;
17033 ht_data_weights = 0x88888888;
17034 stbc_data_weights = 0x88888888;
17036 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17037 1, 1, 32, &nss1_data_weights);
17038 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17039 1, 2, 32, &ht_data_weights);
17040 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17041 1, 3, 32, &stbc_data_weights);
17043 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17044 if (CHSPEC_IS5G(pi->radio_chanspec)) {
17045 write_radio_reg(pi,
17046 RADIO_2056_TX_GMBB_IDAC |
17047 RADIO_2056_TX0, 0x70);
17048 write_radio_reg(pi,
17049 RADIO_2056_TX_GMBB_IDAC |
17050 RADIO_2056_TX1, 0x70);
17054 if (!pi->edcrs_threshold_lock) {
17055 write_phy_reg(pi, 0x224, 0x3eb);
17056 write_phy_reg(pi, 0x225, 0x3eb);
17057 write_phy_reg(pi, 0x226, 0x341);
17058 write_phy_reg(pi, 0x227, 0x341);
17059 write_phy_reg(pi, 0x228, 0x42b);
17060 write_phy_reg(pi, 0x229, 0x42b);
17061 write_phy_reg(pi, 0x22a, 0x381);
17062 write_phy_reg(pi, 0x22b, 0x381);
17063 write_phy_reg(pi, 0x22c, 0x42b);
17064 write_phy_reg(pi, 0x22d, 0x42b);
17065 write_phy_reg(pi, 0x22e, 0x381);
17066 write_phy_reg(pi, 0x22f, 0x381);
17069 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
17071 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
17072 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
17074 MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
17078 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
17079 (pi->sh->boardtype == 0x8b)) {
17081 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
17082 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
17083 rfseq_rx2tx_dlys[i] = war_dlys[i];
17086 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
17087 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
17088 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
17090 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
17091 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
17095 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, ®val);
17096 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, ®val);
17098 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17100 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, ®val);
17101 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, ®val);
17104 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17106 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, ®val);
17107 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, ®val);
17110 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, ®val);
17111 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, ®val);
17114 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, ®val);
17115 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, ®val);
17118 write_phy_reg(pi, 0xf8, 0x02d8);
17119 write_phy_reg(pi, 0xf9, 0x0301);
17120 write_phy_reg(pi, 0xfa, 0x02d8);
17121 write_phy_reg(pi, 0xfb, 0x0301);
17123 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
17125 sizeof(rfseq_rx2tx_events) /
17126 sizeof(rfseq_rx2tx_events[0]));
17128 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
17130 sizeof(rfseq_tx2rx_events) /
17131 sizeof(rfseq_tx2rx_events[0]));
17133 wlc_phy_workarounds_nphy_gainctrl(pi);
17135 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17137 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
17138 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
17139 MHF3_NPHY_MLADV_WAR,
17140 MHF3_NPHY_MLADV_WAR,
17143 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
17144 write_phy_reg(pi, 0x1e3, 0x0);
17145 write_phy_reg(pi, 0x1e4, 0x0);
17148 if (NREV_LT(pi->pubpi.phy_rev, 2))
17149 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17157 write_phy_reg(pi, 0x145, alpha0);
17158 write_phy_reg(pi, 0x146, alpha1);
17159 write_phy_reg(pi, 0x147, alpha2);
17160 write_phy_reg(pi, 0x148, beta0);
17161 write_phy_reg(pi, 0x149, beta1);
17162 write_phy_reg(pi, 0x14a, beta2);
17164 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17165 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17167 write_phy_reg(pi, 0x192, 0xb5);
17168 write_phy_reg(pi, 0x193, 0xa4);
17169 write_phy_reg(pi, 0x194, 0x0);
17172 if (NREV_IS(pi->pubpi.phy_rev, 2))
17173 mod_phy_reg(pi, 0x221,
17174 NPHY_FORCESIG_DECODEGATEDCLKS,
17175 NPHY_FORCESIG_DECODEGATEDCLKS);
17178 if (pi->phyhang_avoid)
17179 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17182 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17185 u16 addr_offset = 0x2c5;
17187 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17188 write_phy_reg(pi, addr_offset + j,
17189 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17192 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17196 vals[0] = read_phy_reg(pi, 0x2c);
17197 vals[1] = read_phy_reg(pi, 0x42);
17199 write_phy_reg(pi, 0x2c, vals[0]);
17200 write_phy_reg(pi, 0x42, vals[1]);
17204 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17208 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17209 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17210 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17211 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17212 TX_SSI_MASTER, 0x5);
17213 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17216 if (pi->pubpi.radiorev != 5)
17217 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17220 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17221 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17224 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17225 core, TSSIG, 0x31);
17227 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17228 TX_SSI_MASTER, 0x9);
17229 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17231 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17234 if (pi->pubpi.radiorev != 5) {
17235 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17236 WRITE_RADIO_REG3(pi, RADIO_2057,
17240 WRITE_RADIO_REG3(pi, RADIO_2057,
17245 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17247 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17249 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17251 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17255 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17256 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17258 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17259 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17261 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17262 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17264 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17266 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17268 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17270 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17272 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17274 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17277 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17278 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17279 TX_SSI_MASTER, 0x5);
17281 if (pi->pubpi.radiorev != 5)
17282 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17284 if (NREV_GE(pi->pubpi.phy_rev, 5))
17285 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17286 core, TSSIG, 0x31);
17288 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17289 core, TSSIG, 0x11);
17290 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17293 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17294 TX_SSI_MASTER, 0x9);
17295 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17297 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17299 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17307 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17308 u8 core_mask, u8 off)
17311 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17313 u8 shift = 0, val_shift = 0;
17315 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17318 for (core_num = 0; core_num < 2; core_num++) {
17322 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17323 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17324 val_mask = (0x1 << 0);
17328 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17329 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17330 val_mask = (0x1 << 1);
17334 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17335 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17336 val_mask = (0x1 << 2);
17340 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17341 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17342 val_mask = (0x1 << 4);
17346 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17347 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17348 val_mask = (0x1 << 5);
17352 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17353 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17354 val_mask = (0x1 << 6);
17358 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17359 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17360 val_mask = (0x1 << 7);
17364 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17365 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17366 val_mask = (0x7 << 8);
17370 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17371 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17372 val_mask = (0x7 << 13);
17377 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17378 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17379 val_mask = (0x7 << 0);
17384 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17385 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17386 val_mask = (0x7 << 4);
17391 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17392 val_addr = (core_num == 0) ? 0x7b : 0x7e;
17393 val_mask = (0xffff << 0);
17397 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17398 val_addr = (core_num == 0) ? 0x7c : 0x7f;
17399 val_mask = (0xffff << 0);
17403 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17404 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17405 val_mask = (0x3 << 6);
17409 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17410 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17411 val_mask = (0x1 << 15);
17420 and_phy_reg(pi, en_addr, ~en_mask);
17421 and_phy_reg(pi, val_addr, ~val_mask);
17424 if ((core_mask == 0)
17425 || (core_mask & (1 << core_num))) {
17426 or_phy_reg(pi, en_addr, en_mask);
17428 if (addr != 0xffff)
17429 mod_phy_reg(pi, val_addr,
17439 and_phy_reg(pi, 0xec, ~field);
17442 or_phy_reg(pi, 0xec, field);
17445 for (core_num = 0; core_num < 2; core_num++) {
17464 addr = (core_num == 0) ? 0x7a : 0x7d;
17467 addr = (core_num == 0) ? 0x7b : 0x7e;
17470 addr = (core_num == 0) ? 0x7c : 0x7f;
17494 mask = (0xf << 12);
17539 if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17540 mod_phy_reg(pi, addr, mask, (value << shift));
17543 or_phy_reg(pi, 0xec, (0x1 << 0));
17544 or_phy_reg(pi, 0x78, (0x1 << 0));
17546 and_phy_reg(pi, 0xec, ~(0x1 << 0));
17550 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17555 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17560 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17562 if (NREV_GE(pi->pubpi.phy_rev, 7))
17563 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17565 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17566 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17567 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17569 wlc_phy_stopplayback_nphy(pi);
17571 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17575 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
17577 wlc_phy_stopplayback_nphy(pi);
17578 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
17580 if (NREV_GE(pi->pubpi.phy_rev, 7))
17581 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17583 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17584 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17585 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17587 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17589 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17590 (u8) ((int_val >> 24) & 0xff);
17591 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17592 (u8) ((int_val >> 24) & 0xff);
17594 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17595 (u8) ((int_val >> 8) & 0xff);
17596 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17597 (u8) ((int_val >> 8) & 0xff);
17599 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17600 (u8) ((int_val >> 24) & 0xff);
17602 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17603 (u8) ((int_val >> 8) & 0xff);
17605 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17606 (u8) ((int_val >> 16) & 0xff);
17607 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17608 (u8) ((int_val) & 0xff);
17613 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17615 u8 idx, idx2, i, delta_ind;
17617 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17618 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17620 for (i = 0; i < 4; i++) {
17628 if (CHSPEC_IS40(pi->radio_chanspec)
17629 && NPHY_IS_SROM_REINTERPRET) {
17630 idx = TXP_FIRST_MCS_40_SISO;
17632 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17633 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
17640 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17641 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
17646 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17647 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
17652 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17653 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
17657 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17658 pi->tx_power_offset[idx];
17659 idx = idx + delta_ind;
17660 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17661 pi->tx_power_offset[idx];
17662 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17663 pi->tx_power_offset[idx];
17664 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17665 pi->tx_power_offset[idx++];
17667 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17668 pi->tx_power_offset[idx++];
17669 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17670 pi->tx_power_offset[idx];
17671 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17672 pi->tx_power_offset[idx];
17673 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17674 pi->tx_power_offset[idx++];
17676 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17677 pi->tx_power_offset[idx++];
17678 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17679 pi->tx_power_offset[idx];
17680 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17681 pi->tx_power_offset[idx];
17682 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17683 pi->tx_power_offset[idx++];
17685 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17686 pi->tx_power_offset[idx];
17687 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17688 pi->tx_power_offset[idx++];
17689 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17690 pi->tx_power_offset[idx];
17691 idx = idx + 1 - delta_ind;
17692 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17693 pi->tx_power_offset[idx];
17695 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17696 pi->tx_power_offset[idx];
17697 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17698 pi->tx_power_offset[idx];
17699 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17700 pi->tx_power_offset[idx];
17701 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17702 pi->tx_power_offset[idx];
17706 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17709 s16 a1[2], b0[2], b1[2];
17710 s8 target_pwr_qtrdbm[2];
17711 s32 num, den, pwr_est;
17712 u8 chan_freq_range;
17714 u32 tbl_id, tbl_len, tbl_offset;
17718 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17719 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17720 (void)R_REG(&pi->regs->maccontrol);
17724 if (pi->phyhang_avoid)
17725 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17727 or_phy_reg(pi, 0x122, (0x1 << 0));
17729 if (NREV_GE(pi->pubpi.phy_rev, 3))
17730 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17732 or_phy_reg(pi, 0x1e7, (0x1 << 15));
17734 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17735 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17737 if (pi->sh->sromrev < 4) {
17738 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17739 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17740 target_pwr_qtrdbm[0] = 13 * 4;
17741 target_pwr_qtrdbm[1] = 13 * 4;
17750 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17751 switch (chan_freq_range) {
17752 case WL_CHAN_FREQ_RANGE_2G:
17753 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17754 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17755 target_pwr_qtrdbm[0] =
17756 pi->nphy_pwrctrl_info[0].max_pwr_2g;
17757 target_pwr_qtrdbm[1] =
17758 pi->nphy_pwrctrl_info[1].max_pwr_2g;
17759 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17760 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17761 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17762 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17763 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17764 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17766 case WL_CHAN_FREQ_RANGE_5GL:
17767 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17768 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17769 target_pwr_qtrdbm[0] =
17770 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
17771 target_pwr_qtrdbm[1] =
17772 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
17773 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17774 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17775 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17776 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17777 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17778 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17780 case WL_CHAN_FREQ_RANGE_5GM:
17781 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17782 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17783 target_pwr_qtrdbm[0] =
17784 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
17785 target_pwr_qtrdbm[1] =
17786 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
17787 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17788 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17789 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17790 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17791 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17792 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17794 case WL_CHAN_FREQ_RANGE_5GH:
17795 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17796 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17797 target_pwr_qtrdbm[0] =
17798 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
17799 target_pwr_qtrdbm[1] =
17800 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
17801 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17802 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17803 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17804 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17805 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17806 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17809 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17810 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17811 target_pwr_qtrdbm[0] = 13 * 4;
17812 target_pwr_qtrdbm[1] = 13 * 4;
17823 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17824 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17826 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17827 if (pi->srom_fem2g.tssipos)
17828 or_phy_reg(pi, 0x1e9, (0x1 << 14));
17830 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17831 for (core = 0; core <= 1; core++) {
17833 if (CHSPEC_IS2G(pi->radio_chanspec))
17834 WRITE_RADIO_REG3(pi, RADIO_2057,
17839 WRITE_RADIO_REG3(pi, RADIO_2057,
17848 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17851 (pi->radio_chanspec)) ?
17853 write_radio_reg(pi,
17854 RADIO_2056_TX_TX_SSI_MUX |
17857 (pi->radio_chanspec)) ?
17861 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17862 RADIO_2056_TX0, 0x11);
17863 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17864 RADIO_2056_TX1, 0x11);
17869 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17870 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17871 (void)R_REG(&pi->regs->maccontrol);
17875 if (NREV_GE(pi->pubpi.phy_rev, 7))
17876 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17877 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17879 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17880 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17882 if (NREV_GE(pi->pubpi.phy_rev, 7))
17883 mod_phy_reg(pi, 0x222, (0xff << 0),
17884 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17885 else if (NREV_GT(pi->pubpi.phy_rev, 1))
17886 mod_phy_reg(pi, 0x222, (0xff << 0),
17887 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17889 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17890 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17892 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
17894 write_phy_reg(pi, 0x1e9,
17895 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
17897 write_phy_reg(pi, 0x1ea,
17898 (target_pwr_qtrdbm[0] << 0) |
17899 (target_pwr_qtrdbm[1] << 8));
17903 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
17904 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
17906 for (idx = 0; idx < tbl_len; idx++) {
17908 (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
17909 den = 32768 + a1[tbl_id - 26] * idx;
17910 pwr_est = max(((4 * num + den / 2) / den), -8);
17911 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17913 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
17917 [tbl_id - 26] + 1);
17919 regval[idx] = (u32) pwr_est;
17921 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
17925 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
17926 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
17927 pi->adj_pwr_tbl_nphy);
17928 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
17929 pi->adj_pwr_tbl_nphy);
17931 if (pi->phyhang_avoid)
17932 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17935 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
17937 u32 *tx_pwrctrl_tbl = NULL;
17939 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17940 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17941 if ((pi->pubpi.radiorev == 4)
17942 || (pi->pubpi.radiorev == 6))
17944 nphy_tpc_txgain_ipa_2g_2057rev4n6;
17945 else if (pi->pubpi.radiorev == 3)
17947 nphy_tpc_txgain_ipa_2g_2057rev3;
17948 else if (pi->pubpi.radiorev == 5)
17950 nphy_tpc_txgain_ipa_2g_2057rev5;
17951 else if ((pi->pubpi.radiorev == 7)
17952 || (pi->pubpi.radiorev == 8))
17954 nphy_tpc_txgain_ipa_2g_2057rev7;
17955 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
17956 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
17957 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
17958 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
17960 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
17964 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17965 if ((pi->pubpi.radiorev == 3) ||
17966 (pi->pubpi.radiorev == 4) ||
17967 (pi->pubpi.radiorev == 6))
17968 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
17969 else if ((pi->pubpi.radiorev == 7)
17970 || (pi->pubpi.radiorev == 8))
17972 nphy_tpc_txgain_ipa_5g_2057rev7;
17974 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
17978 return tx_pwrctrl_tbl;
17981 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
17983 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17984 if (pi->nphy_rssical_chanspec_2G == 0)
17987 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17988 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
17989 RADIO_2057_VCM_MASK,
17991 rssical_radio_regs_2G[0]);
17992 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
17993 RADIO_2057_VCM_MASK,
17995 rssical_radio_regs_2G[1]);
17998 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
17999 RADIO_2056_VCM_MASK,
18001 rssical_radio_regs_2G[0]);
18003 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18004 RADIO_2056_VCM_MASK,
18006 rssical_radio_regs_2G[1]);
18009 write_phy_reg(pi, 0x1a6,
18010 pi->rssical_cache.rssical_phyregs_2G[0]);
18011 write_phy_reg(pi, 0x1ac,
18012 pi->rssical_cache.rssical_phyregs_2G[1]);
18013 write_phy_reg(pi, 0x1b2,
18014 pi->rssical_cache.rssical_phyregs_2G[2]);
18015 write_phy_reg(pi, 0x1b8,
18016 pi->rssical_cache.rssical_phyregs_2G[3]);
18017 write_phy_reg(pi, 0x1a4,
18018 pi->rssical_cache.rssical_phyregs_2G[4]);
18019 write_phy_reg(pi, 0x1aa,
18020 pi->rssical_cache.rssical_phyregs_2G[5]);
18021 write_phy_reg(pi, 0x1b0,
18022 pi->rssical_cache.rssical_phyregs_2G[6]);
18023 write_phy_reg(pi, 0x1b6,
18024 pi->rssical_cache.rssical_phyregs_2G[7]);
18025 write_phy_reg(pi, 0x1a5,
18026 pi->rssical_cache.rssical_phyregs_2G[8]);
18027 write_phy_reg(pi, 0x1ab,
18028 pi->rssical_cache.rssical_phyregs_2G[9]);
18029 write_phy_reg(pi, 0x1b1,
18030 pi->rssical_cache.rssical_phyregs_2G[10]);
18031 write_phy_reg(pi, 0x1b7,
18032 pi->rssical_cache.rssical_phyregs_2G[11]);
18035 if (pi->nphy_rssical_chanspec_5G == 0)
18038 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18039 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18040 RADIO_2057_VCM_MASK,
18042 rssical_radio_regs_5G[0]);
18043 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18044 RADIO_2057_VCM_MASK,
18046 rssical_radio_regs_5G[1]);
18049 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18050 RADIO_2056_VCM_MASK,
18052 rssical_radio_regs_5G[0]);
18054 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18055 RADIO_2056_VCM_MASK,
18057 rssical_radio_regs_5G[1]);
18060 write_phy_reg(pi, 0x1a6,
18061 pi->rssical_cache.rssical_phyregs_5G[0]);
18062 write_phy_reg(pi, 0x1ac,
18063 pi->rssical_cache.rssical_phyregs_5G[1]);
18064 write_phy_reg(pi, 0x1b2,
18065 pi->rssical_cache.rssical_phyregs_5G[2]);
18066 write_phy_reg(pi, 0x1b8,
18067 pi->rssical_cache.rssical_phyregs_5G[3]);
18068 write_phy_reg(pi, 0x1a4,
18069 pi->rssical_cache.rssical_phyregs_5G[4]);
18070 write_phy_reg(pi, 0x1aa,
18071 pi->rssical_cache.rssical_phyregs_5G[5]);
18072 write_phy_reg(pi, 0x1b0,
18073 pi->rssical_cache.rssical_phyregs_5G[6]);
18074 write_phy_reg(pi, 0x1b6,
18075 pi->rssical_cache.rssical_phyregs_5G[7]);
18076 write_phy_reg(pi, 0x1a5,
18077 pi->rssical_cache.rssical_phyregs_5G[8]);
18078 write_phy_reg(pi, 0x1ab,
18079 pi->rssical_cache.rssical_phyregs_5G[9]);
18080 write_phy_reg(pi, 0x1b1,
18081 pi->rssical_cache.rssical_phyregs_5G[10]);
18082 write_phy_reg(pi, 0x1b7,
18083 pi->rssical_cache.rssical_phyregs_5G[11]);
18087 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
18091 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
18092 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
18093 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18094 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18096 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18099 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18100 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
18101 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
18103 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
18104 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
18107 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18111 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
18113 bool save_bbmult = false;
18114 u8 txcal_index_2057_rev5n7 = 0;
18115 u8 txcal_index_2057_rev3n4n6 = 10;
18117 if (pi->use_int_tx_iqlo_cal_nphy) {
18118 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18119 if ((pi->pubpi.radiorev == 3) ||
18120 (pi->pubpi.radiorev == 4) ||
18121 (pi->pubpi.radiorev == 6)) {
18123 pi->nphy_txcal_pwr_idx[0] =
18124 txcal_index_2057_rev3n4n6;
18125 pi->nphy_txcal_pwr_idx[1] =
18126 txcal_index_2057_rev3n4n6;
18127 wlc_phy_txpwr_index_nphy(
18129 txcal_index_2057_rev3n4n6,
18133 pi->nphy_txcal_pwr_idx[0] =
18134 txcal_index_2057_rev5n7;
18135 pi->nphy_txcal_pwr_idx[1] =
18136 txcal_index_2057_rev5n7;
18137 wlc_phy_txpwr_index_nphy(
18139 txcal_index_2057_rev5n7,
18142 save_bbmult = true;
18144 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
18145 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18146 if (pi->sh->hw_phytxchain != 3) {
18147 pi->nphy_txcal_pwr_idx[1] =
18148 pi->nphy_txcal_pwr_idx[0];
18149 wlc_phy_txpwr_index_nphy(pi, 3,
18151 nphy_txcal_pwr_idx[0],
18153 save_bbmult = true;
18156 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18158 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18159 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18162 pi->nphy_txcal_pwr_idx[0] = 80;
18163 pi->nphy_txcal_pwr_idx[1] = 80;
18164 wlc_phy_txpwr_index_nphy(pi, 3, 80,
18166 save_bbmult = true;
18169 wlc_phy_internal_cal_txgain_nphy(pi);
18170 save_bbmult = true;
18173 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18175 if (CHSPEC_IS2G(pi->radio_chanspec))
18176 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18179 wlc_phy_cal_txgainctrl_nphy(pi, 14,
18182 wlc_phy_internal_cal_txgain_nphy(pi);
18183 save_bbmult = true;
18188 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18192 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18193 &pi->nphy_txcal_bbmult);
18197 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18204 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18205 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18206 if (core_code == RADIO_MIMO_CORESEL_CORE1
18207 && core == PHY_CORE_1)
18209 else if (core_code == RADIO_MIMO_CORESEL_CORE2
18210 && core == PHY_CORE_0)
18213 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18215 mask = (0x1 << 10);
18217 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18221 if (field == NPHY_RfctrlIntc_override_OFF) {
18223 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18226 wlc_phy_force_rfseq_nphy(pi,
18227 NPHY_RFSEQ_RESET2RX);
18228 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
18230 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18232 mask = (0x1 << 6) | (0x1 << 7);
18237 PHY_CORE_0) ? 0x91 : 0x92,
18242 PHY_CORE_0) ? 0x91 : 0x92,
18245 and_phy_reg(pi, 0x2ff, (u16)
18247 or_phy_reg(pi, 0x2ff, (0x1 << 13));
18248 or_phy_reg(pi, 0x2ff, (0x1 << 0));
18251 mask = (0x1 << 6) |
18253 (0x1 << 8) | (0x1 << 9);
18257 PHY_CORE_0) ? 0x91 : 0x92,
18264 PHY_CORE_0) ? 0xe7 : 0xec,
18267 mask = (core == PHY_CORE_0) ?
18268 (0x1 << 0) : (0x1 << 1);
18269 val = 1 << ((core == PHY_CORE_0) ?
18271 mod_phy_reg(pi, 0x78, mask, val);
18273 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18275 if (WARN(read_phy_reg(pi, 0x78) & val,
18276 "HW error: override failed"))
18283 PHY_CORE_0) ? 0xe7 : 0xec,
18286 } else if (field == NPHY_RfctrlIntc_override_PA) {
18287 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18289 mask = (0x1 << 4) | (0x1 << 5);
18291 if (CHSPEC_IS5G(pi->radio_chanspec))
18298 PHY_CORE_0) ? 0x91 : 0x92,
18303 PHY_CORE_0) ? 0x91 : 0x92,
18307 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18316 PHY_CORE_0) ? 0x91 : 0x92,
18319 } else if (field ==
18320 NPHY_RfctrlIntc_override_EXT_LNA_PU) {
18321 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18322 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18329 : 0x92, mask, val);
18343 : 0x92, mask, val);
18352 mask = (0x1 << 11);
18356 PHY_CORE_0) ? 0x91 : 0x92,
18360 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18369 PHY_CORE_0) ? 0x91 : 0x92,
18372 } else if (field ==
18373 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
18374 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18375 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18382 : 0x92, mask, val);
18396 : 0x92, mask, val);
18405 mask = (0x1 << 11);
18409 PHY_CORE_0) ? 0x91 : 0x92,
18413 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18422 PHY_CORE_0) ? 0x91 : 0x92,
18431 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18434 int gainctrl_loopidx;
18436 u16 m0m1, curr_m0m1;
18441 u16 phy_saveregs[4];
18443 u16 ampl_test = 250;
18445 bool phyhang_avoid_state = false;
18447 if (NREV_GE(pi->pubpi.phy_rev, 7))
18452 if (CHSPEC_IS40(pi->radio_chanspec))
18457 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18458 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18460 if (pi->phyhang_avoid)
18461 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18463 phyhang_avoid_state = pi->phyhang_avoid;
18464 pi->phyhang_avoid = false;
18466 phy_saveregs[0] = read_phy_reg(pi, 0x91);
18467 phy_saveregs[1] = read_phy_reg(pi, 0x92);
18468 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18469 phy_saveregs[3] = read_phy_reg(pi, 0xec);
18470 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18471 RADIO_MIMO_CORESEL_CORE1 |
18472 RADIO_MIMO_CORESEL_CORE2);
18475 wlc_phy_rfctrlintc_override_nphy(pi,
18476 NPHY_RfctrlIntc_override_TRSW,
18477 0x2, RADIO_MIMO_CORESEL_CORE1);
18478 wlc_phy_rfctrlintc_override_nphy(pi,
18479 NPHY_RfctrlIntc_override_TRSW,
18480 0x8, RADIO_MIMO_CORESEL_CORE2);
18482 wlc_phy_rfctrlintc_override_nphy(pi,
18483 NPHY_RfctrlIntc_override_TRSW,
18484 0x1, RADIO_MIMO_CORESEL_CORE1);
18485 wlc_phy_rfctrlintc_override_nphy(pi,
18486 NPHY_RfctrlIntc_override_TRSW,
18487 0x7, RADIO_MIMO_CORESEL_CORE2);
18490 orig_BBConfig = read_phy_reg(pi, 0x01);
18491 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18493 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18495 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18496 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18498 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18499 gainctrl_loopidx++) {
18500 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18503 if (core == PHY_CORE_0)
18504 curr_m0m1 = m0m1 & 0xff00;
18506 curr_m0m1 = m0m1 & 0x00ff;
18508 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18509 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18513 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18514 NPHY_CAL_TSSISAMPS);
18516 pi->nphy_bb_mult_save = 0;
18517 wlc_phy_stopplayback_nphy(pi);
18519 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18521 txpwrindex -= stepsize * delta_power;
18522 if (txpwrindex < 0)
18524 else if (txpwrindex > 127)
18527 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18528 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18529 (pi->srom_fem5g.extpagain == 3)) {
18530 if (txpwrindex < 30)
18534 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18535 (pi->srom_fem2g.extpagain == 3)) {
18536 if (txpwrindex < 50)
18541 wlc_phy_txpwr_index_nphy(pi, (1 << core),
18542 (u8) txpwrindex, true);
18545 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18551 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18553 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18556 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18557 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18561 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18562 NPHY_CAL_TSSISAMPS);
18564 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18568 pi->nphy_bb_mult_save = 0;
18569 wlc_phy_stopplayback_nphy(pi);
18573 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18574 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18576 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18578 write_phy_reg(pi, 0x01, orig_BBConfig);
18580 write_phy_reg(pi, 0x91, phy_saveregs[0]);
18581 write_phy_reg(pi, 0x92, phy_saveregs[1]);
18582 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18583 write_phy_reg(pi, 0xec, phy_saveregs[3]);
18585 pi->phyhang_avoid = phyhang_avoid_state;
18587 if (pi->phyhang_avoid)
18588 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18591 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18595 u16 *txcal_radio_regs = NULL;
18597 if (pi->phyhang_avoid)
18598 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18600 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18602 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18603 &pi->calibration_cache.
18606 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18608 pi->calibration_cache.txcal_radio_regs_2G;
18609 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18611 pi->calibration_cache.txcal_radio_regs_2G[0] =
18613 RADIO_2056_TX_LOFT_FINE_I |
18615 pi->calibration_cache.txcal_radio_regs_2G[1] =
18617 RADIO_2056_TX_LOFT_FINE_Q |
18619 pi->calibration_cache.txcal_radio_regs_2G[2] =
18621 RADIO_2056_TX_LOFT_FINE_I |
18623 pi->calibration_cache.txcal_radio_regs_2G[3] =
18625 RADIO_2056_TX_LOFT_FINE_Q |
18628 pi->calibration_cache.txcal_radio_regs_2G[4] =
18630 RADIO_2056_TX_LOFT_COARSE_I |
18632 pi->calibration_cache.txcal_radio_regs_2G[5] =
18634 RADIO_2056_TX_LOFT_COARSE_Q |
18636 pi->calibration_cache.txcal_radio_regs_2G[6] =
18638 RADIO_2056_TX_LOFT_COARSE_I |
18640 pi->calibration_cache.txcal_radio_regs_2G[7] =
18642 RADIO_2056_TX_LOFT_COARSE_Q |
18645 pi->calibration_cache.txcal_radio_regs_2G[0] =
18646 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18647 pi->calibration_cache.txcal_radio_regs_2G[1] =
18648 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18649 pi->calibration_cache.txcal_radio_regs_2G[2] =
18650 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18651 pi->calibration_cache.txcal_radio_regs_2G[3] =
18652 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18655 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
18656 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18659 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18660 &pi->calibration_cache.
18663 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18665 pi->calibration_cache.txcal_radio_regs_5G;
18666 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18668 pi->calibration_cache.txcal_radio_regs_5G[0] =
18670 RADIO_2056_TX_LOFT_FINE_I |
18672 pi->calibration_cache.txcal_radio_regs_5G[1] =
18674 RADIO_2056_TX_LOFT_FINE_Q |
18676 pi->calibration_cache.txcal_radio_regs_5G[2] =
18678 RADIO_2056_TX_LOFT_FINE_I |
18680 pi->calibration_cache.txcal_radio_regs_5G[3] =
18682 RADIO_2056_TX_LOFT_FINE_Q |
18685 pi->calibration_cache.txcal_radio_regs_5G[4] =
18687 RADIO_2056_TX_LOFT_COARSE_I |
18689 pi->calibration_cache.txcal_radio_regs_5G[5] =
18691 RADIO_2056_TX_LOFT_COARSE_Q |
18693 pi->calibration_cache.txcal_radio_regs_5G[6] =
18695 RADIO_2056_TX_LOFT_COARSE_I |
18697 pi->calibration_cache.txcal_radio_regs_5G[7] =
18699 RADIO_2056_TX_LOFT_COARSE_Q |
18702 pi->calibration_cache.txcal_radio_regs_5G[0] =
18703 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18704 pi->calibration_cache.txcal_radio_regs_5G[1] =
18705 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18706 pi->calibration_cache.txcal_radio_regs_5G[2] =
18707 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18708 pi->calibration_cache.txcal_radio_regs_5G[3] =
18709 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18712 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
18713 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18715 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18716 for (coreNum = 0; coreNum <= 1; coreNum++) {
18718 txcal_radio_regs[2 * coreNum] =
18719 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18721 txcal_radio_regs[2 * coreNum + 1] =
18722 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18725 txcal_radio_regs[2 * coreNum + 4] =
18726 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18728 txcal_radio_regs[2 * coreNum + 5] =
18729 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18734 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18736 if (pi->phyhang_avoid)
18737 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18740 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18742 struct nphy_iq_comp tx_comp;
18744 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18746 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18747 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18748 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18749 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18752 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18755 u16 txcal_coeffs_bphy[4];
18758 u16 *txcal_radio_regs = NULL;
18760 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18761 if (pi->nphy_iqcal_chanspec_2G == 0)
18764 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18765 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18767 if (pi->nphy_iqcal_chanspec_5G == 0)
18770 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18771 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18774 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18776 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18777 txcal_coeffs_bphy[0] = tbl_ptr[0];
18778 txcal_coeffs_bphy[1] = tbl_ptr[1];
18779 txcal_coeffs_bphy[2] = tbl_ptr[2];
18780 txcal_coeffs_bphy[3] = tbl_ptr[3];
18782 txcal_coeffs_bphy[0] = 0;
18783 txcal_coeffs_bphy[1] = 0;
18784 txcal_coeffs_bphy[2] = 0;
18785 txcal_coeffs_bphy[3] = 0;
18788 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
18789 txcal_coeffs_bphy);
18791 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18793 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18795 if (NREV_LT(pi->pubpi.phy_rev, 2))
18796 wlc_phy_tx_iq_war_nphy(pi);
18798 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18799 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18801 pi->calibration_cache.txcal_radio_regs_2G;
18802 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18804 write_radio_reg(pi,
18805 RADIO_2056_TX_LOFT_FINE_I |
18807 pi->calibration_cache.
18808 txcal_radio_regs_2G[0]);
18809 write_radio_reg(pi,
18810 RADIO_2056_TX_LOFT_FINE_Q |
18812 pi->calibration_cache.
18813 txcal_radio_regs_2G[1]);
18814 write_radio_reg(pi,
18815 RADIO_2056_TX_LOFT_FINE_I |
18817 pi->calibration_cache.
18818 txcal_radio_regs_2G[2]);
18819 write_radio_reg(pi,
18820 RADIO_2056_TX_LOFT_FINE_Q |
18822 pi->calibration_cache.
18823 txcal_radio_regs_2G[3]);
18825 write_radio_reg(pi,
18826 RADIO_2056_TX_LOFT_COARSE_I |
18828 pi->calibration_cache.
18829 txcal_radio_regs_2G[4]);
18830 write_radio_reg(pi,
18831 RADIO_2056_TX_LOFT_COARSE_Q |
18833 pi->calibration_cache.
18834 txcal_radio_regs_2G[5]);
18835 write_radio_reg(pi,
18836 RADIO_2056_TX_LOFT_COARSE_I |
18838 pi->calibration_cache.
18839 txcal_radio_regs_2G[6]);
18840 write_radio_reg(pi,
18841 RADIO_2056_TX_LOFT_COARSE_Q |
18843 pi->calibration_cache.
18844 txcal_radio_regs_2G[7]);
18846 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18847 pi->calibration_cache.
18848 txcal_radio_regs_2G[0]);
18849 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18850 pi->calibration_cache.
18851 txcal_radio_regs_2G[1]);
18852 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18853 pi->calibration_cache.
18854 txcal_radio_regs_2G[2]);
18855 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18856 pi->calibration_cache.
18857 txcal_radio_regs_2G[3]);
18860 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18861 &pi->calibration_cache.
18864 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18866 pi->calibration_cache.txcal_radio_regs_5G;
18867 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18869 write_radio_reg(pi,
18870 RADIO_2056_TX_LOFT_FINE_I |
18872 pi->calibration_cache.
18873 txcal_radio_regs_5G[0]);
18874 write_radio_reg(pi,
18875 RADIO_2056_TX_LOFT_FINE_Q |
18877 pi->calibration_cache.
18878 txcal_radio_regs_5G[1]);
18879 write_radio_reg(pi,
18880 RADIO_2056_TX_LOFT_FINE_I |
18882 pi->calibration_cache.
18883 txcal_radio_regs_5G[2]);
18884 write_radio_reg(pi,
18885 RADIO_2056_TX_LOFT_FINE_Q |
18887 pi->calibration_cache.
18888 txcal_radio_regs_5G[3]);
18890 write_radio_reg(pi,
18891 RADIO_2056_TX_LOFT_COARSE_I |
18893 pi->calibration_cache.
18894 txcal_radio_regs_5G[4]);
18895 write_radio_reg(pi,
18896 RADIO_2056_TX_LOFT_COARSE_Q |
18898 pi->calibration_cache.
18899 txcal_radio_regs_5G[5]);
18900 write_radio_reg(pi,
18901 RADIO_2056_TX_LOFT_COARSE_I |
18903 pi->calibration_cache.
18904 txcal_radio_regs_5G[6]);
18905 write_radio_reg(pi,
18906 RADIO_2056_TX_LOFT_COARSE_Q |
18908 pi->calibration_cache.
18909 txcal_radio_regs_5G[7]);
18911 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18912 pi->calibration_cache.
18913 txcal_radio_regs_5G[0]);
18914 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18915 pi->calibration_cache.
18916 txcal_radio_regs_5G[1]);
18917 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18918 pi->calibration_cache.
18919 txcal_radio_regs_5G[2]);
18920 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18921 pi->calibration_cache.
18922 txcal_radio_regs_5G[3]);
18925 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18926 &pi->calibration_cache.
18930 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18931 for (coreNum = 0; coreNum <= 1; coreNum++) {
18933 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18935 txcal_radio_regs[2 * coreNum]);
18936 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18938 txcal_radio_regs[2 * coreNum + 1]);
18940 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18942 txcal_radio_regs[2 * coreNum + 4]);
18943 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18945 txcal_radio_regs[2 * coreNum + 5]);
18950 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
18954 u32 iqcomp, locomp, curr_locomp;
18955 s8 locomp_i, locomp_q;
18956 s8 curr_locomp_i, curr_locomp_q;
18957 u32 tbl_id, tbl_len, tbl_offset;
18960 if (pi->phyhang_avoid)
18961 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18963 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
18967 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18968 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18971 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
18972 (iqloCalbuf[1] & 0x3ff)
18973 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
18974 (iqloCalbuf[3] & 0x3ff);
18976 for (idx = 0; idx < tbl_len; idx++)
18977 regval[idx] = iqcomp;
18978 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18983 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18984 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18987 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
18988 locomp_i = (s8) ((locomp >> 8) & 0xff);
18989 locomp_q = (s8) ((locomp) & 0xff);
18990 for (idx = 0; idx < tbl_len; idx++) {
18991 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18992 curr_locomp_i = locomp_i;
18993 curr_locomp_q = locomp_q;
18995 curr_locomp_i = (s8) ((locomp_i *
18996 nphy_tpc_loscale[idx] +
19000 nphy_tpc_loscale[idx] +
19003 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
19004 curr_locomp |= (u32) (curr_locomp_q & 0xff);
19005 regval[idx] = curr_locomp;
19007 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19011 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19013 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
19014 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
19017 if (pi->phyhang_avoid)
19018 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19021 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
19025 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19026 if (CHSPEC_IS40(pi->radio_chanspec))
19032 if (CHSPEC_IS40(pi->radio_chanspec))
19038 write_phy_reg(pi, 0xe8,
19041 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19045 if (CHSPEC_IS40(pi->radio_chanspec))
19050 write_phy_reg(pi, 0xe9,
19053 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19059 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
19061 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19062 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19063 CHSPEC_IS40(pi->radio_chanspec)) {
19064 if (!pi->nphy_anarxlpf_adjusted) {
19065 write_radio_reg(pi,
19066 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19068 ((pi->nphy_rccal_value +
19069 reduction_factr) | 0x80));
19071 pi->nphy_anarxlpf_adjusted = true;
19074 if (pi->nphy_anarxlpf_adjusted) {
19075 write_radio_reg(pi,
19076 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19078 (pi->nphy_rccal_value | 0x80));
19080 pi->nphy_anarxlpf_adjusted = false;
19087 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
19088 int *tone_id_buf, u32 *noise_var_buf)
19094 CHSPEC_IS40(pi->radio_chanspec) ?
19095 NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
19097 if (pi->nphy_noisevars_adjusted) {
19098 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
19099 tone_id = pi->nphy_saved_noisevars.tone_id[i];
19100 offset = (tone_id >= 0) ?
19102 2) + 1) : (tbllen + (tone_id * 2) + 1);
19103 wlc_phy_table_write_nphy(
19104 pi, NPHY_TBL_ID_NOISEVAR, 1,
19106 &pi->nphy_saved_noisevars.min_noise_vars[i]);
19109 pi->nphy_saved_noisevars.bufcount = 0;
19110 pi->nphy_noisevars_adjusted = false;
19113 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
19114 pi->nphy_saved_noisevars.bufcount = 0;
19116 for (i = 0; i < ntones; i++) {
19117 tone_id = tone_id_buf[i];
19118 offset = (tone_id >= 0) ?
19119 ((tone_id * 2) + 1) :
19120 (tbllen + (tone_id * 2) + 1);
19121 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
19122 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19124 &pi->nphy_saved_noisevars.
19125 min_noise_vars[i]);
19126 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19127 offset, 32, &noise_var_buf[i]);
19128 pi->nphy_saved_noisevars.bufcount++;
19131 pi->nphy_noisevars_adjusted = true;
19135 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
19139 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19140 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19141 CHSPEC_IS40(pi->radio_chanspec)) {
19142 if (!pi->nphy_crsminpwr_adjusted) {
19143 regval = read_phy_reg(pi, 0x27d);
19144 pi->nphy_crsminpwr[0] = regval & 0xff;
19146 regval |= (u16) minpwr;
19147 write_phy_reg(pi, 0x27d, regval);
19149 regval = read_phy_reg(pi, 0x280);
19150 pi->nphy_crsminpwr[1] = regval & 0xff;
19152 regval |= (u16) minpwr;
19153 write_phy_reg(pi, 0x280, regval);
19155 regval = read_phy_reg(pi, 0x283);
19156 pi->nphy_crsminpwr[2] = regval & 0xff;
19158 regval |= (u16) minpwr;
19159 write_phy_reg(pi, 0x283, regval);
19161 pi->nphy_crsminpwr_adjusted = true;
19164 if (pi->nphy_crsminpwr_adjusted) {
19165 regval = read_phy_reg(pi, 0x27d);
19167 regval |= pi->nphy_crsminpwr[0];
19168 write_phy_reg(pi, 0x27d, regval);
19170 regval = read_phy_reg(pi, 0x280);
19172 regval |= pi->nphy_crsminpwr[1];
19173 write_phy_reg(pi, 0x280, regval);
19175 regval = read_phy_reg(pi, 0x283);
19177 regval |= pi->nphy_crsminpwr[2];
19178 write_phy_reg(pi, 0x283, regval);
19180 pi->nphy_crsminpwr_adjusted = false;
19186 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19188 u16 cur_channel = 0;
19189 int nphy_adj_tone_id_buf[] = { 57, 58 };
19190 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19191 bool isAdjustNoiseVar = false;
19192 uint numTonesAdjust = 0;
19195 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19196 if (pi->phyhang_avoid)
19197 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19199 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19201 if (pi->nphy_gband_spurwar_en) {
19203 wlc_phy_adjust_rx_analpfbw_nphy(
19205 NPHY_ANARXLPFBW_REDUCTIONFACT);
19207 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19208 if ((cur_channel == 11)
19209 && CHSPEC_IS40(pi->radio_chanspec))
19210 wlc_phy_adjust_min_noisevar_nphy(
19212 nphy_adj_tone_id_buf,
19213 nphy_adj_noise_var_buf);
19215 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19220 wlc_phy_adjust_crsminpwr_nphy(pi,
19221 NPHY_ADJUSTED_MINCRSPOWER);
19224 if ((pi->nphy_gband_spurwar2_en)
19225 && CHSPEC_IS2G(pi->radio_chanspec)) {
19227 if (CHSPEC_IS40(pi->radio_chanspec)) {
19228 switch (cur_channel) {
19230 nphy_adj_tone_id_buf[0] = 57;
19231 nphy_adj_tone_id_buf[1] = 58;
19232 nphy_adj_noise_var_buf[0] = 0x22f;
19233 nphy_adj_noise_var_buf[1] = 0x25f;
19234 isAdjustNoiseVar = true;
19237 nphy_adj_tone_id_buf[0] = 41;
19238 nphy_adj_tone_id_buf[1] = 42;
19239 nphy_adj_noise_var_buf[0] = 0x22f;
19240 nphy_adj_noise_var_buf[1] = 0x25f;
19241 isAdjustNoiseVar = true;
19244 nphy_adj_tone_id_buf[0] = 25;
19245 nphy_adj_tone_id_buf[1] = 26;
19246 nphy_adj_noise_var_buf[0] = 0x24f;
19247 nphy_adj_noise_var_buf[1] = 0x25f;
19248 isAdjustNoiseVar = true;
19251 nphy_adj_tone_id_buf[0] = 9;
19252 nphy_adj_tone_id_buf[1] = 10;
19253 nphy_adj_noise_var_buf[0] = 0x22f;
19254 nphy_adj_noise_var_buf[1] = 0x24f;
19255 isAdjustNoiseVar = true;
19258 nphy_adj_tone_id_buf[0] = 121;
19259 nphy_adj_tone_id_buf[1] = 122;
19260 nphy_adj_noise_var_buf[0] = 0x18f;
19261 nphy_adj_noise_var_buf[1] = 0x24f;
19262 isAdjustNoiseVar = true;
19265 nphy_adj_tone_id_buf[0] = 105;
19266 nphy_adj_tone_id_buf[1] = 106;
19267 nphy_adj_noise_var_buf[0] = 0x22f;
19268 nphy_adj_noise_var_buf[1] = 0x25f;
19269 isAdjustNoiseVar = true;
19272 nphy_adj_tone_id_buf[0] = 89;
19273 nphy_adj_tone_id_buf[1] = 90;
19274 nphy_adj_noise_var_buf[0] = 0x22f;
19275 nphy_adj_noise_var_buf[1] = 0x24f;
19276 isAdjustNoiseVar = true;
19279 nphy_adj_tone_id_buf[0] = 73;
19280 nphy_adj_tone_id_buf[1] = 74;
19281 nphy_adj_noise_var_buf[0] = 0x22f;
19282 nphy_adj_noise_var_buf[1] = 0x24f;
19283 isAdjustNoiseVar = true;
19286 isAdjustNoiseVar = false;
19291 if (isAdjustNoiseVar) {
19292 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
19293 sizeof(nphy_adj_tone_id_buf[0]);
19295 wlc_phy_adjust_min_noisevar_nphy(
19298 nphy_adj_tone_id_buf,
19299 nphy_adj_noise_var_buf);
19304 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19309 if ((pi->nphy_aband_spurwar_en) &&
19310 (CHSPEC_IS5G(pi->radio_chanspec))) {
19311 switch (cur_channel) {
19313 nphy_adj_tone_id_buf[0] = 32;
19314 nphy_adj_noise_var_buf[0] = 0x25f;
19319 nphy_adj_tone_id_buf[0] = 0;
19320 nphy_adj_noise_var_buf[0] = 0x0;
19323 nphy_adj_tone_id_buf[0] = 32;
19324 nphy_adj_noise_var_buf[0] = 0x21f;
19327 nphy_adj_tone_id_buf[0] = 16;
19328 nphy_adj_noise_var_buf[0] = 0x23f;
19332 nphy_adj_tone_id_buf[0] = 48;
19333 nphy_adj_noise_var_buf[0] = 0x23f;
19336 nphy_adj_tone_id_buf[0] = 0;
19337 nphy_adj_noise_var_buf[0] = 0x0;
19341 if (nphy_adj_tone_id_buf[0]
19342 && nphy_adj_noise_var_buf[0])
19343 wlc_phy_adjust_min_noisevar_nphy(
19345 nphy_adj_tone_id_buf,
19346 nphy_adj_noise_var_buf);
19348 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19352 if (pi->phyhang_avoid)
19353 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19357 void wlc_phy_init_nphy(struct brcms_phy *pi)
19361 struct nphy_txgains target_gain;
19362 u8 tx_pwr_ctrl_state;
19363 bool do_nphy_cal = false;
19365 uint origidx, intr_val;
19366 struct d11regs *regs;
19367 u32 d11_clk_ctl_st;
19368 bool do_rssi_cal = false;
19372 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19373 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
19375 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19376 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
19377 (pi->sh->chippkg == BCM4718_PKG_ID))) {
19378 if ((pi->sh->boardflags & BFL_EXTLNA) &&
19379 (CHSPEC_IS2G(pi->radio_chanspec)))
19380 ai_corereg(pi->sh->sih, SI_CC_IDX,
19381 offsetof(struct chipcregs, chipcontrol),
19385 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
19386 CHSPEC_IS40(pi->radio_chanspec)) {
19388 regs = (struct d11regs *) ai_switch_core(pi->sh->sih,
19389 D11_CORE_ID, &origidx,
19391 d11_clk_ctl_st = R_REG(®s->clk_ctl_st);
19392 AND_REG(®s->clk_ctl_st,
19393 ~(CCS_FORCEHT | CCS_HTAREQ));
19395 W_REG(®s->clk_ctl_st, d11_clk_ctl_st);
19397 ai_restore_core(pi->sh->sih, origidx, intr_val);
19400 pi->use_int_tx_iqlo_cal_nphy =
19402 (NREV_GE(pi->pubpi.phy_rev, 7) ||
19403 (NREV_GE(pi->pubpi.phy_rev, 5)
19404 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19406 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
19408 pi->nphy_deaf_count = 0;
19410 wlc_phy_tbl_init_nphy(pi);
19412 pi->nphy_crsminpwr_adjusted = false;
19413 pi->nphy_noisevars_adjusted = false;
19415 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19416 write_phy_reg(pi, 0xe7, 0);
19417 write_phy_reg(pi, 0xec, 0);
19418 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19419 write_phy_reg(pi, 0x342, 0);
19420 write_phy_reg(pi, 0x343, 0);
19421 write_phy_reg(pi, 0x346, 0);
19422 write_phy_reg(pi, 0x347, 0);
19424 write_phy_reg(pi, 0xe5, 0);
19425 write_phy_reg(pi, 0xe6, 0);
19427 write_phy_reg(pi, 0xec, 0);
19430 write_phy_reg(pi, 0x91, 0);
19431 write_phy_reg(pi, 0x92, 0);
19432 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19433 write_phy_reg(pi, 0x93, 0);
19434 write_phy_reg(pi, 0x94, 0);
19437 and_phy_reg(pi, 0xa1, ~3);
19439 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19440 write_phy_reg(pi, 0x8f, 0);
19441 write_phy_reg(pi, 0xa5, 0);
19443 write_phy_reg(pi, 0xa5, 0);
19446 if (NREV_IS(pi->pubpi.phy_rev, 2))
19447 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19448 else if (NREV_LT(pi->pubpi.phy_rev, 2))
19449 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19451 write_phy_reg(pi, 0x203, 32);
19452 write_phy_reg(pi, 0x201, 32);
19454 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19455 write_phy_reg(pi, 0x20d, 160);
19457 write_phy_reg(pi, 0x20d, 184);
19459 write_phy_reg(pi, 0x13a, 200);
19461 write_phy_reg(pi, 0x70, 80);
19463 write_phy_reg(pi, 0x1ff, 48);
19465 if (NREV_LT(pi->pubpi.phy_rev, 8))
19466 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19468 wlc_phy_stf_chain_upd_nphy(pi);
19470 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19471 write_phy_reg(pi, 0x180, 0xaa8);
19472 write_phy_reg(pi, 0x181, 0x9a4);
19476 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19478 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19479 0x29b, (0x1 << 0), (1) << 0);
19481 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19482 0x29c, (0x1ff << 7),
19483 (pi->nphy_papd_epsilon_offset[core]) << 7);
19487 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19488 } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19489 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19492 wlc_phy_workarounds_nphy(pi);
19494 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19496 val = read_phy_reg(pi, 0x01);
19497 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19498 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19499 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19501 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19503 wlc_phy_pa_override_nphy(pi, OFF);
19504 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
19505 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19506 wlc_phy_pa_override_nphy(pi, ON);
19508 wlc_phy_classifier_nphy(pi, 0, 0);
19509 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19511 if (CHSPEC_IS2G(pi->radio_chanspec))
19512 wlc_phy_bphy_init_nphy(pi);
19514 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19515 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
19517 wlc_phy_txpwr_fixpower_nphy(pi);
19519 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19521 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19523 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19524 u32 *tx_pwrctrl_tbl = NULL;
19531 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19533 if (CHSPEC_IS5G(pi->radio_chanspec)) {
19534 if (NREV_IS(pi->pubpi.phy_rev, 3))
19536 nphy_tpc_5GHz_txgain_rev3;
19537 else if (NREV_IS(pi->pubpi.phy_rev, 4))
19539 (pi->srom_fem5g.extpagain ==
19541 nphy_tpc_5GHz_txgain_HiPwrEPA :
19542 nphy_tpc_5GHz_txgain_rev4;
19545 nphy_tpc_5GHz_txgain_rev5;
19547 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19548 if (pi->pubpi.radiorev == 5)
19550 nphy_tpc_txgain_epa_2057rev5;
19551 else if (pi->pubpi.radiorev == 3)
19553 nphy_tpc_txgain_epa_2057rev3;
19555 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19556 (pi->srom_fem2g.extpagain == 3))
19558 nphy_tpc_txgain_HiPwrEPA;
19561 nphy_tpc_txgain_rev3;
19566 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19567 192, 32, tx_pwrctrl_tbl);
19568 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19569 192, 32, tx_pwrctrl_tbl);
19571 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19573 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19575 for (idx = 0; idx < 128; idx++) {
19576 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19577 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19578 rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19580 wlc_phy_table_write_nphy(
19582 NPHY_TBL_ID_CORE1TXPWRCTL,
19585 wlc_phy_table_write_nphy(
19587 NPHY_TBL_ID_CORE2TXPWRCTL,
19593 for (idx = 0; idx < 128; idx++) {
19594 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19595 if (CHSPEC_IS2G(pi->radio_chanspec))
19596 rfpwr_offset = (s16)
19597 nphy_papd_pga_gain_delta_ipa_2g
19600 rfpwr_offset = (s16)
19601 nphy_papd_pga_gain_delta_ipa_5g
19604 wlc_phy_table_write_nphy(
19606 NPHY_TBL_ID_CORE1TXPWRCTL,
19609 wlc_phy_table_write_nphy(
19611 NPHY_TBL_ID_CORE2TXPWRCTL,
19619 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19620 192, 32, nphy_tpc_txgain);
19621 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19622 192, 32, nphy_tpc_txgain);
19625 if (pi->sh->phyrxchain != 0x3)
19626 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
19627 pi->sh->phyrxchain);
19629 if (PHY_PERICAL_MPHASE_PENDING(pi))
19630 wlc_phy_cal_perical_mphase_restart(pi);
19632 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19633 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19634 (pi->nphy_rssical_chanspec_2G == 0) :
19635 (pi->nphy_rssical_chanspec_5G == 0);
19638 wlc_phy_rssi_cal_nphy(pi);
19640 wlc_phy_restore_rssical_nphy(pi);
19642 wlc_phy_rssi_cal_nphy(pi);
19645 if (!SCAN_RM_IN_PROGRESS(pi))
19646 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19647 (pi->nphy_iqcal_chanspec_2G == 0) :
19648 (pi->nphy_iqcal_chanspec_5G == 0);
19650 if (!pi->do_initcal)
19651 do_nphy_cal = false;
19655 target_gain = wlc_phy_get_tx_gain_nphy(pi);
19657 if (pi->antsel_type == ANTSEL_2x3)
19658 wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19661 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19662 wlc_phy_rssi_cal_nphy(pi);
19664 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19665 pi->nphy_cal_orig_pwr_idx[0] =
19666 pi->nphy_txpwrindex[PHY_CORE_0]
19669 pi->nphy_cal_orig_pwr_idx[1] =
19670 pi->nphy_txpwrindex[PHY_CORE_1]
19674 wlc_phy_precal_txgain_nphy(pi);
19676 wlc_phy_get_tx_gain_nphy(pi);
19679 if (wlc_phy_cal_txiqlo_nphy
19680 (pi, target_gain, true,
19682 if (wlc_phy_cal_rxiq_nphy
19683 (pi, target_gain, 2,
19685 wlc_phy_savecal_nphy(pi);
19688 } else if (pi->mphase_cal_phase_id ==
19689 MPHASE_CAL_STATE_IDLE) {
19690 wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19691 PHY_PERICAL_PHYINIT);
19694 wlc_phy_restorecal_nphy(pi);
19697 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19699 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19701 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19703 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19705 write_phy_reg(pi, 0x70, 50);
19707 wlc_phy_txlpfbw_nphy(pi);
19709 wlc_phy_spurwar_nphy(pi);
19713 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19717 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19719 val = read_phy_reg(pi, 0x01);
19720 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19722 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19724 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19726 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19729 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19731 u16 rfctrlintc_override_val;
19735 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19736 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19738 if (NREV_GE(pi->pubpi.phy_rev, 7))
19739 rfctrlintc_override_val = 0x1480;
19740 else if (NREV_GE(pi->pubpi.phy_rev, 3))
19741 rfctrlintc_override_val =
19742 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19744 rfctrlintc_override_val =
19745 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19747 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19748 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19750 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19751 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19756 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
19760 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
19761 bool CoreActv_override = false;
19763 if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19764 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19765 CoreActv_override = true;
19767 if (NREV_LE(pi->pubpi.phy_rev, 2))
19768 and_phy_reg(pi, 0xa0, ~0x20);
19769 } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19770 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19771 CoreActv_override = true;
19773 if (NREV_LE(pi->pubpi.phy_rev, 2))
19774 or_phy_reg(pi, 0xa0, 0x20);
19777 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19779 if (CoreActv_override) {
19780 pi->nphy_perical = PHY_PERICAL_DISABLE;
19781 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
19783 pi->nphy_perical = PHY_PERICAL_MPHASE;
19784 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
19788 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19793 struct brcms_phy *pi = (struct brcms_phy *) pih;
19797 pi->sh->phyrxchain = rxcore_bitmask;
19802 suspend = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
19804 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19806 if (pi->phyhang_avoid)
19807 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19809 regval = read_phy_reg(pi, 0xa2);
19810 regval &= ~(0xf << 4);
19811 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19812 write_phy_reg(pi, 0xa2, regval);
19814 if ((rxcore_bitmask & 0x3) != 0x3) {
19816 write_phy_reg(pi, 0x20e, 1);
19818 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19819 if (pi->rx2tx_biasentry == -1) {
19820 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
19821 ARRAY_SIZE(tbl_buf), 80,
19824 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19826 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
19827 pi->rx2tx_biasentry = (u8) i;
19829 NPHY_REV3_RFSEQ_CMD_NOP;
19830 wlc_phy_table_write_nphy(
19837 } else if (tbl_buf[i] ==
19838 NPHY_REV3_RFSEQ_CMD_END)
19845 write_phy_reg(pi, 0x20e, 30);
19847 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19848 if (pi->rx2tx_biasentry != -1) {
19849 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19850 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
19851 1, pi->rx2tx_biasentry,
19853 pi->rx2tx_biasentry = -1;
19858 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19860 if (pi->phyhang_avoid)
19861 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19864 wlapi_enable_mac(pi->sh->physhim);
19867 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
19869 u16 regval, rxen_bits;
19870 struct brcms_phy *pi = (struct brcms_phy *) pih;
19872 regval = read_phy_reg(pi, 0xa2);
19873 rxen_bits = (regval >> 4) & 0xf;
19875 return (u8) rxen_bits;
19878 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
19880 return PHY_IPA(pi);
19883 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
19887 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
19890 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
19891 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
19893 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
19894 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
19898 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
19900 struct radio_20xx_regs *regs_2057_ptr = NULL;
19902 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
19903 regs_2057_ptr = regs_2057_rev4;
19904 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
19905 || NREV_IS(pi->pubpi.phy_rev, 9)) {
19906 switch (pi->pubpi.radiorev) {
19909 if (pi->pubpi.radiover == 0x0)
19910 regs_2057_ptr = regs_2057_rev5;
19911 else if (pi->pubpi.radiover == 0x1)
19912 regs_2057_ptr = regs_2057_rev5v1;
19918 regs_2057_ptr = regs_2057_rev7;
19923 regs_2057_ptr = regs_2057_rev8;
19931 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
19934 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
19939 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19941 if (pi->pubpi.radiorev == 5) {
19943 and_phy_reg(pi, 0x342, ~(0x1 << 1));
19947 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
19948 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
19951 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
19955 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
19957 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19958 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
19959 if (rcal_reg & 0x1)
19965 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
19966 "HW error: radio calib2"))
19969 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
19971 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
19973 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
19974 if (pi->pubpi.radiorev == 5) {
19976 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
19977 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
19981 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
19983 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
19985 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
19989 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
19995 RADIO_2056_SYN_PLL_MAST2 |
19997 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20001 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20005 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20008 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20009 rcal_reg = read_radio_reg(
20011 RADIO_2056_SYN_RCAL_CODE_OUT |
20013 if (rcal_reg & 0x80)
20019 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20020 "HW error: radio calib3"))
20023 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20028 RADIO_2056_SYN_RCAL_CODE_OUT |
20031 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20034 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20037 return rcal_reg & 0x1f;
20039 return rcal_reg & 0x3e;
20042 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
20046 bool chip43226_6362A0;
20048 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
20049 || (pi->pubpi.radiorev == 4)
20050 || (pi->pubpi.radiorev == 6));
20053 if (chip43226_6362A0) {
20054 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
20055 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
20057 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
20059 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
20061 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20062 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20064 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20065 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20066 if (rccal_valid & 0x2)
20072 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20075 if (chip43226_6362A0) {
20076 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
20077 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20079 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
20081 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
20083 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20084 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20086 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20087 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20088 if (rccal_valid & 0x2)
20094 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20097 if (chip43226_6362A0) {
20098 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
20100 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
20101 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20103 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
20104 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20105 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
20107 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20109 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20110 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20111 if (rccal_valid & 0x2)
20117 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
20120 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20122 return rccal_valid;
20125 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
20128 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
20130 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
20131 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
20133 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
20134 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
20136 if (pi->phy_init_por) {
20137 wlc_phy_radio205x_rcal(pi);
20138 wlc_phy_radio2057_rccal(pi);
20141 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
20144 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20146 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20147 const struct radio_regs *regs_TX_2056_ptr = NULL;
20148 const struct radio_regs *regs_RX_2056_ptr = NULL;
20150 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20151 regs_SYN_2056_ptr = regs_SYN_2056;
20152 regs_TX_2056_ptr = regs_TX_2056;
20153 regs_RX_2056_ptr = regs_RX_2056;
20154 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20155 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20156 regs_TX_2056_ptr = regs_TX_2056_A1;
20157 regs_RX_2056_ptr = regs_RX_2056_A1;
20159 switch (pi->pubpi.radiorev) {
20161 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20162 regs_TX_2056_ptr = regs_TX_2056_rev5;
20163 regs_RX_2056_ptr = regs_RX_2056_rev5;
20167 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20168 regs_TX_2056_ptr = regs_TX_2056_rev6;
20169 regs_RX_2056_ptr = regs_RX_2056_rev6;
20174 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20175 regs_TX_2056_ptr = regs_TX_2056_rev7;
20176 regs_RX_2056_ptr = regs_RX_2056_rev7;
20180 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20181 regs_TX_2056_ptr = regs_TX_2056_rev8;
20182 regs_RX_2056_ptr = regs_RX_2056_rev8;
20186 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20187 regs_TX_2056_ptr = regs_TX_2056_rev11;
20188 regs_RX_2056_ptr = regs_RX_2056_rev11;
20196 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20198 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20200 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20202 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20204 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20207 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20209 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
20211 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20212 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20214 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20216 if ((pi->sh->boardflags2 & BFL2_LEGACY)
20217 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20218 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20220 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20222 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
20224 if (pi->phy_init_por)
20225 wlc_phy_radio205x_rcal(pi);
20228 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20231 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20232 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
20234 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20237 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20239 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
20242 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20245 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
20246 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
20248 if (((pi->sh->sromrev >= 4)
20249 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20250 || ((pi->sh->sromrev < 4))) {
20251 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
20252 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
20255 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20256 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
20258 and_radio_reg(pi, RADIO_2055_CAL_MISC,
20259 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
20261 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
20263 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
20267 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
20269 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20270 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20272 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20273 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20274 "HW error: radio calibration1\n"))
20277 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
20278 ~(RADIO_2055_CAL_LPO_ENABLE));
20280 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
20282 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
20283 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
20285 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
20286 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
20288 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
20289 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20290 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
20291 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20292 if (pi->nphy_gain_boost) {
20293 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20294 ~(RADIO_2055_GAINBST_DISABLE));
20295 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20296 ~(RADIO_2055_GAINBST_DISABLE));
20298 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20299 RADIO_2055_GAINBST_DISABLE);
20300 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20301 RADIO_2055_GAINBST_DISABLE);
20307 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20310 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20311 if (!pi->radio_is_on) {
20312 wlc_phy_radio_preinit_205x(pi);
20313 wlc_phy_radio_init_2057(pi);
20314 wlc_phy_radio_postinit_2057(pi);
20317 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20318 pi->radio_chanspec);
20319 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20320 wlc_phy_radio_preinit_205x(pi);
20321 wlc_phy_radio_init_2056(pi);
20322 wlc_phy_radio_postinit_2056(pi);
20324 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20325 pi->radio_chanspec);
20327 wlc_phy_radio_preinit_2055(pi);
20328 wlc_phy_radio_init_2055(pi);
20329 wlc_phy_radio_postinit_2055(pi);
20332 pi->radio_is_on = true;
20336 if (NREV_GE(pi->pubpi.phy_rev, 3)
20337 && NREV_LT(pi->pubpi.phy_rev, 7)) {
20338 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20339 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20341 write_radio_reg(pi,
20342 RADIO_2056_TX_PADA_BOOST_TUNE |
20343 RADIO_2056_TX0, 0);
20344 write_radio_reg(pi,
20345 RADIO_2056_TX_PADG_BOOST_TUNE |
20346 RADIO_2056_TX0, 0);
20347 write_radio_reg(pi,
20348 RADIO_2056_TX_PGAA_BOOST_TUNE |
20349 RADIO_2056_TX0, 0);
20350 write_radio_reg(pi,
20351 RADIO_2056_TX_PGAG_BOOST_TUNE |
20352 RADIO_2056_TX0, 0);
20354 RADIO_2056_TX_MIXA_BOOST_TUNE |
20355 RADIO_2056_TX0, 0xf0, 0);
20356 write_radio_reg(pi,
20357 RADIO_2056_TX_MIXG_BOOST_TUNE |
20358 RADIO_2056_TX0, 0);
20360 write_radio_reg(pi,
20361 RADIO_2056_TX_PADA_BOOST_TUNE |
20362 RADIO_2056_TX1, 0);
20363 write_radio_reg(pi,
20364 RADIO_2056_TX_PADG_BOOST_TUNE |
20365 RADIO_2056_TX1, 0);
20366 write_radio_reg(pi,
20367 RADIO_2056_TX_PGAA_BOOST_TUNE |
20368 RADIO_2056_TX1, 0);
20369 write_radio_reg(pi,
20370 RADIO_2056_TX_PGAG_BOOST_TUNE |
20371 RADIO_2056_TX1, 0);
20373 RADIO_2056_TX_MIXA_BOOST_TUNE |
20374 RADIO_2056_TX1, 0xf0, 0);
20375 write_radio_reg(pi,
20376 RADIO_2056_TX_MIXG_BOOST_TUNE |
20377 RADIO_2056_TX1, 0);
20379 pi->radio_is_on = false;
20382 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20383 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20384 pi->radio_is_on = false;
20391 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20392 const struct chan_info_nphy_radio2057 **t0,
20393 const struct chan_info_nphy_radio205x **t1,
20394 const struct chan_info_nphy_radio2057_rev5 **t2,
20395 const struct chan_info_nphy_2055 **t3)
20398 const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20399 const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20400 const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20405 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20407 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20409 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20410 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20412 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20413 || NREV_IS(pi->pubpi.phy_rev, 9)) {
20414 switch (pi->pubpi.radiorev) {
20418 if (pi->pubpi.radiover == 0x0) {
20420 chan_info_tbl_p_2 =
20421 chan_info_nphyrev8_2057_rev5;
20422 tbl_len = ARRAY_SIZE(
20423 chan_info_nphyrev8_2057_rev5);
20425 } else if (pi->pubpi.radiover == 0x1) {
20427 chan_info_tbl_p_2 =
20428 chan_info_nphyrev9_2057_rev5v1;
20429 tbl_len = ARRAY_SIZE(
20430 chan_info_nphyrev9_2057_rev5v1);
20436 chan_info_tbl_p_0 =
20437 chan_info_nphyrev8_2057_rev7;
20438 tbl_len = ARRAY_SIZE(
20439 chan_info_nphyrev8_2057_rev7);
20443 chan_info_tbl_p_0 =
20444 chan_info_nphyrev8_2057_rev8;
20445 tbl_len = ARRAY_SIZE(
20446 chan_info_nphyrev8_2057_rev8);
20452 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20454 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20455 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20460 for (i = 0; i < tbl_len; i++) {
20461 if (pi->pubpi.radiorev == 5) {
20463 if (chan_info_tbl_p_2[i].chan == channel)
20467 if (chan_info_tbl_p_0[i].chan == channel)
20475 if (pi->pubpi.radiorev == 5) {
20476 *t2 = &chan_info_tbl_p_2[i];
20477 freq = chan_info_tbl_p_2[i].freq;
20479 *t0 = &chan_info_tbl_p_0[i];
20480 freq = chan_info_tbl_p_0[i].freq;
20483 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20484 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20485 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20486 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20487 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20488 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20489 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20490 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
20491 || NREV_IS(pi->pubpi.phy_rev, 6)) {
20492 switch (pi->pubpi.radiorev) {
20494 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20495 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20498 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20499 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20503 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20505 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20508 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20509 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20512 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20513 tbl_len = ARRAY_SIZE(
20514 chan_info_nphyrev6_2056v11);
20521 for (i = 0; i < tbl_len; i++) {
20522 if (chan_info_tbl_p_1[i].chan == channel)
20529 *t1 = &chan_info_tbl_p_1[i];
20530 freq = chan_info_tbl_p_1[i].freq;
20533 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20534 if (chan_info_nphy_2055[i].chan == channel)
20537 if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20540 *t3 = &chan_info_nphy_2055[i];
20541 freq = chan_info_nphy_2055[i].freq;
20548 *f = WL_CHAN_FREQ_RANGE_2G;
20552 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
20555 const struct chan_info_nphy_radio2057 *t0 = NULL;
20556 const struct chan_info_nphy_radio205x *t1 = NULL;
20557 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20558 const struct chan_info_nphy_2055 *t3 = NULL;
20561 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20563 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20565 if (CHSPEC_IS2G(pi->radio_chanspec))
20566 return WL_CHAN_FREQ_RANGE_2G;
20568 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20569 return WL_CHAN_FREQ_RANGE_5GL;
20570 else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20571 return WL_CHAN_FREQ_RANGE_5GM;
20573 return WL_CHAN_FREQ_RANGE_5GH;
20577 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20578 const struct chan_info_nphy_2055 *ci)
20581 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
20582 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
20583 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
20584 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
20586 BRCMS_PHY_WAR_PR51571(pi);
20588 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
20589 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
20590 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
20591 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
20593 BRCMS_PHY_WAR_PR51571(pi);
20595 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
20596 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
20597 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
20598 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
20600 BRCMS_PHY_WAR_PR51571(pi);
20602 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
20603 ci->RF_core1_lgbuf_a_tune);
20604 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
20605 ci->RF_core1_lgbuf_g_tune);
20606 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
20607 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
20608 ci->RF_core1_tx_pga_pad_tn);
20610 BRCMS_PHY_WAR_PR51571(pi);
20612 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
20613 ci->RF_core1_tx_mx_bgtrim);
20614 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
20615 ci->RF_core2_lgbuf_a_tune);
20616 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
20617 ci->RF_core2_lgbuf_g_tune);
20618 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
20620 BRCMS_PHY_WAR_PR51571(pi);
20622 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
20623 ci->RF_core2_tx_pga_pad_tn);
20624 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
20625 ci->RF_core2_tx_mx_bgtrim);
20629 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
20630 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
20632 BRCMS_PHY_WAR_PR51571(pi);
20634 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
20640 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20641 const struct chan_info_nphy_radio205x *ci)
20643 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20645 write_radio_reg(pi,
20646 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
20647 ci->RF_SYN_pll_vcocal1);
20648 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
20649 ci->RF_SYN_pll_vcocal2);
20650 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
20651 ci->RF_SYN_pll_refdiv);
20652 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
20653 ci->RF_SYN_pll_mmd2);
20654 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
20655 ci->RF_SYN_pll_mmd1);
20656 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20657 ci->RF_SYN_pll_loopfilter1);
20658 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20659 ci->RF_SYN_pll_loopfilter2);
20660 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
20661 ci->RF_SYN_pll_loopfilter3);
20662 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20663 ci->RF_SYN_pll_loopfilter4);
20664 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
20665 ci->RF_SYN_pll_loopfilter5);
20666 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
20667 ci->RF_SYN_reserved_addr27);
20668 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
20669 ci->RF_SYN_reserved_addr28);
20670 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
20671 ci->RF_SYN_reserved_addr29);
20672 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
20673 ci->RF_SYN_logen_VCOBUF1);
20674 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
20675 ci->RF_SYN_logen_MIXER2);
20676 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
20677 ci->RF_SYN_logen_BUF3);
20678 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
20679 ci->RF_SYN_logen_BUF4);
20681 write_radio_reg(pi,
20682 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
20683 ci->RF_RX0_lnaa_tune);
20684 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
20685 ci->RF_RX0_lnag_tune);
20686 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
20687 ci->RF_TX0_intpaa_boost_tune);
20688 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
20689 ci->RF_TX0_intpag_boost_tune);
20690 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
20691 ci->RF_TX0_pada_boost_tune);
20692 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
20693 ci->RF_TX0_padg_boost_tune);
20694 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
20695 ci->RF_TX0_pgaa_boost_tune);
20696 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
20697 ci->RF_TX0_pgag_boost_tune);
20698 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
20699 ci->RF_TX0_mixa_boost_tune);
20700 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
20701 ci->RF_TX0_mixg_boost_tune);
20703 write_radio_reg(pi,
20704 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
20705 ci->RF_RX1_lnaa_tune);
20706 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
20707 ci->RF_RX1_lnag_tune);
20708 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
20709 ci->RF_TX1_intpaa_boost_tune);
20710 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
20711 ci->RF_TX1_intpag_boost_tune);
20712 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
20713 ci->RF_TX1_pada_boost_tune);
20714 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
20715 ci->RF_TX1_padg_boost_tune);
20716 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
20717 ci->RF_TX1_pgaa_boost_tune);
20718 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
20719 ci->RF_TX1_pgag_boost_tune);
20720 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
20721 ci->RF_TX1_mixa_boost_tune);
20722 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
20723 ci->RF_TX1_mixg_boost_tune);
20725 if (NREV_IS(pi->pubpi.phy_rev, 3))
20726 regs_SYN_2056_ptr = regs_SYN_2056;
20727 else if (NREV_IS(pi->pubpi.phy_rev, 4))
20728 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20730 switch (pi->pubpi.radiorev) {
20732 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20735 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20739 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20742 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20745 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20749 if (CHSPEC_IS2G(pi->radio_chanspec))
20750 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20752 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20754 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20756 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20758 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20759 if (CHSPEC_IS2G(pi->radio_chanspec)) {
20760 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20761 RADIO_2056_SYN, 0x1f);
20762 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20763 RADIO_2056_SYN, 0x1f);
20765 write_radio_reg(pi,
20766 RADIO_2056_SYN_PLL_LOOPFILTER4 |
20767 RADIO_2056_SYN, 0xb);
20768 write_radio_reg(pi,
20769 RADIO_2056_SYN_PLL_CP2 |
20770 RADIO_2056_SYN, 0x14);
20774 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20775 (CHSPEC_IS2G(pi->radio_chanspec))) {
20776 write_radio_reg(pi,
20777 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20779 write_radio_reg(pi,
20780 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20782 write_radio_reg(pi,
20783 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20785 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
20789 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20790 if (CHSPEC_IS5G(pi->radio_chanspec)) {
20791 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20792 RADIO_2056_SYN, 0x1f);
20793 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20794 RADIO_2056_SYN, 0x1f);
20795 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
20796 RADIO_2056_SYN, 0x5);
20797 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20798 RADIO_2056_SYN, 0xc);
20802 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20803 u16 pag_boost_tune;
20804 u16 padg_boost_tune;
20805 u16 pgag_boost_tune;
20806 u16 mixg_boost_tune;
20807 u16 bias, cascbias;
20810 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20812 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20814 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20820 if ((pi->sh->chip ==
20822 || (pi->sh->chip ==
20823 BCM43225_CHIP_ID)) {
20824 if (pi->sh->chippkg ==
20825 BCM43224_FAB_SMIC) {
20831 pag_boost_tune = 0x4;
20832 pgag_boost_tune = 0x03;
20833 padg_boost_tune = 0x77;
20834 mixg_boost_tune = 0x65;
20836 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20837 INTPAG_IMAIN_STAT, bias);
20838 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20839 INTPAG_IAUX_STAT, bias);
20840 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20841 INTPAG_CASCBIAS, cascbias);
20843 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20846 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20849 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20852 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20857 bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20860 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20861 INTPAG_IMAIN_STAT, bias);
20862 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20863 INTPAG_IAUX_STAT, bias);
20864 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20865 INTPAG_CASCBIAS, 0x30);
20867 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20872 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20873 && CHSPEC_IS5G(pi->radio_chanspec)) {
20874 u16 paa_boost_tune;
20875 u16 pada_boost_tune;
20876 u16 pgaa_boost_tune;
20877 u16 mixa_boost_tune;
20878 u16 freq, pabias, cascbias;
20881 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
20885 paa_boost_tune = 0xa;
20886 pada_boost_tune = 0x77;
20887 pgaa_boost_tune = 0xf;
20888 mixa_boost_tune = 0xf;
20889 } else if (freq < 5340) {
20891 paa_boost_tune = 0x8;
20892 pada_boost_tune = 0x77;
20893 pgaa_boost_tune = 0xfb;
20894 mixa_boost_tune = 0xf;
20895 } else if (freq < 5650) {
20897 paa_boost_tune = 0x0;
20898 pada_boost_tune = 0x77;
20899 pgaa_boost_tune = 0xb;
20900 mixa_boost_tune = 0xf;
20903 paa_boost_tune = 0x0;
20904 pada_boost_tune = 0x77;
20906 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
20908 pgaa_boost_tune = 6;
20910 mixa_boost_tune = 0xf;
20913 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20914 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20915 INTPAA_BOOST_TUNE, paa_boost_tune);
20916 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20917 PADA_BOOST_TUNE, pada_boost_tune);
20918 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20919 PGAA_BOOST_TUNE, pgaa_boost_tune);
20920 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20921 MIXA_BOOST_TUNE, mixa_boost_tune);
20923 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20925 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20928 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20929 PADA_CASCBIAS, 0x3);
20933 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
20934 (pi->sh->chip == BCM43225_CHIP_ID)) {
20935 if (pi->sh->chippkg == BCM43224_FAB_SMIC)
20939 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
20941 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20942 INTPAA_IAUX_STAT, pabias);
20943 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20944 INTPAA_IMAIN_STAT, pabias);
20945 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20946 INTPAA_CASCBIAS, cascbias);
20952 wlc_phy_radio205x_vcocal_nphy(pi);
20955 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
20957 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20958 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
20959 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
20960 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
20962 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
20963 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20964 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
20965 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
20966 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
20967 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
20968 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
20975 wlc_phy_chanspec_radio2057_setup(
20976 struct brcms_phy *pi,
20977 const struct chan_info_nphy_radio2057 *ci,
20978 const struct chan_info_nphy_radio2057_rev5 *
20982 u16 txmix2g_tune_boost_pu = 0;
20983 u16 pad2g_tune_pus = 0;
20985 if (pi->pubpi.radiorev == 5) {
20987 write_radio_reg(pi,
20988 RADIO_2057_VCOCAL_COUNTVAL0,
20989 ci2->RF_vcocal_countval0);
20990 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
20991 ci2->RF_vcocal_countval1);
20992 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
20993 ci2->RF_rfpll_refmaster_sparextalsize);
20994 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
20995 ci2->RF_rfpll_loopfilter_r1);
20996 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
20997 ci2->RF_rfpll_loopfilter_c2);
20998 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
20999 ci2->RF_rfpll_loopfilter_c1);
21000 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
21001 ci2->RF_cp_kpd_idac);
21002 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
21003 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
21004 write_radio_reg(pi,
21005 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
21006 write_radio_reg(pi,
21007 RADIO_2057_LOGEN_MX2G_TUNE,
21008 ci2->RF_logen_mx2g_tune);
21009 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21010 ci2->RF_logen_indbuf2g_tune);
21012 write_radio_reg(pi,
21013 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21014 ci2->RF_txmix2g_tune_boost_pu_core0);
21015 write_radio_reg(pi,
21016 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21017 ci2->RF_pad2g_tune_pus_core0);
21018 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21019 ci2->RF_lna2g_tune_core0);
21021 write_radio_reg(pi,
21022 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21023 ci2->RF_txmix2g_tune_boost_pu_core1);
21024 write_radio_reg(pi,
21025 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21026 ci2->RF_pad2g_tune_pus_core1);
21027 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21028 ci2->RF_lna2g_tune_core1);
21032 write_radio_reg(pi,
21033 RADIO_2057_VCOCAL_COUNTVAL0,
21034 ci->RF_vcocal_countval0);
21035 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21036 ci->RF_vcocal_countval1);
21037 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21038 ci->RF_rfpll_refmaster_sparextalsize);
21039 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21040 ci->RF_rfpll_loopfilter_r1);
21041 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21042 ci->RF_rfpll_loopfilter_c2);
21043 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21044 ci->RF_rfpll_loopfilter_c1);
21045 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
21046 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
21047 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
21048 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
21049 write_radio_reg(pi,
21050 RADIO_2057_LOGEN_MX2G_TUNE,
21051 ci->RF_logen_mx2g_tune);
21052 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
21053 ci->RF_logen_mx5g_tune);
21054 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21055 ci->RF_logen_indbuf2g_tune);
21056 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
21057 ci->RF_logen_indbuf5g_tune);
21059 write_radio_reg(pi,
21060 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21061 ci->RF_txmix2g_tune_boost_pu_core0);
21062 write_radio_reg(pi,
21063 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21064 ci->RF_pad2g_tune_pus_core0);
21065 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
21066 ci->RF_pga_boost_tune_core0);
21067 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
21068 ci->RF_txmix5g_boost_tune_core0);
21069 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
21070 ci->RF_pad5g_tune_misc_pus_core0);
21071 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21072 ci->RF_lna2g_tune_core0);
21073 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
21074 ci->RF_lna5g_tune_core0);
21076 write_radio_reg(pi,
21077 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21078 ci->RF_txmix2g_tune_boost_pu_core1);
21079 write_radio_reg(pi,
21080 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21081 ci->RF_pad2g_tune_pus_core1);
21082 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
21083 ci->RF_pga_boost_tune_core1);
21084 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
21085 ci->RF_txmix5g_boost_tune_core1);
21086 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
21087 ci->RF_pad5g_tune_misc_pus_core1);
21088 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21089 ci->RF_lna2g_tune_core1);
21090 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
21091 ci->RF_lna5g_tune_core1);
21094 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
21096 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21097 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21099 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21100 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21102 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21105 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21107 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21108 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21110 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21113 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
21114 (pi->pubpi.radiorev == 8)) {
21116 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21117 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21119 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
21120 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21122 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21125 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21127 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21128 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21130 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21136 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21138 if (pi->pubpi.radiorev == 3)
21139 txmix2g_tune_boost_pu = 0x6b;
21141 if (pi->pubpi.radiorev == 5)
21142 pad2g_tune_pus = 0x73;
21145 if (pi->pubpi.radiorev != 5) {
21146 pad2g_tune_pus = 0x3;
21148 txmix2g_tune_boost_pu = 0x61;
21152 for (coreNum = 0; coreNum <= 1; coreNum++) {
21154 if (txmix2g_tune_boost_pu != 0)
21155 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21156 TXMIX2G_TUNE_BOOST_PU,
21157 txmix2g_tune_boost_pu);
21159 if (pad2g_tune_pus != 0)
21160 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21168 wlc_phy_radio205x_vcocal_nphy(pi);
21172 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21173 const struct nphy_sfo_cfg *ci)
21177 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21178 if (CHSPEC_IS5G(chanspec) && !val) {
21180 val = R_REG(&pi->regs->psm_phy_hdr_param);
21181 W_REG(&pi->regs->psm_phy_hdr_param,
21182 (val | MAC_PHY_FORCE_CLK));
21184 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21185 (BBCFG_RESETCCA | BBCFG_RESETRX));
21187 W_REG(&pi->regs->psm_phy_hdr_param, val);
21189 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
21190 } else if (!CHSPEC_IS5G(chanspec) && val) {
21192 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
21194 val = R_REG(&pi->regs->psm_phy_hdr_param);
21195 W_REG(&pi->regs->psm_phy_hdr_param,
21196 (val | MAC_PHY_FORCE_CLK));
21198 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21199 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21201 W_REG(&pi->regs->psm_phy_hdr_param, val);
21204 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21205 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21206 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21208 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21209 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21210 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21212 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21213 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
21215 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21217 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
21218 NPHY_ClassifierCtrl_ofdm_en);
21220 if (CHSPEC_IS2G(chanspec))
21221 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21224 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21225 wlc_phy_txpwr_fixpower_nphy(pi);
21227 if (NREV_LT(pi->pubpi.phy_rev, 3))
21228 wlc_phy_adjust_lnagaintbl_nphy(pi);
21230 wlc_phy_txlpfbw_nphy(pi);
21232 if (NREV_GE(pi->pubpi.phy_rev, 3)
21233 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21236 val = CHSPEC_CHANNEL(chanspec);
21237 if (!CHSPEC_IS40(pi->radio_chanspec)) {
21238 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21239 if ((val == 13) || (val == 14) || (val == 153))
21241 } else if (((val >= 5) && (val <= 8)) || (val == 13)
21245 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21249 if (pi->nphy_aband_spurwar_en &&
21250 ((val == 38) || (val == 102)
21255 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21258 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21259 si_pmu_spuravoid(pi->sh->sih, spuravoid);
21260 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21262 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21263 (pi->sh->chip == BCM43225_CHIP_ID)) {
21265 if (spuravoid == 1) {
21267 W_REG(&pi->regs->tsf_clk_frac_l,
21269 W_REG(&pi->regs->tsf_clk_frac_h,
21273 W_REG(&pi->regs->tsf_clk_frac_l,
21275 W_REG(&pi->regs->tsf_clk_frac_h,
21280 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21282 mod_phy_reg(pi, 0x01, (0x1 << 15),
21283 ((spuravoid > 0) ? (0x1 << 15) : 0));
21285 wlc_phy_resetcca_nphy(pi);
21287 pi->phy_isspuravoid = (spuravoid > 0);
21290 if (NREV_LT(pi->pubpi.phy_rev, 7))
21291 write_phy_reg(pi, 0x17e, 0x3830);
21293 wlc_phy_spurwar_nphy(pi);
21296 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21299 const struct chan_info_nphy_radio2057 *t0 = NULL;
21300 const struct chan_info_nphy_radio205x *t1 = NULL;
21301 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21302 const struct chan_info_nphy_2055 *t3 = NULL;
21304 if (!wlc_phy_chan2freq_nphy
21305 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21308 wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21310 if (CHSPEC_BW(chanspec) != pi->bw)
21311 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21313 if (CHSPEC_IS40(chanspec)) {
21314 if (CHSPEC_SB_UPPER(chanspec)) {
21315 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21316 if (NREV_GE(pi->pubpi.phy_rev, 7))
21317 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21319 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21320 if (NREV_GE(pi->pubpi.phy_rev, 7))
21321 and_phy_reg(pi, 0x310,
21322 (~PRIM_SEL_UP20 & 0xffff));
21326 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21327 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21329 if ((pi->pubpi.radiorev <= 4)
21330 || (pi->pubpi.radiorev == 6)) {
21331 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
21333 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21335 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
21337 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21341 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21342 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21343 (pi->pubpi.radiorev == 5) ?
21344 (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21345 (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21350 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
21352 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21353 wlc_phy_chanspec_radio2056_setup(pi, t1);
21355 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21356 (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21361 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
21362 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21365 wlc_phy_chanspec_radio2055_setup(pi, t3);
21366 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21367 (const struct nphy_sfo_cfg *)
21373 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21375 struct brcms_phy *pi = (struct brcms_phy *) ppi;
21379 if (NREV_GE(pi->pubpi.phy_rev, 7))
21382 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21383 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21385 if (lut_init == false)
21388 if (pi->srom_fem2g.antswctrllut == 0) {
21389 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21391 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21393 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21395 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21399 if (pi->srom_fem5g.antswctrllut == 0) {
21400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21402 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21404 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21406 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21411 write_phy_reg(pi, 0xc8, 0x0);
21412 write_phy_reg(pi, 0xc9, 0x0);
21414 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
21416 mc = R_REG(&pi->regs->maccontrol);
21417 mc &= ~MCTL_GPOUT_SEL_MASK;
21418 W_REG(&pi->regs->maccontrol, mc);
21420 OR_REG(&pi->regs->psm_gpio_oe, mask);
21422 AND_REG(&pi->regs->psm_gpio_out, ~mask);
21425 write_phy_reg(pi, 0xf8, 0x02d8);
21426 write_phy_reg(pi, 0xf9, 0x0301);
21427 write_phy_reg(pi, 0xfa, 0x02d8);
21428 write_phy_reg(pi, 0xfb, 0x0301);
21433 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
21435 u16 curr_ctl, new_ctl;
21436 bool suspended = false;
21438 if (D11REV_IS(pi->sh->corerev, 16)) {
21440 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
21443 wlapi_suspend_mac_and_wait(pi->sh->physhim);
21446 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21448 new_ctl = (curr_ctl & (~mask)) | (val & mask);
21450 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21452 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21453 wlapi_enable_mac(pi->sh->physhim);
21458 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
21460 u16 trigger_mask, status_mask;
21461 u16 orig_RfseqCoreActv;
21464 case NPHY_RFSEQ_RX2TX:
21465 trigger_mask = NPHY_RfseqTrigger_rx2tx;
21466 status_mask = NPHY_RfseqStatus_rx2tx;
21468 case NPHY_RFSEQ_TX2RX:
21469 trigger_mask = NPHY_RfseqTrigger_tx2rx;
21470 status_mask = NPHY_RfseqStatus_tx2rx;
21472 case NPHY_RFSEQ_RESET2RX:
21473 trigger_mask = NPHY_RfseqTrigger_reset2rx;
21474 status_mask = NPHY_RfseqStatus_reset2rx;
21476 case NPHY_RFSEQ_UPDATEGAINH:
21477 trigger_mask = NPHY_RfseqTrigger_updategainh;
21478 status_mask = NPHY_RfseqStatus_updategainh;
21480 case NPHY_RFSEQ_UPDATEGAINL:
21481 trigger_mask = NPHY_RfseqTrigger_updategainl;
21482 status_mask = NPHY_RfseqStatus_updategainl;
21484 case NPHY_RFSEQ_UPDATEGAINU:
21485 trigger_mask = NPHY_RfseqTrigger_updategainu;
21486 status_mask = NPHY_RfseqStatus_updategainu;
21492 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21493 or_phy_reg(pi, 0xa1,
21494 (NPHY_RfseqMode_CoreActv_override |
21495 NPHY_RfseqMode_Trigger_override));
21496 or_phy_reg(pi, 0xa3, trigger_mask);
21497 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21498 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21499 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21503 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21504 u8 core_mask, u8 off)
21506 u16 rfmxgain = 0, lpfgain = 0;
21509 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21512 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
21513 wlc_phy_rfctrl_override_nphy_rev7(
21515 value, core_mask, off,
21516 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21517 wlc_phy_rfctrl_override_nphy_rev7(
21518 pi, (0x1 << 4), value,
21520 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21521 wlc_phy_rfctrl_override_nphy_rev7(
21522 pi, (0x1 << 3), value,
21524 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21526 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
21527 wlc_phy_rfctrl_override_nphy_rev7(
21529 value, core_mask, off,
21530 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21531 wlc_phy_rfctrl_override_nphy_rev7(
21532 pi, (0x1 << 1), value,
21534 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21535 wlc_phy_rfctrl_override_nphy_rev7(
21536 pi, (0x1 << 0), value,
21538 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21539 wlc_phy_rfctrl_override_nphy_rev7(
21540 pi, (0x1 << 1), value,
21542 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21543 wlc_phy_rfctrl_override_nphy_rev7(
21544 pi, (0x1 << 11), 0,
21546 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21548 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
21549 wlc_phy_rfctrl_override_nphy_rev7(
21551 value, core_mask, off,
21552 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21553 wlc_phy_rfctrl_override_nphy_rev7(
21554 pi, (0x1 << 1), value,
21556 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21557 wlc_phy_rfctrl_override_nphy_rev7(
21558 pi, (0x1 << 0), value,
21560 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21561 wlc_phy_rfctrl_override_nphy_rev7(
21562 pi, (0x1 << 2), value,
21564 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21565 wlc_phy_rfctrl_override_nphy_rev7(
21566 pi, (0x1 << 11), 1,
21568 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21570 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
21571 rfmxgain = value & 0x000ff;
21572 lpfgain = value & 0x0ff00;
21573 lpfgain = lpfgain >> 8;
21575 wlc_phy_rfctrl_override_nphy_rev7(
21577 rfmxgain, core_mask,
21579 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21580 wlc_phy_rfctrl_override_nphy_rev7(
21582 lpfgain, core_mask,
21584 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21586 case NPHY_REV7_RfctrlOverride_cmd_txgain:
21587 tgain = value & 0x7fff;
21588 lpfgain = value & 0x8000;
21589 lpfgain = lpfgain >> 14;
21591 wlc_phy_rfctrl_override_nphy_rev7(
21593 tgain, core_mask, off,
21594 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21595 wlc_phy_rfctrl_override_nphy_rev7(
21597 lpfgain, core_mask,
21599 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21606 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21607 u8 coresel, u8 rail, u8 rssi_type)
21611 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21612 NPHY_RSSICAL_MAXREAD : offset;
21613 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21614 -NPHY_RSSICAL_MAXREAD - 1 : offset;
21616 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21618 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21619 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21620 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21621 write_phy_reg(pi, 0x1a6, valuetostuff);
21623 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21624 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21625 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21626 write_phy_reg(pi, 0x1ac, valuetostuff);
21628 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21629 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21630 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21631 write_phy_reg(pi, 0x1b2, valuetostuff);
21633 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21634 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21635 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21636 write_phy_reg(pi, 0x1b8, valuetostuff);
21638 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21639 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21640 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21641 write_phy_reg(pi, 0x1a4, valuetostuff);
21643 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21644 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21645 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21646 write_phy_reg(pi, 0x1aa, valuetostuff);
21648 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21649 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21650 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21651 write_phy_reg(pi, 0x1b0, valuetostuff);
21653 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21654 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21655 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21656 write_phy_reg(pi, 0x1b6, valuetostuff);
21658 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21659 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21660 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21661 write_phy_reg(pi, 0x1a5, valuetostuff);
21662 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21663 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21664 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21665 write_phy_reg(pi, 0x1ab, valuetostuff);
21667 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21668 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21669 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21670 write_phy_reg(pi, 0x1b1, valuetostuff);
21672 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21673 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21674 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21675 write_phy_reg(pi, 0x1b7, valuetostuff);
21677 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21678 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21679 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21680 write_phy_reg(pi, 0x1a7, valuetostuff);
21681 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21682 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21683 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21684 write_phy_reg(pi, 0x1ad, valuetostuff);
21685 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21686 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21687 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21688 write_phy_reg(pi, 0x1b3, valuetostuff);
21689 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21690 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21691 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21692 write_phy_reg(pi, 0x1b9, valuetostuff);
21694 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21695 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21696 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21697 write_phy_reg(pi, 0x1a8, valuetostuff);
21699 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21700 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21701 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21702 write_phy_reg(pi, 0x1ae, valuetostuff);
21704 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21705 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21706 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21707 write_phy_reg(pi, 0x1b4, valuetostuff);
21709 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21710 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21711 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21712 write_phy_reg(pi, 0x1ba, valuetostuff);
21714 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21715 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21716 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21717 write_phy_reg(pi, 0x1a9, valuetostuff);
21718 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21719 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21720 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21721 write_phy_reg(pi, 0x1b5, valuetostuff);
21723 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21724 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21725 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21726 write_phy_reg(pi, 0x1af, valuetostuff);
21728 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21729 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21730 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21731 write_phy_reg(pi, 0x1bb, valuetostuff);
21734 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21737 if (NREV_GE(pi->pubpi.phy_rev, 7))
21738 write_radio_reg(pi,
21739 ((core == PHY_CORE_0) ?
21740 RADIO_2057_TX0_TX_SSI_MUX :
21741 RADIO_2057_TX1_TX_SSI_MUX),
21742 (CHSPEC_IS5G(pi->radio_chanspec) ?
21745 write_radio_reg(pi,
21746 RADIO_2056_TX_TX_SSI_MUX |
21747 ((core == PHY_CORE_0) ?
21748 RADIO_2056_TX0 : RADIO_2056_TX1),
21749 (CHSPEC_IS5G(pi->radio_chanspec) ?
21752 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21753 write_radio_reg(pi,
21754 ((core == PHY_CORE_0) ?
21755 RADIO_2057_TX0_TX_SSI_MUX :
21756 RADIO_2057_TX1_TX_SSI_MUX),
21759 if (pi->pubpi.radioid == BCM2057_ID)
21760 write_radio_reg(pi,
21761 RADIO_2057_IQTEST_SEL_PU, 0x1);
21764 write_radio_reg(pi,
21765 RADIO_2056_TX_TX_SSI_MUX |
21766 ((core == PHY_CORE_0) ?
21767 RADIO_2056_TX0 : RADIO_2056_TX1),
21773 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21776 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21778 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21779 rfctrlovr_trigger_val;
21780 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21781 u16 rfctrlcmd_val, rfctrlovr_val;
21784 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21785 if (core_code == RADIO_MIMO_CORESEL_OFF) {
21786 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21787 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21789 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21790 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21792 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21793 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21795 mask = (0x1 << 2) |
21796 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21797 mod_phy_reg(pi, 0xf9, mask, 0);
21798 mod_phy_reg(pi, 0xfb, mask, 0);
21801 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21802 if (core_code == RADIO_MIMO_CORESEL_CORE1
21803 && core == PHY_CORE_1)
21805 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21806 && core == PHY_CORE_0)
21809 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21810 0x8f : 0xa5, (0x1 << 9), 1 << 9);
21812 if (rssi_type == NPHY_RSSI_SEL_W1 ||
21813 rssi_type == NPHY_RSSI_SEL_W2 ||
21814 rssi_type == NPHY_RSSI_SEL_NB) {
21817 PHY_CORE_0) ? 0xa6 : 0xa7,
21820 mask = (0x1 << 2) |
21822 (0x1 << 4) | (0x1 << 5);
21825 PHY_CORE_0) ? 0xf9 : 0xfb,
21828 if (rssi_type == NPHY_RSSI_SEL_W1) {
21830 pi->radio_chanspec)) {
21837 } else if (rssi_type ==
21838 NPHY_RSSI_SEL_W2) {
21847 PHY_CORE_0) ? 0xf9 : 0xfb,
21852 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21853 0xe5 : 0xe6, mask, val);
21855 if (rssi_type == NPHY_RSSI_SEL_TBD) {
21861 : 0xa7, mask, val);
21862 mask = (0x3 << 10);
21867 : 0xa7, mask, val);
21868 } else if (rssi_type ==
21869 NPHY_RSSI_SEL_IQ) {
21875 : 0xa7, mask, val);
21876 mask = (0x3 << 10);
21881 : 0xa7, mask, val);
21888 : 0xa7, mask, val);
21889 mask = (0x3 << 10);
21894 : 0xa7, mask, val);
21895 brcms_phy_wr_tx_mux(pi, core);
21896 afectrlovr_rssi_val = 1 << 9;
21900 : 0xa5, (0x1 << 9),
21901 afectrlovr_rssi_val);
21908 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21909 (rssi_type == NPHY_RSSI_SEL_W2) ||
21910 (rssi_type == NPHY_RSSI_SEL_NB))
21912 else if (rssi_type == NPHY_RSSI_SEL_TBD)
21914 else if (rssi_type == NPHY_RSSI_SEL_IQ)
21919 mask = ((0x3 << 12) | (0x3 << 14));
21920 val = (val << 12) | (val << 14);
21921 mod_phy_reg(pi, 0xa6, mask, val);
21922 mod_phy_reg(pi, 0xa7, mask, val);
21924 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21925 (rssi_type == NPHY_RSSI_SEL_W2) ||
21926 (rssi_type == NPHY_RSSI_SEL_NB)) {
21927 if (rssi_type == NPHY_RSSI_SEL_W1)
21929 if (rssi_type == NPHY_RSSI_SEL_W2)
21931 if (rssi_type == NPHY_RSSI_SEL_NB)
21936 mod_phy_reg(pi, 0x7a, mask, val);
21937 mod_phy_reg(pi, 0x7d, mask, val);
21940 if (core_code == RADIO_MIMO_CORESEL_OFF) {
21941 afectrlovr_rssi_val = 0;
21942 rfctrlcmd_rxen_val = 0;
21943 rfctrlcmd_coresel_val = 0;
21944 rfctrlovr_rssi_val = 0;
21945 rfctrlovr_rxen_val = 0;
21946 rfctrlovr_coresel_val = 0;
21947 rfctrlovr_trigger_val = 0;
21950 afectrlovr_rssi_val = 1;
21951 rfctrlcmd_rxen_val = 1;
21952 rfctrlcmd_coresel_val = core_code;
21953 rfctrlovr_rssi_val = 1;
21954 rfctrlovr_rxen_val = 1;
21955 rfctrlovr_coresel_val = 1;
21956 rfctrlovr_trigger_val = 1;
21960 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
21961 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
21962 12) | (afectrlovr_rssi_val << 13);
21963 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
21964 afectrlovr_rssi_val);
21966 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21967 (rssi_type == NPHY_RSSI_SEL_W2) ||
21968 (rssi_type == NPHY_RSSI_SEL_NB)) {
21969 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
21970 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
21971 (rfctrlcmd_coresel_val << 3);
21973 rfctrlovr_mask = ((0x1 << 5) |
21975 (0x1 << 1) | (0x1 << 0));
21976 rfctrlovr_val = (rfctrlovr_rssi_val <<
21978 (rfctrlovr_rxen_val << 12) |
21979 (rfctrlovr_coresel_val << 1) |
21980 (rfctrlovr_trigger_val << 0);
21982 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
21983 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
21985 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
21988 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
21994 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
21998 u16 afectrlCore1_save = 0;
21999 u16 afectrlCore2_save = 0;
22000 u16 afectrlOverride1_save = 0;
22001 u16 afectrlOverride2_save = 0;
22002 u16 rfctrlOverrideAux0_save = 0;
22003 u16 rfctrlOverrideAux1_save = 0;
22004 u16 rfctrlMiscReg1_save = 0;
22005 u16 rfctrlMiscReg2_save = 0;
22006 u16 rfctrlcmd_save = 0;
22007 u16 rfctrloverride_save = 0;
22008 u16 rfctrlrssiothers1_save = 0;
22009 u16 rfctrlrssiothers2_save = 0;
22011 u8 ctr = 0, samp = 0;
22015 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22016 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22017 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22018 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22019 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22020 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
22021 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22022 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22023 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22025 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
22026 rfctrlcmd_save = read_phy_reg(pi, 0x78);
22027 rfctrloverride_save = read_phy_reg(pi, 0xec);
22028 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
22029 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
22032 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22034 gpiosel_orig = read_phy_reg(pi, 0xca);
22035 if (NREV_LT(pi->pubpi.phy_rev, 2))
22036 write_phy_reg(pi, 0xca, 5);
22038 for (ctr = 0; ctr < 4; ctr++)
22041 for (samp = 0; samp < nsamps; samp++) {
22042 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22043 rssi0 = read_phy_reg(pi, 0x1c9);
22044 rssi1 = read_phy_reg(pi, 0x1ca);
22046 rssi0 = read_phy_reg(pi, 0x219);
22047 rssi1 = read_phy_reg(pi, 0x21a);
22051 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
22052 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
22053 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
22054 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
22056 for (ctr = 0; ctr < 4; ctr++)
22057 rssi_buf[ctr] += tmp_buf[ctr];
22061 rssi_out_val = rssi_buf[3] & 0xff;
22062 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
22063 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
22064 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
22066 if (NREV_LT(pi->pubpi.phy_rev, 2))
22067 write_phy_reg(pi, 0xca, gpiosel_orig);
22069 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22070 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22071 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22072 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
22073 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
22074 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
22075 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22076 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
22077 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
22079 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
22080 write_phy_reg(pi, 0x78, rfctrlcmd_save);
22081 write_phy_reg(pi, 0xec, rfctrloverride_save);
22082 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
22083 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
22086 return rssi_out_val;
22089 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
22091 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
22092 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
22093 u16 pwrdet_rxtx_core1_save;
22094 u16 pwrdet_rxtx_core2_save;
22095 u16 afectrlCore1_save;
22096 u16 afectrlCore2_save;
22097 u16 afectrlOverride_save;
22098 u16 afectrlOverride2_save;
22099 u16 pd_pll_ts_save;
22102 s32 radio_temp2[4];
22103 u16 syn_tempprocsense_save;
22106 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22107 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
22108 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
22109 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
22111 u16 RfctrlOverride5_save, RfctrlOverride6_save;
22112 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
22113 u16 RSSIMultCoef0QPowerDet_save;
22114 u16 tempsense_Rcal;
22116 syn_tempprocsense_save =
22117 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
22119 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22120 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22121 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22122 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22123 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22124 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22125 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22126 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22127 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22129 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22130 &auxADC_Vmid_save);
22131 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22133 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22134 &auxADC_rssi_ctrlL_save);
22135 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22136 &auxADC_rssi_ctrlH_save);
22138 write_phy_reg(pi, 0x1ae, 0x0);
22140 auxADC_rssi_ctrlL = 0x0;
22141 auxADC_rssi_ctrlH = 0x20;
22142 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22143 &auxADC_rssi_ctrlL);
22144 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22145 &auxADC_rssi_ctrlH);
22147 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22149 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22150 tempsense_Rcal | 0x01);
22152 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22154 NPHY_REV7_RFCTRLOVERRIDE_ID2);
22155 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22156 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22157 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22158 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22160 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22161 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22162 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22163 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22165 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22166 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22167 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22168 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22169 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22170 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22171 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22172 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22173 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22174 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22176 auxADC_Vmid = 0xA3;
22178 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22180 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22185 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22186 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22187 tempsense_Rcal | 0x03);
22190 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22193 if (radio_temp[1] + radio_temp2[1] < -30) {
22194 auxADC_Vmid = 0x45;
22196 } else if (radio_temp[1] + radio_temp2[1] < -9) {
22197 auxADC_Vmid = 0x200;
22199 } else if (radio_temp[1] + radio_temp2[1] < 11) {
22200 auxADC_Vmid = 0x266;
22203 auxADC_Vmid = 0x2D5;
22207 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22209 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22214 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22215 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22216 tempsense_Rcal | 0x01);
22219 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22221 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22222 syn_tempprocsense_save);
22224 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22225 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22226 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22227 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22228 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22229 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22230 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22231 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22232 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22234 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22235 &auxADC_Vmid_save);
22236 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22238 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22239 &auxADC_rssi_ctrlL_save);
22240 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22241 &auxADC_rssi_ctrlH_save);
22243 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22244 + 82 * (auxADC_Vl) - 28861 +
22247 offset = (s16) pi->phy_tempsense_offset;
22249 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22250 syn_tempprocsense_save =
22251 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
22253 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22254 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22255 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22256 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22257 gpioSel_save = read_phy_reg(pi, 0xca);
22259 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22261 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22262 if (NREV_LT(pi->pubpi.phy_rev, 7))
22263 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
22265 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22266 if (NREV_GE(pi->pubpi.phy_rev, 7))
22267 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
22269 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22272 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22274 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
22275 syn_tempprocsense_save);
22277 write_phy_reg(pi, 0xca, gpioSel_save);
22278 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22279 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22280 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22281 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22283 offset = (s16) pi->phy_tempsense_offset;
22286 pwrdet_rxtx_core1_save =
22287 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22288 pwrdet_rxtx_core2_save =
22289 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22290 core1_txrf_iqcal1_save =
22291 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22292 core1_txrf_iqcal2_save =
22293 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22294 core2_txrf_iqcal1_save =
22295 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22296 core2_txrf_iqcal2_save =
22297 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22298 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22300 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22301 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22302 afectrlOverride_save = read_phy_reg(pi, 0xa5);
22303 gpioSel_save = read_phy_reg(pi, 0xca);
22305 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
22306 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
22307 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
22308 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
22309 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22310 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22311 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
22313 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22314 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22316 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22317 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22319 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22320 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22322 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22323 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22324 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22325 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22328 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
22333 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22335 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22337 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
22338 pwrdet_rxtx_core1_save);
22339 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
22340 pwrdet_rxtx_core2_save);
22341 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
22342 core1_txrf_iqcal1_save);
22343 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
22344 core2_txrf_iqcal1_save);
22345 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
22346 core1_txrf_iqcal2_save);
22347 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
22348 core2_txrf_iqcal2_save);
22349 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22351 write_phy_reg(pi, 0xca, gpioSel_save);
22352 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22353 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22354 write_phy_reg(pi, 0xa5, afectrlOverride_save);
22357 return (s16) radio_temp[0] + offset;
22361 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22365 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22366 if (rssi_type == NPHY_RSSI_SEL_NB) {
22367 if (core == PHY_CORE_0) {
22369 RADIO_2055_CORE1_B0_NBRSSI_VCM,
22370 RADIO_2055_NBRSSI_VCM_I_MASK,
22373 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22375 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22376 RADIO_2055_NBRSSI_VCM_Q_MASK,
22379 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22382 RADIO_2055_CORE2_B0_NBRSSI_VCM,
22383 RADIO_2055_NBRSSI_VCM_I_MASK,
22386 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22388 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22389 RADIO_2055_NBRSSI_VCM_Q_MASK,
22392 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22395 if (core == PHY_CORE_0)
22397 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22398 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22401 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22404 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22405 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22408 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22413 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22417 u16 clip_off[] = { 0xffff, 0xffff };
22422 s32 poll_results[8][4] = {
22432 s32 poll_result_core[4] = { 0, 0, 0, 0 };
22433 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22434 s32 fine_digital_offset[4];
22435 s32 poll_results_min[4] = { 0, 0, 0, 0 };
22441 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22442 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22443 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22444 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22445 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22446 u16 NPHY_RfctrlCmd_save;
22447 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22448 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22450 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22451 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22452 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22453 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22455 NPHY_REV7_RfctrlOverride3_save =
22456 NPHY_REV7_RfctrlOverride4_save =
22457 NPHY_REV7_RfctrlOverride5_save =
22458 NPHY_REV7_RfctrlOverride6_save =
22459 NPHY_REV7_RfctrlMiscReg3_save =
22460 NPHY_REV7_RfctrlMiscReg4_save =
22461 NPHY_REV7_RfctrlMiscReg5_save =
22462 NPHY_REV7_RfctrlMiscReg6_save = 0;
22464 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22465 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22466 wlc_phy_clip_det_nphy(pi, 0, clip_state);
22467 wlc_phy_clip_det_nphy(pi, 1, clip_off);
22469 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22470 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22471 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22472 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22473 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22474 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22475 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22476 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22477 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22478 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22479 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22480 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22481 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22483 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22484 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22485 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22486 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22487 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22488 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22489 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22490 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22491 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22492 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22494 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22495 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22497 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22498 RADIO_MIMO_CORESEL_ALLRXTX);
22499 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22500 RADIO_MIMO_CORESEL_ALLRXTX);
22502 if (NREV_GE(pi->pubpi.phy_rev, 7))
22503 wlc_phy_rfctrl_override_1tomany_nphy(
22505 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
22508 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22510 if (NREV_GE(pi->pubpi.phy_rev, 7))
22511 wlc_phy_rfctrl_override_1tomany_nphy(
22513 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
22516 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22518 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22519 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22521 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22522 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22523 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22525 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22526 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22529 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22530 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22531 wlc_phy_rfctrl_override_nphy_rev7(
22534 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22535 wlc_phy_rfctrl_override_nphy_rev7(
22536 pi, (0x1 << 4), 1, 0,
22538 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22540 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22541 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22545 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22546 wlc_phy_rfctrl_override_nphy_rev7(
22549 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22550 wlc_phy_rfctrl_override_nphy_rev7(
22551 pi, (0x1 << 5), 1, 0,
22553 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22555 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22556 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22560 rxcore_state = wlc_phy_rxcore_getstate_nphy(
22561 (struct brcms_phy_pub *) pi);
22565 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22567 if ((rxcore_state & (1 << core)) == 0)
22570 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22573 RADIO_MIMO_CORESEL_CORE1 :
22574 RADIO_MIMO_CORESEL_CORE2,
22575 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
22576 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22579 RADIO_MIMO_CORESEL_CORE1 :
22580 RADIO_MIMO_CORESEL_CORE2,
22581 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
22583 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22584 if (NREV_GE(pi->pubpi.phy_rev, 7))
22585 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22586 RADIO_2057_NB_MASTER_CORE0 :
22587 RADIO_2057_NB_MASTER_CORE1,
22588 RADIO_2057_VCM_MASK, vcm);
22590 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22592 PHY_CORE_0) ? RADIO_2056_RX0 :
22594 RADIO_2056_VCM_MASK,
22595 vcm << RADIO_2056_RSSI_VCM_SHIFT);
22597 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
22598 &poll_results[vcm][0],
22599 NPHY_RSSICAL_NPOLL);
22602 for (result_idx = 0; result_idx < 4; result_idx++) {
22603 if ((core == result_idx / 2) &&
22604 (result_idx % 2 == 0)) {
22606 min_d = NPHY_RSSICAL_MAXD;
22609 NPHY_RSSICAL_MAXREAD *
22610 NPHY_RSSICAL_NPOLL + 1;
22611 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22613 poll_results[vcm][result_idx] *
22614 poll_results[vcm][result_idx] +
22615 poll_results[vcm][result_idx +
22617 poll_results[vcm][result_idx +
22619 if (curr_d < min_d) {
22623 if (poll_results[vcm][result_idx] <
22629 vcm_final = min_vcm;
22630 poll_results_min[result_idx] = min_poll;
22634 if (NREV_GE(pi->pubpi.phy_rev, 7))
22635 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22636 RADIO_2057_NB_MASTER_CORE0 :
22637 RADIO_2057_NB_MASTER_CORE1,
22638 RADIO_2057_VCM_MASK, vcm_final);
22640 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22642 PHY_CORE_0) ? RADIO_2056_RX0 :
22643 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
22644 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22646 for (result_idx = 0; result_idx < 4; result_idx++) {
22647 if (core == result_idx / 2) {
22648 fine_digital_offset[result_idx] =
22649 (NPHY_RSSICAL_NB_TARGET *
22650 NPHY_RSSICAL_NPOLL) -
22651 poll_results[vcm_final][result_idx];
22652 if (fine_digital_offset[result_idx] < 0) {
22653 fine_digital_offset[result_idx] =
22654 abs(fine_digital_offset
22656 fine_digital_offset[result_idx] +=
22657 (NPHY_RSSICAL_NPOLL / 2);
22658 fine_digital_offset[result_idx] /=
22659 NPHY_RSSICAL_NPOLL;
22660 fine_digital_offset[result_idx] =
22661 -fine_digital_offset[
22664 fine_digital_offset[result_idx] +=
22665 (NPHY_RSSICAL_NPOLL / 2);
22666 fine_digital_offset[result_idx] /=
22667 NPHY_RSSICAL_NPOLL;
22670 if (poll_results_min[result_idx] ==
22671 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22672 fine_digital_offset[result_idx] =
22673 (NPHY_RSSICAL_NB_TARGET -
22674 NPHY_RSSICAL_MAXREAD - 1);
22676 wlc_phy_scale_offset_rssi_nphy(
22679 fine_digital_offset
22681 (result_idx / 2 == 0) ?
22682 RADIO_MIMO_CORESEL_CORE1 :
22683 RADIO_MIMO_CORESEL_CORE2,
22684 (result_idx % 2 == 0) ?
22685 NPHY_RAIL_I : NPHY_RAIL_Q,
22692 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22694 if ((rxcore_state & (1 << core)) == 0)
22697 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22699 rssi_type = NPHY_RSSI_SEL_W1;
22700 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22702 rssi_type = NPHY_RSSI_SEL_W2;
22703 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22706 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22709 RADIO_MIMO_CORESEL_CORE1
22711 RADIO_MIMO_CORESEL_CORE2,
22712 NPHY_RAIL_I, rssi_type);
22713 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22716 RADIO_MIMO_CORESEL_CORE1
22718 RADIO_MIMO_CORESEL_CORE2,
22719 NPHY_RAIL_Q, rssi_type);
22721 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22722 NPHY_RSSICAL_NPOLL);
22724 for (result_idx = 0; result_idx < 4; result_idx++) {
22725 if (core == result_idx / 2) {
22726 fine_digital_offset[result_idx] =
22728 NPHY_RSSICAL_NPOLL) -
22729 poll_result_core[result_idx];
22730 if (fine_digital_offset[result_idx] <
22732 fine_digital_offset[result_idx]
22734 fine_digital_offset
22736 fine_digital_offset[result_idx]
22737 += (NPHY_RSSICAL_NPOLL
22739 fine_digital_offset[result_idx]
22740 /= NPHY_RSSICAL_NPOLL;
22741 fine_digital_offset[result_idx]
22742 = -fine_digital_offset
22745 fine_digital_offset[result_idx]
22746 += (NPHY_RSSICAL_NPOLL
22748 fine_digital_offset[result_idx]
22749 /= NPHY_RSSICAL_NPOLL;
22752 wlc_phy_scale_offset_rssi_nphy(
22755 fine_digital_offset
22758 (core == PHY_CORE_0) ?
22759 RADIO_MIMO_CORESEL_CORE1 :
22760 RADIO_MIMO_CORESEL_CORE2,
22761 (result_idx % 2 == 0) ?
22771 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22772 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22774 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22776 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22777 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22778 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22780 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22781 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22782 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22784 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22785 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22786 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22787 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22788 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22789 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22790 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22791 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22792 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22793 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22794 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22796 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22797 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22798 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22799 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22800 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22801 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22802 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22803 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22804 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22805 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22807 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22808 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22810 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22811 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22812 pi->rssical_cache.rssical_radio_regs_2G[0] =
22813 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22814 pi->rssical_cache.rssical_radio_regs_2G[1] =
22815 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22817 pi->rssical_cache.rssical_radio_regs_2G[0] =
22819 RADIO_2056_RX_RSSI_MISC |
22821 pi->rssical_cache.rssical_radio_regs_2G[1] =
22823 RADIO_2056_RX_RSSI_MISC |
22827 pi->rssical_cache.rssical_phyregs_2G[0] =
22828 read_phy_reg(pi, 0x1a6);
22829 pi->rssical_cache.rssical_phyregs_2G[1] =
22830 read_phy_reg(pi, 0x1ac);
22831 pi->rssical_cache.rssical_phyregs_2G[2] =
22832 read_phy_reg(pi, 0x1b2);
22833 pi->rssical_cache.rssical_phyregs_2G[3] =
22834 read_phy_reg(pi, 0x1b8);
22835 pi->rssical_cache.rssical_phyregs_2G[4] =
22836 read_phy_reg(pi, 0x1a4);
22837 pi->rssical_cache.rssical_phyregs_2G[5] =
22838 read_phy_reg(pi, 0x1aa);
22839 pi->rssical_cache.rssical_phyregs_2G[6] =
22840 read_phy_reg(pi, 0x1b0);
22841 pi->rssical_cache.rssical_phyregs_2G[7] =
22842 read_phy_reg(pi, 0x1b6);
22843 pi->rssical_cache.rssical_phyregs_2G[8] =
22844 read_phy_reg(pi, 0x1a5);
22845 pi->rssical_cache.rssical_phyregs_2G[9] =
22846 read_phy_reg(pi, 0x1ab);
22847 pi->rssical_cache.rssical_phyregs_2G[10] =
22848 read_phy_reg(pi, 0x1b1);
22849 pi->rssical_cache.rssical_phyregs_2G[11] =
22850 read_phy_reg(pi, 0x1b7);
22852 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22854 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22855 pi->rssical_cache.rssical_radio_regs_5G[0] =
22856 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22857 pi->rssical_cache.rssical_radio_regs_5G[1] =
22858 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22860 pi->rssical_cache.rssical_radio_regs_5G[0] =
22862 RADIO_2056_RX_RSSI_MISC |
22864 pi->rssical_cache.rssical_radio_regs_5G[1] =
22866 RADIO_2056_RX_RSSI_MISC |
22870 pi->rssical_cache.rssical_phyregs_5G[0] =
22871 read_phy_reg(pi, 0x1a6);
22872 pi->rssical_cache.rssical_phyregs_5G[1] =
22873 read_phy_reg(pi, 0x1ac);
22874 pi->rssical_cache.rssical_phyregs_5G[2] =
22875 read_phy_reg(pi, 0x1b2);
22876 pi->rssical_cache.rssical_phyregs_5G[3] =
22877 read_phy_reg(pi, 0x1b8);
22878 pi->rssical_cache.rssical_phyregs_5G[4] =
22879 read_phy_reg(pi, 0x1a4);
22880 pi->rssical_cache.rssical_phyregs_5G[5] =
22881 read_phy_reg(pi, 0x1aa);
22882 pi->rssical_cache.rssical_phyregs_5G[6] =
22883 read_phy_reg(pi, 0x1b0);
22884 pi->rssical_cache.rssical_phyregs_5G[7] =
22885 read_phy_reg(pi, 0x1b6);
22886 pi->rssical_cache.rssical_phyregs_5G[8] =
22887 read_phy_reg(pi, 0x1a5);
22888 pi->rssical_cache.rssical_phyregs_5G[9] =
22889 read_phy_reg(pi, 0x1ab);
22890 pi->rssical_cache.rssical_phyregs_5G[10] =
22891 read_phy_reg(pi, 0x1b1);
22892 pi->rssical_cache.rssical_phyregs_5G[11] =
22893 read_phy_reg(pi, 0x1b7);
22895 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22898 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22899 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22902 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
22907 u16 rssi_ctrl_state[2], pd_state[2];
22908 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
22909 u16 rfctrlintc_override_val;
22910 u16 clip_off[] = { 0xffff, 0xffff };
22911 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
22912 u8 vcm, min_vcm, vcm_tmp[4];
22913 u8 vcm_final[4] = { 0, 0, 0, 0 };
22914 u8 result_idx, ctr;
22915 s32 poll_results[4][4] = {
22921 s32 poll_miniq[4][2] = {
22928 s32 fine_digital_offset[4];
22929 s32 poll_results_min[4] = { 0, 0, 0, 0 };
22932 switch (rssi_type) {
22933 case NPHY_RSSI_SEL_NB:
22934 target_code = NPHY_RSSICAL_NB_TARGET;
22936 case NPHY_RSSI_SEL_W1:
22937 target_code = NPHY_RSSICAL_W1_TARGET;
22939 case NPHY_RSSI_SEL_W2:
22940 target_code = NPHY_RSSICAL_W2_TARGET;
22947 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22948 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22949 wlc_phy_clip_det_nphy(pi, 0, clip_state);
22950 wlc_phy_clip_det_nphy(pi, 1, clip_off);
22952 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
22953 rfctrlintc_override_val =
22954 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
22956 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
22957 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
22958 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
22959 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
22961 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
22962 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
22963 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
22964 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
22966 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
22967 RADIO_2055_WBRSSI_G2_PD;
22969 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
22971 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
22972 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
22973 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
22974 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
22975 RADIO_2055_WBRSSI_G2_SEL;
22976 rssi_ctrl_state[0] =
22977 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
22978 rssi_ctrl_state[1] =
22979 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
22980 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22982 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22983 NPHY_RAIL_I, rssi_type);
22984 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22985 NPHY_RAIL_Q, rssi_type);
22987 for (vcm = 0; vcm < 4; vcm++) {
22989 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
22990 if (rssi_type != NPHY_RSSI_SEL_W2)
22991 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
22993 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
22994 NPHY_RSSICAL_NPOLL);
22996 if ((rssi_type == NPHY_RSSI_SEL_W1)
22997 || (rssi_type == NPHY_RSSI_SEL_W2)) {
22998 for (ctr = 0; ctr < 2; ctr++)
22999 poll_miniq[vcm][ctr] =
23000 min(poll_results[vcm][ctr * 2 + 0],
23001 poll_results[vcm][ctr * 2 + 1]);
23005 for (result_idx = 0; result_idx < 4; result_idx++) {
23006 min_d = NPHY_RSSICAL_MAXD;
23008 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
23009 for (vcm = 0; vcm < 4; vcm++) {
23010 curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
23011 poll_results[vcm][result_idx] :
23012 poll_miniq[vcm][result_idx / 2]) -
23013 (target_code * NPHY_RSSICAL_NPOLL));
23014 if (curr_d < min_d) {
23018 if (poll_results[vcm][result_idx] < min_poll)
23019 min_poll = poll_results[vcm][result_idx];
23021 vcm_final[result_idx] = min_vcm;
23022 poll_results_min[result_idx] = min_poll;
23025 if (rssi_type != NPHY_RSSI_SEL_W2)
23026 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
23028 for (result_idx = 0; result_idx < 4; result_idx++) {
23029 fine_digital_offset[result_idx] =
23030 (target_code * NPHY_RSSICAL_NPOLL) -
23031 poll_results[vcm_final[result_idx]][result_idx];
23032 if (fine_digital_offset[result_idx] < 0) {
23033 fine_digital_offset[result_idx] =
23034 abs(fine_digital_offset[result_idx]);
23035 fine_digital_offset[result_idx] +=
23036 (NPHY_RSSICAL_NPOLL / 2);
23037 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23038 fine_digital_offset[result_idx] =
23039 -fine_digital_offset[result_idx];
23041 fine_digital_offset[result_idx] +=
23042 (NPHY_RSSICAL_NPOLL / 2);
23043 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23046 if (poll_results_min[result_idx] ==
23047 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
23048 fine_digital_offset[result_idx] =
23049 (target_code - NPHY_RSSICAL_MAXREAD - 1);
23051 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
23053 fine_digital_offset[result_idx],
23055 0) ? RADIO_MIMO_CORESEL_CORE1 :
23056 RADIO_MIMO_CORESEL_CORE2,
23058 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
23062 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
23063 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
23064 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
23065 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23067 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
23068 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23070 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
23071 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23074 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23076 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
23077 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23079 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
23080 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23082 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
23083 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23086 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23089 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
23091 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
23092 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
23093 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
23094 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
23096 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23097 wlc_phy_clip_det_nphy(pi, 1, clip_state);
23099 wlc_phy_resetcca_nphy(pi);
23102 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
23104 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23105 wlc_phy_rssi_cal_nphy_rev3(pi);
23107 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
23108 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
23109 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
23114 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
23116 s16 rxpwr, rxpwr0, rxpwr1;
23117 s16 phyRx0_l, phyRx2_l;
23120 rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23121 rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23128 phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23129 phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23130 if (phyRx2_l > 127)
23133 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23138 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23139 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23140 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23141 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23142 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23143 rxpwr = (rxpwr0 + rxpwr1) >> 1;
23149 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23153 u32 *data_buf = NULL;
23155 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
23156 if (data_buf == NULL)
23159 if (pi->phyhang_avoid)
23160 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23162 for (t = 0; t < num_samps; t++)
23163 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23164 (((unsigned int)tone_buf[t].q) & 0x3ff);
23165 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23170 if (pi->phyhang_avoid)
23171 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23175 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23178 u8 phy_bw, is_phybw40;
23179 u16 num_samps, t, spur;
23180 s32 theta = 0, rot = 0;
23182 struct cordic_iq *tone_buf = NULL;
23184 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23185 phy_bw = (is_phybw40 == 1) ? 40 : 20;
23186 tbl_len = (phy_bw << 3);
23188 if (dac_test_mode == 1) {
23189 spur = read_phy_reg(pi, 0x01);
23190 spur = (spur >> 15) & 1;
23191 phy_bw = (spur == 1) ? 82 : 80;
23192 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23194 tbl_len = (phy_bw << 1);
23197 tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
23198 if (tone_buf == NULL)
23201 num_samps = (u16) tbl_len;
23202 rot = ((f_kHz * 36) / phy_bw) / 100;
23205 for (t = 0; t < num_samps; t++) {
23207 tone_buf[t] = cordic_calc_iq(theta);
23211 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23212 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23215 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23223 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23224 u16 wait, u8 iqmode, u8 dac_test_mode,
23225 bool modify_bbmult)
23228 u8 phy_bw, sample_cmd;
23229 u16 orig_RfseqCoreActv;
23230 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23231 lpf_bw_ctl_miscreg4;
23233 if (pi->phyhang_avoid)
23234 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23237 if (CHSPEC_IS40(pi->radio_chanspec))
23240 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23242 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23243 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23244 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23245 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23247 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23250 wlc_phy_rfctrl_override_nphy_rev7(
23253 wlc_phy_read_lpf_bw_ctl_nphy
23256 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23258 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
23260 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23262 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23267 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23269 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23271 pi->nphy_bb_mult_save =
23272 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23275 if (modify_bbmult) {
23276 bb_mult = (phy_bw == 20) ? 100 : 71;
23277 bb_mult = (bb_mult << 8) + bb_mult;
23278 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23282 if (pi->phyhang_avoid)
23283 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23285 write_phy_reg(pi, 0xc6, num_samps - 1);
23287 if (loops != 0xffff)
23288 write_phy_reg(pi, 0xc4, loops - 1);
23290 write_phy_reg(pi, 0xc4, loops);
23292 write_phy_reg(pi, 0xc5, wait);
23294 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23295 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
23298 and_phy_reg(pi, 0xc2, 0x7FFF);
23300 or_phy_reg(pi, 0xc2, 0x8000);
23303 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23304 write_phy_reg(pi, 0xc3, sample_cmd);
23307 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23309 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23313 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23314 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23317 u16 loops = 0xffff;
23320 num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23322 if (num_samps == 0)
23325 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23326 dac_test_mode, modify_bbmult);
23331 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
23333 u16 playback_status;
23336 if (pi->phyhang_avoid)
23337 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23339 playback_status = read_phy_reg(pi, 0xc7);
23340 if (playback_status & 0x1)
23341 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23342 else if (playback_status & 0x2)
23343 and_phy_reg(pi, 0xc2,
23344 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
23346 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23348 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23350 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23351 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23354 pi->nphy_bb_mult_save = 0;
23357 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23358 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
23359 wlc_phy_rfctrl_override_nphy_rev7(
23363 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23364 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23368 if (pi->phyhang_avoid)
23369 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23372 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23374 u32 *tx_pwrctrl_tbl = NULL;
23375 uint phyrev = pi->pubpi.phy_rev;
23379 wlc_phy_get_ipa_gaintbl_nphy(pi);
23381 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23382 if (NREV_IS(phyrev, 3))
23383 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23384 else if (NREV_IS(phyrev, 4))
23386 (pi->srom_fem5g.extpagain == 3) ?
23387 nphy_tpc_5GHz_txgain_HiPwrEPA :
23388 nphy_tpc_5GHz_txgain_rev4;
23390 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23392 if (NREV_GE(phyrev, 7)) {
23393 if (pi->pubpi.radiorev == 3)
23395 nphy_tpc_txgain_epa_2057rev3;
23396 else if (pi->pubpi.radiorev == 5)
23398 nphy_tpc_txgain_epa_2057rev5;
23400 if (NREV_GE(phyrev, 5) &&
23401 (pi->srom_fem2g.extpagain == 3))
23403 nphy_tpc_txgain_HiPwrEPA;
23406 nphy_tpc_txgain_rev3;
23410 return tx_pwrctrl_tbl;
23413 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
23415 u16 base_idx[2], curr_gain[2];
23417 struct nphy_txgains target_gain;
23418 u32 *tx_pwrctrl_tbl = NULL;
23420 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23421 if (pi->phyhang_avoid)
23422 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23424 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23427 if (pi->phyhang_avoid)
23428 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23430 for (core_no = 0; core_no < 2; core_no++) {
23431 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23432 target_gain.ipa[core_no] =
23433 curr_gain[core_no] & 0x0007;
23434 target_gain.pad[core_no] =
23435 ((curr_gain[core_no] & 0x00F8) >> 3);
23436 target_gain.pga[core_no] =
23437 ((curr_gain[core_no] & 0x0F00) >> 8);
23438 target_gain.txgm[core_no] =
23439 ((curr_gain[core_no] & 0x7000) >> 12);
23440 target_gain.txlpf[core_no] =
23441 ((curr_gain[core_no] & 0x8000) >> 15);
23442 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23443 target_gain.ipa[core_no] =
23444 curr_gain[core_no] & 0x000F;
23445 target_gain.pad[core_no] =
23446 ((curr_gain[core_no] & 0x00F0) >> 4);
23447 target_gain.pga[core_no] =
23448 ((curr_gain[core_no] & 0x0F00) >> 8);
23449 target_gain.txgm[core_no] =
23450 ((curr_gain[core_no] & 0x7000) >> 12);
23452 target_gain.ipa[core_no] =
23453 curr_gain[core_no] & 0x0003;
23454 target_gain.pad[core_no] =
23455 ((curr_gain[core_no] & 0x000C) >> 2);
23456 target_gain.pga[core_no] =
23457 ((curr_gain[core_no] & 0x0070) >> 4);
23458 target_gain.txgm[core_no] =
23459 ((curr_gain[core_no] & 0x0380) >> 7);
23463 uint phyrev = pi->pubpi.phy_rev;
23465 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23466 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23467 for (core_no = 0; core_no < 2; core_no++) {
23468 if (NREV_GE(phyrev, 3)) {
23470 brcms_phy_get_tx_pwrctrl_tbl(pi);
23471 if (NREV_GE(phyrev, 7)) {
23472 target_gain.ipa[core_no] =
23474 [base_idx[core_no]]
23476 target_gain.pad[core_no] =
23478 [base_idx[core_no]]
23480 target_gain.pga[core_no] =
23482 [base_idx[core_no]]
23484 target_gain.txgm[core_no] =
23486 [base_idx[core_no]]
23488 target_gain.txlpf[core_no] =
23490 [base_idx[core_no]]
23493 target_gain.ipa[core_no] =
23495 [base_idx[core_no]]
23497 target_gain.pad[core_no] =
23499 [base_idx[core_no]]
23501 target_gain.pga[core_no] =
23503 [base_idx[core_no]]
23505 target_gain.txgm[core_no] =
23507 [base_idx[core_no]]
23511 target_gain.ipa[core_no] =
23512 (nphy_tpc_txgain[base_idx[core_no]] >>
23514 target_gain.pad[core_no] =
23515 (nphy_tpc_txgain[base_idx[core_no]] >>
23517 target_gain.pga[core_no] =
23518 (nphy_tpc_txgain[base_idx[core_no]] >>
23520 target_gain.txgm[core_no] =
23521 (nphy_tpc_txgain[base_idx[core_no]] >>
23527 return target_gain;
23531 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23532 struct nphy_txgains target_gain,
23533 struct nphy_iqcal_params *params)
23538 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23540 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23541 if (NREV_GE(pi->pubpi.phy_rev, 7))
23542 params->txlpf = target_gain.txlpf[core_no];
23544 params->txgm = target_gain.txgm[core_no];
23545 params->pga = target_gain.pga[core_no];
23546 params->pad = target_gain.pad[core_no];
23547 params->ipa = target_gain.ipa[core_no];
23548 if (NREV_GE(pi->pubpi.phy_rev, 7))
23550 ((params->txlpf << 15) | (params->txgm << 12) |
23551 (params->pga << 8) |
23552 (params->pad << 3) | (params->ipa));
23555 ((params->txgm << 12) | (params->pga << 8) |
23556 (params->pad << 4) | (params->ipa));
23558 params->ncorr[0] = 0x79;
23559 params->ncorr[1] = 0x79;
23560 params->ncorr[2] = 0x79;
23561 params->ncorr[3] = 0x79;
23562 params->ncorr[4] = 0x79;
23565 gain_index = ((target_gain.pad[core_no] << 0) |
23566 (target_gain.pga[core_no] << 4) |
23567 (target_gain.txgm[core_no] << 8));
23570 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23571 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23578 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23579 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23580 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23581 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23582 (params->pad << 2));
23583 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23584 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23585 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23586 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23590 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23592 u16 jtag_core, core;
23594 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23596 for (core = 0; core <= 1; core++) {
23598 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23599 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23602 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23603 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23606 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23607 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23610 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23611 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23614 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23616 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23617 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23620 if (pi->pubpi.radiorev != 5)
23621 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23622 READ_RADIO_REG3(pi, RADIO_2057, TX,
23626 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23627 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23629 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23630 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23633 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23634 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23635 TX_SSI_MASTER, 0x0a);
23636 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23637 IQCAL_VCM_HG, 0x43);
23638 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23640 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23642 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23644 if (pi->use_int_tx_iqlo_cal_nphy) {
23645 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23646 core, TX_SSI_MUX, 0x4);
23648 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23649 WRITE_RADIO_REG3(pi, RADIO_2057,
23653 WRITE_RADIO_REG3(pi, RADIO_2057,
23657 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23660 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23661 TX_SSI_MASTER, 0x06);
23662 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23663 IQCAL_VCM_HG, 0x43);
23664 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23666 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23669 if (pi->pubpi.radiorev != 5)
23670 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23671 core, TSSIA, 0x00);
23672 if (pi->use_int_tx_iqlo_cal_nphy) {
23673 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23677 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23678 WRITE_RADIO_REG3(pi, RADIO_2057,
23682 WRITE_RADIO_REG3(pi, RADIO_2057,
23686 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23690 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23692 for (core = 0; core <= 1; core++) {
23695 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23697 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23699 RADIO_2056_TX_TX_SSI_MASTER |
23702 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23704 RADIO_2056_TX_IQCAL_VCM_HG |
23707 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23709 RADIO_2056_TX_IQCAL_IDAC |
23712 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23715 RADIO_2056_TX_TSSI_VCM |
23718 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23720 RADIO_2056_TX_TX_AMP_DET |
23723 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23725 RADIO_2056_TX_TX_SSI_MUX |
23728 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23730 RADIO_2056_TX_TSSIA | jtag_core);
23732 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23734 RADIO_2056_TX_TSSIG | jtag_core);
23736 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23738 RADIO_2056_TX_TSSI_MISC1 |
23741 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23743 RADIO_2056_TX_TSSI_MISC2 |
23746 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23748 RADIO_2056_TX_TSSI_MISC3 |
23751 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23752 write_radio_reg(pi,
23753 RADIO_2056_TX_TX_SSI_MASTER |
23755 write_radio_reg(pi,
23756 RADIO_2056_TX_IQCAL_VCM_HG |
23758 write_radio_reg(pi,
23759 RADIO_2056_TX_IQCAL_IDAC |
23761 write_radio_reg(pi,
23762 RADIO_2056_TX_TSSI_VCM |
23764 write_radio_reg(pi,
23765 RADIO_2056_TX_TX_AMP_DET |
23771 RADIO_2056_TX_TX_SSI_MUX
23773 write_radio_reg(pi,
23774 RADIO_2056_TX_TSSIA |
23779 RADIO_2056_TX_TX_SSI_MUX
23780 | jtag_core, 0x00);
23781 write_radio_reg(pi,
23782 RADIO_2056_TX_TSSIA |
23785 write_radio_reg(pi,
23786 RADIO_2056_TX_TSSIG | jtag_core,
23788 write_radio_reg(pi,
23789 RADIO_2056_TX_TSSI_MISC1 |
23792 write_radio_reg(pi,
23793 RADIO_2056_TX_TSSI_MISC2 |
23795 write_radio_reg(pi,
23796 RADIO_2056_TX_TSSI_MISC3 |
23799 write_radio_reg(pi,
23800 RADIO_2056_TX_TX_SSI_MASTER |
23802 write_radio_reg(pi,
23803 RADIO_2056_TX_IQCAL_VCM_HG |
23805 write_radio_reg(pi,
23806 RADIO_2056_TX_IQCAL_IDAC |
23808 write_radio_reg(pi,
23809 RADIO_2056_TX_TSSI_VCM |
23811 write_radio_reg(pi,
23812 RADIO_2056_TX_TX_AMP_DET |
23814 write_radio_reg(pi,
23815 RADIO_2056_TX_TSSIA | jtag_core,
23822 RADIO_2056_TX_TX_SSI_MUX
23823 | jtag_core, 0x06);
23824 if (NREV_LT(pi->pubpi.phy_rev, 5))
23827 RADIO_2056_TX_TSSIG
23833 RADIO_2056_TX_TSSIG
23839 RADIO_2056_TX_TX_SSI_MUX
23840 | jtag_core, 0x00);
23841 write_radio_reg(pi,
23842 RADIO_2056_TX_TSSIG |
23846 write_radio_reg(pi,
23847 RADIO_2056_TX_TSSI_MISC1 |
23849 write_radio_reg(pi,
23850 RADIO_2056_TX_TSSI_MISC2 |
23852 write_radio_reg(pi,
23853 RADIO_2056_TX_TSSI_MISC3 |
23859 pi->tx_rx_cal_radio_saveregs[0] =
23860 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23861 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23862 pi->tx_rx_cal_radio_saveregs[1] =
23863 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23864 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23866 pi->tx_rx_cal_radio_saveregs[2] =
23867 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23868 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23869 pi->tx_rx_cal_radio_saveregs[3] =
23870 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23871 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23873 pi->tx_rx_cal_radio_saveregs[4] =
23874 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23875 pi->tx_rx_cal_radio_saveregs[5] =
23876 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23878 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23881 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23882 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23885 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23886 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23889 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23891 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23892 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23895 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23896 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23901 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
23903 u16 jtag_core, core;
23905 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23906 for (core = 0; core <= 1; core++) {
23908 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23911 tx_rx_cal_radio_saveregs[(core * 11) +
23914 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23916 tx_rx_cal_radio_saveregs[(core * 11) +
23919 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23921 tx_rx_cal_radio_saveregs[(core * 11) +
23924 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23926 tx_rx_cal_radio_saveregs[(core * 11) +
23929 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23931 tx_rx_cal_radio_saveregs[(core * 11) +
23934 if (pi->pubpi.radiorev != 5)
23935 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23937 pi->tx_rx_cal_radio_saveregs
23938 [(core * 11) + 6]);
23940 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23942 tx_rx_cal_radio_saveregs[(core * 11) +
23945 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23947 tx_rx_cal_radio_saveregs[(core * 11) +
23950 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23951 for (core = 0; core <= 1; core++) {
23952 jtag_core = (core == PHY_CORE_0) ?
23953 RADIO_2056_TX0 : RADIO_2056_TX1;
23955 write_radio_reg(pi,
23956 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23958 tx_rx_cal_radio_saveregs[(core * 11) +
23961 write_radio_reg(pi,
23962 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23964 tx_rx_cal_radio_saveregs[(core * 11) +
23967 write_radio_reg(pi,
23968 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23970 tx_rx_cal_radio_saveregs[(core * 11) +
23973 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23975 tx_rx_cal_radio_saveregs[(core * 11) +
23978 write_radio_reg(pi,
23979 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23981 tx_rx_cal_radio_saveregs[(core * 11) +
23984 write_radio_reg(pi,
23985 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23987 tx_rx_cal_radio_saveregs[(core * 11) +
23990 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23992 tx_rx_cal_radio_saveregs[(core * 11) +
23995 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23997 tx_rx_cal_radio_saveregs[(core * 11) +
24000 write_radio_reg(pi,
24001 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
24003 tx_rx_cal_radio_saveregs[(core * 11) +
24006 write_radio_reg(pi,
24007 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
24009 tx_rx_cal_radio_saveregs[(core * 11) +
24012 write_radio_reg(pi,
24013 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
24015 tx_rx_cal_radio_saveregs[(core * 11) +
24020 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
24021 pi->tx_rx_cal_radio_saveregs[0]);
24022 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
24023 pi->tx_rx_cal_radio_saveregs[1]);
24024 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
24025 pi->tx_rx_cal_radio_saveregs[2]);
24026 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
24027 pi->tx_rx_cal_radio_saveregs[3]);
24028 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
24029 pi->tx_rx_cal_radio_saveregs[4]);
24030 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
24031 pi->tx_rx_cal_radio_saveregs[5]);
24035 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
24039 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24040 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24041 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24043 mask = ((0x3 << 8) | (0x3 << 10));
24045 val |= (0x2 << 10);
24046 mod_phy_reg(pi, 0xa6, mask, val);
24047 mod_phy_reg(pi, 0xa7, mask, val);
24049 val = read_phy_reg(pi, 0x8f);
24050 pi->tx_rx_cal_phy_saveregs[2] = val;
24051 val |= ((0x1 << 9) | (0x1 << 10));
24052 write_phy_reg(pi, 0x8f, val);
24054 val = read_phy_reg(pi, 0xa5);
24055 pi->tx_rx_cal_phy_saveregs[3] = val;
24056 val |= ((0x1 << 9) | (0x1 << 10));
24057 write_phy_reg(pi, 0xa5, val);
24059 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
24060 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
24062 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24064 pi->tx_rx_cal_phy_saveregs[5] = val;
24066 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24069 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24071 pi->tx_rx_cal_phy_saveregs[6] = val;
24073 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24076 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
24077 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
24079 if (!(pi->use_int_tx_iqlo_cal_nphy))
24080 wlc_phy_rfctrlintc_override_nphy(
24082 NPHY_RfctrlIntc_override_PA,
24084 RADIO_MIMO_CORESEL_CORE1
24086 RADIO_MIMO_CORESEL_CORE2);
24088 wlc_phy_rfctrlintc_override_nphy(
24090 NPHY_RfctrlIntc_override_PA,
24092 RADIO_MIMO_CORESEL_CORE1
24094 RADIO_MIMO_CORESEL_CORE2);
24096 wlc_phy_rfctrlintc_override_nphy(pi,
24097 NPHY_RfctrlIntc_override_TRSW,
24098 0x2, RADIO_MIMO_CORESEL_CORE1);
24099 wlc_phy_rfctrlintc_override_nphy(pi,
24100 NPHY_RfctrlIntc_override_TRSW,
24101 0x8, RADIO_MIMO_CORESEL_CORE2);
24103 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24104 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24105 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24106 0x29b, (0x1 << 0), (0) << 0);
24108 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
24109 0x29b, (0x1 << 0), (0) << 0);
24111 if (NREV_IS(pi->pubpi.phy_rev, 7)
24112 || NREV_GE(pi->pubpi.phy_rev, 8))
24113 wlc_phy_rfctrl_override_nphy_rev7(
24115 wlc_phy_read_lpf_bw_ctl_nphy
24118 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24120 if (pi->use_int_tx_iqlo_cal_nphy
24121 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24123 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24125 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24128 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24131 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24135 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24140 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24144 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24147 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24148 wlc_phy_rfctrl_override_nphy_rev7(
24152 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24156 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24157 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24159 mask = ((0x3 << 12) | (0x3 << 14));
24161 val |= (0x2 << 14);
24162 mod_phy_reg(pi, 0xa6, mask, val);
24163 mod_phy_reg(pi, 0xa7, mask, val);
24165 val = read_phy_reg(pi, 0xa5);
24166 pi->tx_rx_cal_phy_saveregs[2] = val;
24167 val |= ((0x1 << 12) | (0x1 << 13));
24168 write_phy_reg(pi, 0xa5, val);
24170 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24172 pi->tx_rx_cal_phy_saveregs[3] = val;
24174 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24177 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24179 pi->tx_rx_cal_phy_saveregs[4] = val;
24181 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24184 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24185 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24186 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24187 write_phy_reg(pi, 0x91, val);
24188 write_phy_reg(pi, 0x92, val);
24192 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24196 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24197 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24198 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24199 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24200 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24201 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24203 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24204 &pi->tx_rx_cal_phy_saveregs[5]);
24205 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24206 &pi->tx_rx_cal_phy_saveregs[6]);
24208 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24209 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24211 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24212 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24214 if (NREV_IS(pi->pubpi.phy_rev, 7)
24215 || NREV_GE(pi->pubpi.phy_rev, 8))
24216 wlc_phy_rfctrl_override_nphy_rev7(
24217 pi, (0x1 << 7), 0, 0,
24219 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24221 wlc_phy_resetcca_nphy(pi);
24223 if (pi->use_int_tx_iqlo_cal_nphy
24224 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24226 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24227 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24230 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24234 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24239 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24243 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24247 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24249 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24250 wlc_phy_rfctrl_override_nphy_rev7(
24254 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24258 mask = ((0x3 << 12) | (0x3 << 14));
24259 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24260 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24261 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24263 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24264 &pi->tx_rx_cal_phy_saveregs[3]);
24266 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24267 &pi->tx_rx_cal_phy_saveregs[4]);
24269 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24270 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24275 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24278 s32 temp, pwrindex[2];
24284 tssi_reg = read_phy_reg(pi, 0x1e9);
24286 temp = (s32) (tssi_reg & 0x3f);
24287 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24289 temp = (s32) ((tssi_reg >> 8) & 0x3f);
24290 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24293 CHSPEC_IS5G(pi->radio_chanspec) ?
24294 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
24296 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24298 tssival[0] = rssi_buf[0] / ((s32) num_samps);
24299 tssival[1] = rssi_buf[2] / ((s32) num_samps);
24301 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24302 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24304 if (pwrindex[0] < 0)
24306 else if (pwrindex[0] > 63)
24309 if (pwrindex[1] < 0)
24311 else if (pwrindex[1] > 63)
24314 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
24315 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24316 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
24317 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24320 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24327 struct nphy_txiqcal_ladder ladder_lo[] = {
24328 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24329 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24330 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24333 struct nphy_txiqcal_ladder ladder_iq[] = {
24334 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24335 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24336 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24339 bbmult = (core == PHY_CORE_0) ?
24340 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24341 (pi->nphy_txcal_bbmult & 0xff);
24343 for (index = 0; index < 18; index++) {
24344 bbmult_scale = ladder_lo[index].percent * bbmult;
24345 bbmult_scale /= 100;
24348 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24349 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
24352 bbmult_scale = ladder_iq[index].percent * bbmult;
24353 bbmult_scale /= 100;
24356 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24357 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24362 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24365 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24367 tmp = (tmp & (0x7f << 8)) >> 8;
24372 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24374 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24376 if (NREV_GT(pi->pubpi.phy_rev, 1))
24377 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24380 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24384 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24389 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24391 u16 m0m1 = (u16) ((m0 << 8) | m1);
24393 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24394 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24398 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24399 struct nphy_papd_restore_state *state, u8 core)
24405 off_core = core ^ 0x1;
24406 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24408 if (NREV_IS(pi->pubpi.phy_rev, 7)
24409 || NREV_GE(pi->pubpi.phy_rev, 8))
24410 wlc_phy_rfctrl_override_nphy_rev7(
24412 wlc_phy_read_lpf_bw_ctl_nphy
24415 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24417 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24418 if (pi->pubpi.radiorev == 5)
24419 mixgain = (core == 0) ? 0x20 : 0x00;
24420 else if ((pi->pubpi.radiorev == 7)
24421 || (pi->pubpi.radiorev == 8))
24423 else if ((pi->pubpi.radiorev <= 4)
24424 || (pi->pubpi.radiorev == 6))
24427 if ((pi->pubpi.radiorev == 4) ||
24428 (pi->pubpi.radiorev == 6))
24430 else if ((pi->pubpi.radiorev == 3)
24431 || (pi->pubpi.radiorev == 7)
24432 || (pi->pubpi.radiorev == 8))
24436 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24437 mixgain, (1 << core), 0,
24438 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24440 wlc_phy_rfctrl_override_1tomany_nphy(
24442 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24443 1, (1 << core), 0);
24444 wlc_phy_rfctrl_override_1tomany_nphy(
24446 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24447 0, (1 << off_core), 0);
24449 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24451 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24452 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24454 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24455 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24457 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24458 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24460 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24461 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24463 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24464 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24466 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24467 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24469 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24470 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24472 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24474 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24476 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24477 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24479 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24481 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24483 state->afeoverride[core] =
24484 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24485 state->afectrl[off_core] =
24486 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24487 state->afeoverride[off_core] =
24488 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24490 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24492 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24493 0xa5), (0x1 << 2), (0x1 << 2));
24495 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24496 (0x1 << 2), (0x1 << 2));
24497 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24498 0x8f), (0x1 << 2), (0x1 << 2));
24500 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24501 state->pwrup[core] =
24502 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24503 TXRXCOUPLE_2G_PWRUP);
24504 state->atten[core] =
24505 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24506 TXRXCOUPLE_2G_ATTEN);
24507 state->pwrup[off_core] =
24508 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24509 TXRXCOUPLE_2G_PWRUP);
24510 state->atten[off_core] =
24511 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24512 TXRXCOUPLE_2G_ATTEN);
24514 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24515 TXRXCOUPLE_2G_PWRUP, 0xc);
24517 if ((pi->pubpi.radiorev == 3) ||
24518 (pi->pubpi.radiorev == 4) ||
24519 (pi->pubpi.radiorev == 6))
24520 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24521 TXRXCOUPLE_2G_ATTEN, 0xf0);
24522 else if (pi->pubpi.radiorev == 5)
24523 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24524 TXRXCOUPLE_2G_ATTEN,
24525 (core == 0) ? 0xf7 : 0xf2);
24526 else if ((pi->pubpi.radiorev == 7)
24527 || (pi->pubpi.radiorev == 8))
24528 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24529 TXRXCOUPLE_2G_ATTEN, 0xf0);
24531 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24532 TXRXCOUPLE_2G_PWRUP, 0x0);
24533 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24534 TXRXCOUPLE_2G_ATTEN, 0xff);
24536 state->pwrup[core] =
24537 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24538 TXRXCOUPLE_5G_PWRUP);
24539 state->atten[core] =
24540 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24541 TXRXCOUPLE_5G_ATTEN);
24542 state->pwrup[off_core] =
24543 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24544 TXRXCOUPLE_5G_PWRUP);
24545 state->atten[off_core] =
24546 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24547 TXRXCOUPLE_5G_ATTEN);
24549 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24550 TXRXCOUPLE_5G_PWRUP, 0xc);
24552 if ((pi->pubpi.radiorev == 7)
24553 || (pi->pubpi.radiorev == 8))
24554 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24555 TXRXCOUPLE_5G_ATTEN, 0xf4);
24558 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24559 TXRXCOUPLE_5G_ATTEN, 0xf0);
24561 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24562 TXRXCOUPLE_5G_PWRUP, 0x0);
24563 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24564 TXRXCOUPLE_5G_ATTEN, 0xff);
24569 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24571 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24572 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24574 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24575 0x2a4, (0x1 << 13), (1) << 13);
24577 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24578 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24580 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24581 0x2a4, (0x1 << 13), (0) << 13);
24585 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24587 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24589 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24591 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24592 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24594 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24596 state->afeoverride[core] =
24597 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24599 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24600 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24601 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24605 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24607 state->vga_master[core] =
24608 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24609 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24610 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24611 state->fbmix[core] =
24612 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24614 state->intpa_master[core] =
24615 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24618 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24620 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24621 INTPAG_MASTER, 0x04);
24623 state->fbmix[core] =
24624 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24626 state->intpa_master[core] =
24627 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24630 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24632 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24633 INTPAA_MASTER, 0x04);
24639 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24641 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24642 0x29b, (0x1 << 0), (1) << 0);
24644 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24645 0x29b, (0x1 << 0), (0) << 0);
24647 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24652 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24653 struct nphy_papd_restore_state *state)
24657 wlc_phy_stopplayback_nphy(pi);
24659 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24661 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24663 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24664 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24665 TXRXCOUPLE_2G_PWRUP, 0);
24666 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24667 TXRXCOUPLE_2G_ATTEN,
24668 state->atten[core]);
24670 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24671 TXRXCOUPLE_5G_PWRUP, 0);
24672 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24673 TXRXCOUPLE_5G_ATTEN,
24674 state->atten[core]);
24678 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24679 wlc_phy_rfctrl_override_nphy_rev7(
24682 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24684 wlc_phy_rfctrl_override_nphy_rev7(
24687 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24689 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24691 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24692 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24693 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24694 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24695 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24696 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24697 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24698 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24699 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24700 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24701 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24702 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24703 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24704 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24705 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24706 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24707 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24708 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24709 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24710 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24711 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24712 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24713 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24714 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24715 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24716 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24717 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24718 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24719 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24720 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24721 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24723 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24725 write_phy_reg(pi, (core == PHY_CORE_0) ?
24726 0xa6 : 0xa7, state->afectrl[core]);
24727 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24728 0xa5, state->afeoverride[core]);
24731 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24732 (state->mm & 0xff));
24734 if (NREV_IS(pi->pubpi.phy_rev, 7)
24735 || NREV_GE(pi->pubpi.phy_rev, 8))
24736 wlc_phy_rfctrl_override_nphy_rev7(
24737 pi, (0x1 << 7), 0, 0,
24739 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24741 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24742 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24743 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24745 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24746 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24748 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24750 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24751 state->vga_master[core]);
24752 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24753 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24754 TXFBMIX_G, state->fbmix[core]);
24755 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24757 state->intpa_master[core]);
24759 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24760 TXFBMIX_A, state->fbmix[core]);
24761 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24763 state->intpa_master[core]);
24766 write_phy_reg(pi, (core == PHY_CORE_0) ?
24767 0xa6 : 0xa7, state->afectrl[core]);
24768 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24769 0xa5, state->afeoverride[core]);
24772 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24773 (state->mm & 0xff));
24775 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24780 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24783 u32 *buf, *src, *dst, sz;
24785 sz = end - start + 1;
24787 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24792 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24794 wlc_phy_table_read_nphy(pi,
24796 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
24797 NPHY_TBL_ID_EPSILONTBL1),
24798 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24801 u32 phy_a1, phy_a2;
24802 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24804 phy_a1 = end - min(end, (winsz >> 1));
24805 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24806 end + (winsz >> 1));
24807 phy_a3 = phy_a2 - phy_a1 + 1;
24812 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24816 } while (phy_a2-- != phy_a1);
24820 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24821 } while (end-- != start);
24823 wlc_phy_table_write_nphy(pi,
24825 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
24826 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24832 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24833 enum phy_cal_mode cal_mode, u8 core)
24835 u16 phy_a1, phy_a2, phy_a3;
24836 u16 phy_a4, phy_a5;
24840 struct nphy_txgains phy_a9;
24842 if (NREV_LT(pi->pubpi.phy_rev, 3))
24845 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24847 phy_a6 = ((cal_mode == CAL_GCTRL)
24848 || (cal_mode == CAL_SOFT)) ? true : false;
24850 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24852 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24854 if (CHSPEC_IS2G(pi->radio_chanspec))
24855 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24856 (phy_a9.txgm[core] << 12) |
24857 (phy_a9.pga[core] << 8) |
24858 (txgains->gains.pad[core] << 3) |
24859 (phy_a9.ipa[core]));
24861 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24862 (phy_a9.txgm[core] << 12) |
24863 (txgains->gains.pga[core] << 8) |
24864 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24866 wlc_phy_rfctrl_override_1tomany_nphy(
24868 NPHY_REV7_RfctrlOverride_cmd_txgain,
24869 phy_a5, (1 << core), 0);
24871 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24872 if ((pi->pubpi.radiorev <= 4)
24873 || (pi->pubpi.radiorev == 6))
24874 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24877 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24880 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24884 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24888 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24889 if ((pi->pubpi.radiorev == 4)
24890 || (pi->pubpi.radiorev == 6)) {
24898 if ((pi->pubpi.radiorev == 5)
24899 || (pi->pubpi.radiorev == 7)
24900 || (pi->pubpi.radiorev == 8)) {
24909 if (cal_mode == CAL_GCTRL) {
24910 if ((pi->pubpi.radiorev == 5)
24911 && (CHSPEC_IS2G(pi->radio_chanspec)))
24913 else if (((pi->pubpi.radiorev == 7) &&
24914 (CHSPEC_IS2G(pi->radio_chanspec))) ||
24915 ((pi->pubpi.radiorev == 8) &&
24916 (CHSPEC_IS2G(pi->radio_chanspec))))
24921 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
24927 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24928 0x29b, (0x1 << 0), (1) << 0);
24930 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
24931 0x29b, (0x1 << 0), (0) << 0);
24933 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24934 0x2a4, (0x1 << 13), (1) << 13);
24936 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
24937 0x2a4, (0x1 << 13), (0) << 13);
24939 write_phy_reg(pi, 0x2a1, 0x80);
24940 write_phy_reg(pi, 0x2a2, 0x100);
24942 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24943 0x2a4, (0x7 << 4), (11) << 4);
24945 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24946 0x2a4, (0x7 << 8), (11) << 8);
24948 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24949 0x2a4, (0x7 << 0), (0x3) << 0);
24951 write_phy_reg(pi, 0x2e5, 0x20);
24953 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
24955 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
24957 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
24959 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24960 1, ((core == 0) ? 1 : 2), 0,
24961 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24962 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24963 0, ((core == 0) ? 2 : 1), 0,
24964 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24966 write_phy_reg(pi, 0x2be, 1);
24967 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
24969 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24971 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24973 wlc_phy_table_write_nphy(pi,
24975 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
24976 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
24979 if (cal_mode != CAL_GCTRL) {
24980 if (CHSPEC_IS5G(pi->radio_chanspec))
24981 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
24984 wlc_phy_rfctrl_override_1tomany_nphy(
24986 NPHY_REV7_RfctrlOverride_cmd_txgain,
24987 phy_a5, (1 << core), 1);
24992 if (txgains->useindex) {
24993 phy_a4 = 15 - ((txgains->index) >> 3);
24994 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24995 if (NREV_GE(pi->pubpi.phy_rev, 6))
24996 phy_a5 = 0x00f7 | (phy_a4 << 8);
24999 if (NREV_IS(pi->pubpi.phy_rev, 5))
25000 phy_a5 = 0x10f7 | (phy_a4 << 8);
25002 phy_a5 = 0x50f7 | (phy_a4 << 8);
25004 phy_a5 = 0x70f7 | (phy_a4 << 8);
25006 wlc_phy_rfctrl_override_nphy(pi,
25011 wlc_phy_rfctrl_override_nphy(pi,
25018 if (CHSPEC_IS2G(pi->radio_chanspec))
25019 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
25021 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
25024 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
25028 if (cal_mode == CAL_FULL) {
25031 } else if (cal_mode == CAL_SOFT) {
25034 } else if (cal_mode == CAL_GCTRL) {
25043 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25044 0x29b, (0x1 << 0), (1) << 0);
25046 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25047 0x29b, (0x1 << 0), (0) << 0);
25049 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25050 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25051 0x2a4, (0x1 << 13), (1) << 13);
25053 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25054 0x2a4, (0x1 << 13), (0) << 13);
25056 write_phy_reg(pi, 0x2a1, 0x20);
25057 write_phy_reg(pi, 0x2a2, 0x60);
25059 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25060 0x2a4, (0xf << 4), (9) << 4);
25062 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25063 0x2a4, (0xf << 8), (9) << 8);
25065 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25066 0x2a4, (0xf << 0), (0x2) << 0);
25068 write_phy_reg(pi, 0x2e5, 0x20);
25070 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25071 0x2a4, (0x1 << 11), (1) << 11);
25073 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25074 0x2a4, (0x1 << 11), (0) << 11);
25076 write_phy_reg(pi, 0x2a1, 0x80);
25077 write_phy_reg(pi, 0x2a2, 0x600);
25079 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25080 0x2a4, (0x7 << 4), (0) << 4);
25082 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25083 0x2a4, (0x7 << 8), (0) << 8);
25085 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25086 0x2a4, (0x7 << 0), (0x3) << 0);
25088 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
25092 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25094 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25096 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25098 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
25100 write_phy_reg(pi, 0x2be, 1);
25101 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25103 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
25105 wlc_phy_table_write_nphy(pi,
25107 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25108 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25111 if (cal_mode != CAL_GCTRL)
25112 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
25116 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25121 struct nphy_ipa_txcalgains phy_a4;
25122 bool phy_a5 = false;
25123 bool phy_a6 = true;
25124 s32 phy_a7, phy_a8;
25127 bool phy_a11 = false;
25131 u8 *phy_a15 = NULL;
25133 phy_a4.useindex = true;
25134 phy_a12 = start_gain;
25136 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25141 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25142 if (pi->pubpi.radiorev == 5) {
25144 phy_a15 = pad_gain_codes_used_2057rev5;
25146 sizeof(pad_gain_codes_used_2057rev5) /
25147 sizeof(pad_gain_codes_used_2057rev5
25150 } else if ((pi->pubpi.radiorev == 7)
25151 || (pi->pubpi.radiorev == 8)) {
25153 phy_a15 = pad_gain_codes_used_2057rev7;
25155 sizeof(pad_gain_codes_used_2057rev7) /
25156 sizeof(pad_gain_codes_used_2057rev7
25161 phy_a15 = pad_all_gain_codes_2057;
25162 phy_a13 = sizeof(pad_all_gain_codes_2057) /
25163 sizeof(pad_all_gain_codes_2057[0]) -
25169 phy_a15 = pga_all_gain_codes_2057;
25170 phy_a13 = sizeof(pga_all_gain_codes_2057) /
25171 sizeof(pga_all_gain_codes_2057[0]) - 1;
25176 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25177 if (CHSPEC_IS2G(pi->radio_chanspec))
25178 phy_a4.gains.pad[core] =
25179 (u16) phy_a15[phy_a12];
25181 phy_a4.gains.pga[core] =
25182 (u16) phy_a15[phy_a12];
25184 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25186 wlc_phy_table_read_nphy(pi,
25189 NPHY_TBL_ID_EPSILONTBL0 :
25190 NPHY_TBL_ID_EPSILONTBL1), 1,
25193 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25195 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25196 (phy_a8 == 4095) || (phy_a8 == -4096));
25198 if (!phy_a6 && (phy_a3 != phy_a5)) {
25200 phy_a12 -= (u8) phy_a1;
25207 phy_a12 += (u8) phy_a1;
25209 phy_a12 -= (u8) phy_a1;
25211 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25212 if (phy_a12 < phy_a14)
25228 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25229 phy_a4.index = (u8) phy_a12;
25230 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25232 wlc_phy_table_read_nphy(pi,
25235 NPHY_TBL_ID_EPSILONTBL0 :
25236 NPHY_TBL_ID_EPSILONTBL1), 1,
25239 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25241 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25242 (phy_a8 == 4095) || (phy_a8 == -4096));
25244 if (!phy_a6 && (phy_a3 != phy_a5)) {
25246 phy_a12 -= (u8) phy_a1;
25253 phy_a12 += (u8) phy_a1;
25255 phy_a12 -= (u8) phy_a1;
25257 if ((phy_a12 < 0) || (phy_a12 > 127)) {
25273 if (NREV_GE(pi->pubpi.phy_rev, 7))
25274 return (u8) phy_a15[phy_a12];
25276 return (u8) phy_a12;
25280 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25282 struct nphy_ipa_txcalgains phy_b1[2];
25283 struct nphy_papd_restore_state phy_b2;
25287 s16 phy_b6, phy_b7, phy_b8;
25289 s16 phy_b10, phy_b11, phy_b12;
25297 if (pi->nphy_papd_skip == 1)
25300 phy_b3 = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
25302 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25304 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25306 pi->nphy_force_papd_cal = false;
25308 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25309 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25310 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25312 pi->nphy_papd_last_cal = pi->sh->now;
25313 pi->nphy_papd_recal_counter++;
25315 phy_b4 = pi->nphy_txpwrctrl;
25316 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25318 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
25319 nphy_papd_scaltbl);
25320 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
25321 nphy_papd_scaltbl);
25323 phy_b9 = read_phy_reg(pi, 0x01);
25324 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25326 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25328 for (i = 0; i < 64; i++)
25329 wlc_phy_table_write_nphy(pi,
25332 NPHY_TBL_ID_EPSILONTBL0 :
25333 NPHY_TBL_ID_EPSILONTBL1), 1,
25337 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25339 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25340 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25341 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25343 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25344 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25345 if ((pi->pubpi.radiorev == 3)
25346 || (pi->pubpi.radiorev == 4)
25347 || (pi->pubpi.radiorev == 6)) {
25348 pi->nphy_papd_cal_gain_index[phy_b5] =
25350 } else if (pi->pubpi.radiorev == 5) {
25351 pi->nphy_papd_cal_gain_index[phy_b5] =
25353 pi->nphy_papd_cal_gain_index[phy_b5] =
25357 nphy_papd_cal_gain_index
25361 } else if ((pi->pubpi.radiorev == 7)
25362 || (pi->pubpi.radiorev == 8)) {
25364 pi->nphy_papd_cal_gain_index[phy_b5] =
25366 pi->nphy_papd_cal_gain_index[phy_b5] =
25370 nphy_papd_cal_gain_index
25376 phy_b1[phy_b5].gains.pad[phy_b5] =
25377 pi->nphy_papd_cal_gain_index[phy_b5];
25380 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25381 pi->nphy_papd_cal_gain_index[phy_b5] =
25385 nphy_papd_cal_gain_index
25387 phy_b1[phy_b5].gains.pga[phy_b5] =
25388 pi->nphy_papd_cal_gain_index[phy_b5];
25391 phy_b1[phy_b5].useindex = true;
25392 phy_b1[phy_b5].index = 16;
25393 phy_b1[phy_b5].index =
25394 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25397 pi->nphy_papd_cal_gain_index[phy_b5] =
25398 15 - ((phy_b1[phy_b5].index) >> 3);
25401 switch (pi->nphy_papd_cal_type) {
25403 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25406 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25410 if (NREV_GE(pi->pubpi.phy_rev, 7))
25411 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25414 if (NREV_LT(pi->pubpi.phy_rev, 7))
25415 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25417 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25418 int eps_offset = 0;
25420 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25421 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25422 if (pi->pubpi.radiorev == 3)
25424 else if (pi->pubpi.radiorev == 5)
25432 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25433 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25435 if ((pi->pubpi.radiorev == 3) ||
25436 (pi->pubpi.radiorev == 4) ||
25437 (pi->pubpi.radiorev == 6)) {
25439 nphy_papd_padgain_dlt_2g_2057rev3n4
25442 } else if (pi->pubpi.radiorev == 5) {
25444 nphy_papd_padgain_dlt_2g_2057rev5
25446 } else if ((pi->pubpi.radiorev == 7) ||
25447 (pi->pubpi.radiorev == 8)) {
25449 nphy_papd_padgain_dlt_2g_2057rev7
25453 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25454 if ((pi->pubpi.radiorev == 3) ||
25455 (pi->pubpi.radiorev == 4) ||
25456 (pi->pubpi.radiorev == 6))
25458 -(nphy_papd_pgagain_dlt_5g_2057
25461 else if ((pi->pubpi.radiorev == 7)
25462 || (pi->pubpi.radiorev == 8))
25464 nphy_papd_pgagain_dlt_5g_2057rev7
25470 if (CHSPEC_IS2G(pi->radio_chanspec))
25472 -60 + 27 + eps_offset + phy_b12 +
25476 -60 + 27 + eps_offset + phy_b11 +
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;
25484 if (NREV_LT(pi->pubpi.phy_rev, 5))
25489 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25491 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25493 -(nphy_papd_pga_gain_delta_ipa_2g[
25499 -(nphy_papd_pga_gain_delta_ipa_5g[
25505 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25507 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25508 0x29c, (0x1ff << 7), (phy_b6) << 7);
25510 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25514 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25515 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25517 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25518 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25520 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25521 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25522 0x2a4, (0x1 << 13), (0) << 13);
25524 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25525 0x2a4, (0x1 << 13), (0) << 13);
25528 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25529 0x2a4, (0x1 << 11), (0) << 11);
25531 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25532 0x2a4, (0x1 << 11), (0) << 11);
25535 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
25537 write_phy_reg(pi, 0x01, phy_b9);
25539 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25541 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25542 if (phy_b4 == PHY_TPC_HW_OFF) {
25543 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25544 (s8) (pi->nphy_txpwrindex[0].
25545 index_internal), false);
25546 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25547 (s8) (pi->nphy_txpwrindex[1].
25548 index_internal), false);
25551 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25554 wlapi_enable_mac(pi->sh->physhim);
25557 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25559 struct nphy_txgains target_gain;
25560 u8 tx_pwr_ctrl_state;
25561 bool fullcal = true;
25562 bool restore_tx_gain = false;
25568 if (caltype == PHY_PERICAL_AUTO)
25569 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25570 else if (caltype == PHY_PERICAL_PARTIAL)
25573 if (pi->cal_type_override != PHY_PERICAL_AUTO)
25575 (pi->cal_type_override ==
25576 PHY_PERICAL_FULL) ? true : false;
25578 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
25579 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25580 wlc_phy_cal_perical_mphase_restart(pi);
25583 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
25584 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25586 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25588 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25590 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
25591 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
25592 pi->nphy_cal_orig_pwr_idx[0] =
25593 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25594 pi->nphy_cal_orig_pwr_idx[1] =
25595 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25597 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25598 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
25600 pi->nphy_cal_orig_tx_gain);
25602 pi->nphy_cal_orig_tx_gain[0] = 0;
25603 pi->nphy_cal_orig_tx_gain[1] = 0;
25606 target_gain = wlc_phy_get_tx_gain_nphy(pi);
25607 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25608 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25610 if (pi->antsel_type == ANTSEL_2x3)
25611 wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25613 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25616 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25617 wlc_phy_precal_txgain_nphy(pi);
25618 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25619 restore_tx_gain = true;
25621 target_gain = pi->nphy_cal_target_gain;
25624 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25627 wlc_phy_a4(pi, true);
25629 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25630 wlapi_enable_mac(pi->sh->physhim);
25631 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25633 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25634 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25636 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25637 (pi->first_cal_after_assoc ||
25638 (pi->cal_type_override ==
25639 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25640 wlc_phy_savecal_nphy(pi);
25642 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25644 pi->nphy_perical_last = pi->sh->now;
25647 if (caltype != PHY_PERICAL_AUTO)
25648 wlc_phy_rssi_cal_nphy(pi);
25650 if (pi->first_cal_after_assoc
25651 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25652 pi->first_cal_after_assoc = false;
25653 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25654 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25657 if (NREV_GE(pi->pubpi.phy_rev, 3))
25658 wlc_phy_radio205x_vcocal_nphy(pi);
25660 switch (pi->mphase_cal_phase_id) {
25661 case MPHASE_CAL_STATE_INIT:
25662 pi->nphy_perical_last = pi->sh->now;
25663 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25665 if (NREV_GE(pi->pubpi.phy_rev, 3))
25666 wlc_phy_precal_txgain_nphy(pi);
25668 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25669 pi->mphase_cal_phase_id++;
25672 case MPHASE_CAL_STATE_TXPHASE0:
25673 case MPHASE_CAL_STATE_TXPHASE1:
25674 case MPHASE_CAL_STATE_TXPHASE2:
25675 case MPHASE_CAL_STATE_TXPHASE3:
25676 case MPHASE_CAL_STATE_TXPHASE4:
25677 case MPHASE_CAL_STATE_TXPHASE5:
25678 if ((pi->radar_percal_mask & 0x10) != 0)
25679 pi->nphy_rxcal_active = true;
25681 if (wlc_phy_cal_txiqlo_nphy
25682 (pi, pi->nphy_cal_target_gain, fullcal,
25685 wlc_phy_cal_perical_mphase_reset(pi);
25689 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25690 (pi->mphase_cal_phase_id ==
25691 MPHASE_CAL_STATE_TXPHASE4))
25692 pi->mphase_cal_phase_id += 2;
25694 pi->mphase_cal_phase_id++;
25697 case MPHASE_CAL_STATE_PAPDCAL:
25698 if ((pi->radar_percal_mask & 0x2) != 0)
25699 pi->nphy_rxcal_active = true;
25702 wlc_phy_a4(pi, true);
25704 pi->mphase_cal_phase_id++;
25707 case MPHASE_CAL_STATE_RXCAL:
25708 if ((pi->radar_percal_mask & 0x1) != 0)
25709 pi->nphy_rxcal_active = true;
25710 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25711 (pi->first_cal_after_assoc ||
25712 (pi->cal_type_override ==
25713 PHY_PERICAL_FULL)) ? 2 : 0,
25715 wlc_phy_savecal_nphy(pi);
25717 pi->mphase_cal_phase_id++;
25720 case MPHASE_CAL_STATE_RSSICAL:
25721 if ((pi->radar_percal_mask & 0x4) != 0)
25722 pi->nphy_rxcal_active = true;
25723 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25724 wlc_phy_rssi_cal_nphy(pi);
25726 if (NREV_GE(pi->pubpi.phy_rev, 3))
25727 wlc_phy_radio205x_vcocal_nphy(pi);
25729 restore_tx_gain = true;
25731 if (pi->first_cal_after_assoc)
25732 pi->mphase_cal_phase_id++;
25734 wlc_phy_cal_perical_mphase_reset(pi);
25738 case MPHASE_CAL_STATE_IDLETSSI:
25739 if ((pi->radar_percal_mask & 0x8) != 0)
25740 pi->nphy_rxcal_active = true;
25742 if (pi->first_cal_after_assoc) {
25743 pi->first_cal_after_assoc = false;
25744 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25745 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25748 wlc_phy_cal_perical_mphase_reset(pi);
25752 wlc_phy_cal_perical_mphase_reset(pi);
25757 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25758 if (restore_tx_gain) {
25759 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25761 wlc_phy_txpwr_index_nphy(pi, 1,
25763 nphy_cal_orig_pwr_idx
25765 wlc_phy_txpwr_index_nphy(pi, 2,
25767 nphy_cal_orig_pwr_idx
25770 pi->nphy_txpwrindex[0].index = -1;
25771 pi->nphy_txpwrindex[1].index = -1;
25773 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25779 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25789 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25790 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25791 wlapi_enable_mac(pi->sh->physhim);
25795 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25796 bool fullcal, bool mphase)
25802 u8 num_cals, max_cal_cmds;
25803 u16 core_no, cal_type;
25810 struct nphy_iqcal_params cal_params[2];
25813 bool ladder_updated[2];
25814 u8 mphase_cal_lastphase = 0;
25816 bool phyhang_avoid_state = false;
25818 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
25819 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25821 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25825 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
25826 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25828 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25832 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
25833 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25835 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25839 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
25840 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25842 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25846 u16 tbl_tx_iqlo_cal_startcoefs[] = {
25847 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25851 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
25852 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25853 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25856 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
25857 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25858 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25861 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
25862 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25863 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25867 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
25868 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25869 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25872 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
25873 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25874 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25877 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25879 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25880 phyhang_avoid_state = pi->phyhang_avoid;
25881 pi->phyhang_avoid = false;
25884 if (CHSPEC_IS40(pi->radio_chanspec))
25889 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25891 for (core_no = 0; core_no <= 1; core_no++) {
25892 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25893 &cal_params[core_no]);
25894 cal_gain[core_no] = cal_params[core_no].cal_gain;
25897 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25899 wlc_phy_txcal_radio_setup_nphy(pi);
25901 wlc_phy_txcal_physetup_nphy(pi);
25903 ladder_updated[0] = ladder_updated[1] = false;
25904 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
25905 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
25906 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
25908 if (phy_bw == 40) {
25909 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
25910 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
25912 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
25913 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
25915 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
25918 if (phy_bw == 40) {
25919 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
25920 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
25922 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
25923 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
25925 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
25929 if (NREV_GE(pi->pubpi.phy_rev, 7))
25930 write_phy_reg(pi, 0xc2, 0x8ad9);
25932 write_phy_reg(pi, 0xc2, 0x8aa9);
25935 tone_freq = (phy_bw == 20) ? 2500 : 5000;
25937 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
25938 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
25942 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
25946 if (bcmerror == 0) {
25948 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
25949 tbl_ptr = pi->mphase_txcal_bestcoeffs;
25950 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
25951 if (NREV_LT(pi->pubpi.phy_rev, 3))
25954 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
25956 tbl_ptr = pi->nphy_txiqlocal_bestc;
25957 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
25958 if (NREV_LT(pi->pubpi.phy_rev, 3))
25964 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25966 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
25967 tbl_len = ARRAY_SIZE(
25968 tbl_tx_iqlo_cal_startcoefs_nphyrev3);
25970 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
25971 tbl_len = ARRAY_SIZE(
25972 tbl_tx_iqlo_cal_startcoefs);
25976 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
25980 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25982 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
25983 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
25985 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25987 tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
25988 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
25992 cal_cnt = pi->mphase_txcal_cmdidx;
25993 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
25994 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
25996 num_cals = max_cal_cmds;
25999 num_cals = max_cal_cmds;
26002 for (; cal_cnt < num_cals; cal_cnt++) {
26005 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26006 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
26008 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
26010 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26011 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
26013 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
26016 core_no = ((cal_cmd & 0x3000) >> 12);
26017 cal_type = ((cal_cmd & 0x0F00) >> 8);
26019 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
26020 (NREV_IS(pi->pubpi.phy_rev, 5) &&
26022 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
26023 if (!ladder_updated[core_no]) {
26024 wlc_phy_update_txcal_ladder_nphy(
26027 ladder_updated[core_no] = true;
26032 (cal_params[core_no].
26033 ncorr[cal_type] << 8) | NPHY_N_GCTL;
26034 write_phy_reg(pi, 0xc1, val);
26036 if ((cal_type == 1) || (cal_type == 3)
26037 || (cal_type == 4)) {
26039 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26040 1, 69 + core_no, 16,
26043 diq_start = tbl_buf[0];
26046 wlc_phy_table_write_nphy(pi,
26047 NPHY_TBL_ID_IQLOCAL, 1,
26052 write_phy_reg(pi, 0xc0, cal_cmd);
26054 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
26056 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
26057 "HW error: txiq calib"))
26060 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26061 tbl_len, 96, 16, tbl_buf);
26062 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26063 tbl_len, 64, 16, tbl_buf);
26065 if ((cal_type == 1) || (cal_type == 3)
26066 || (cal_type == 4)) {
26068 tbl_buf[0] = diq_start;
26075 pi->mphase_txcal_cmdidx = num_cals;
26076 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
26077 pi->mphase_txcal_cmdidx = 0;
26080 mphase_cal_lastphase =
26081 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
26082 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
26085 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
26087 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
26089 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26092 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26100 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26103 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
26105 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26108 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26111 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26112 if (NREV_LT(pi->pubpi.phy_rev, 3))
26115 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26117 pi->nphy_txiqlocal_bestc);
26119 pi->nphy_txiqlocal_coeffsvalid = true;
26120 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
26122 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26123 if (NREV_LT(pi->pubpi.phy_rev, 3))
26126 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26128 pi->mphase_txcal_bestcoeffs);
26131 wlc_phy_stopplayback_nphy(pi);
26133 write_phy_reg(pi, 0xc2, 0x0000);
26137 wlc_phy_txcal_phycleanup_nphy(pi);
26139 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26142 wlc_phy_txcal_radio_cleanup_nphy(pi);
26144 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26146 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26147 wlc_phy_tx_iq_war_nphy(pi);
26150 if (NREV_GE(pi->pubpi.phy_rev, 4))
26151 pi->phyhang_avoid = phyhang_avoid_state;
26153 wlc_phy_stay_in_carriersearch_nphy(pi, false);
26158 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26162 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26163 (pi->nphy_txiqlocal_coeffsvalid)) {
26164 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26165 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26167 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26168 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26169 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26170 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26172 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26173 16, pi->nphy_txiqlocal_bestc);
26179 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26182 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26184 &pi->nphy_txiqlocal_bestc[5]);
26186 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26188 &pi->nphy_txiqlocal_bestc[5]);
26194 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
26195 struct nphy_iq_comp *pcomp)
26198 write_phy_reg(pi, 0x9a, pcomp->a0);
26199 write_phy_reg(pi, 0x9b, pcomp->b0);
26200 write_phy_reg(pi, 0x9c, pcomp->a1);
26201 write_phy_reg(pi, 0x9d, pcomp->b1);
26203 pcomp->a0 = read_phy_reg(pi, 0x9a);
26204 pcomp->b0 = read_phy_reg(pi, 0x9b);
26205 pcomp->a1 = read_phy_reg(pi, 0x9c);
26206 pcomp->b1 = read_phy_reg(pi, 0x9d);
26211 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
26212 u16 num_samps, u8 wait_time, u8 wait_for_crs)
26216 write_phy_reg(pi, 0x12b, num_samps);
26217 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26218 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26219 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26221 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
26223 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26225 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26226 "HW error: rxiq est"))
26229 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26230 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26233 NPHY_IqestipwrAccHi(core)) << 16)
26234 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26237 NPHY_IqestqpwrAccHi(core)) << 16)
26238 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26239 est[core].iq_prod =
26241 NPHY_IqestIqAccHi(core)) << 16) |
26242 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26247 #define CAL_RETRY_CNT 2
26248 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26251 struct phy_iq_est est[PHY_CORE_MAX];
26252 struct nphy_iq_comp old_comp, new_comp;
26254 u32 ii = 0, qq = 0;
26255 s16 iq_nbits, qq_nbits, brsh, arsh;
26258 uint cal_retry = 0;
26260 if (core_mask == 0x0)
26263 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26264 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26265 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26268 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26270 new_comp = old_comp;
26272 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26274 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26275 iq = est[curr_core].iq_prod;
26276 ii = est[curr_core].i_pwr;
26277 qq = est[curr_core].q_pwr;
26278 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26279 iq = est[curr_core].iq_prod;
26280 ii = est[curr_core].i_pwr;
26281 qq = est[curr_core].q_pwr;
26286 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26291 iq_nbits = wlc_phy_nbits(iq);
26292 qq_nbits = wlc_phy_nbits(qq);
26294 arsh = 10 - (30 - iq_nbits);
26296 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26297 temp = (s32) (ii >> arsh);
26303 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26304 temp = (s32) (ii << -arsh);
26313 brsh = qq_nbits - 31 + 20;
26315 b = (qq << (31 - qq_nbits));
26316 temp = (s32) (ii >> brsh);
26322 b = (qq << (31 - qq_nbits));
26323 temp = (s32) (ii << -brsh);
26331 b = (s32) int_sqrt((unsigned long) b);
26334 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26335 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26336 new_comp.a0 = (s16) a & 0x3ff;
26337 new_comp.b0 = (s16) b & 0x3ff;
26340 new_comp.a0 = (s16) b & 0x3ff;
26341 new_comp.b0 = (s16) a & 0x3ff;
26344 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26345 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26346 new_comp.a1 = (s16) a & 0x3ff;
26347 new_comp.b1 = (s16) b & 0x3ff;
26350 new_comp.a1 = (s16) b & 0x3ff;
26351 new_comp.b1 = (s16) a & 0x3ff;
26356 if (bcmerror != 0) {
26357 printk(KERN_DEBUG "%s: Failed, cnt = %d\n", __func__,
26360 if (cal_retry < CAL_RETRY_CNT) {
26365 new_comp = old_comp;
26368 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26371 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26377 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26378 if (rx_core == PHY_CORE_0) {
26379 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26380 pi->tx_rx_cal_radio_saveregs[0] =
26382 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
26383 pi->tx_rx_cal_radio_saveregs[1] =
26385 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
26387 write_radio_reg(pi,
26388 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26390 write_radio_reg(pi,
26391 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26395 pi->tx_rx_cal_radio_saveregs[0] =
26397 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
26398 pi->tx_rx_cal_radio_saveregs[1] =
26400 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
26404 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26408 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26413 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26414 pi->tx_rx_cal_radio_saveregs[0] =
26416 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
26417 pi->tx_rx_cal_radio_saveregs[1] =
26419 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
26423 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26427 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26431 pi->tx_rx_cal_radio_saveregs[0] =
26433 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
26434 pi->tx_rx_cal_radio_saveregs[1] =
26436 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
26438 write_radio_reg(pi,
26439 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26441 write_radio_reg(pi,
26442 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26448 if (rx_core == PHY_CORE_0) {
26449 pi->tx_rx_cal_radio_saveregs[0] =
26451 RADIO_2056_TX_RXIQCAL_TXMUX |
26453 pi->tx_rx_cal_radio_saveregs[1] =
26455 RADIO_2056_RX_RXIQCAL_RXMUX |
26458 if (pi->pubpi.radiorev >= 5) {
26459 pi->tx_rx_cal_radio_saveregs[2] =
26461 RADIO_2056_RX_RXSPARE2 |
26463 pi->tx_rx_cal_radio_saveregs[3] =
26465 RADIO_2056_TX_TXSPARE2 |
26469 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26471 if (pi->pubpi.radiorev >= 5) {
26472 pi->tx_rx_cal_radio_saveregs[4] =
26474 RADIO_2056_RX_LNAA_MASTER
26479 RADIO_2056_RX_LNAA_MASTER
26480 | RADIO_2056_RX0, 0x40);
26482 write_radio_reg(pi,
26483 RADIO_2056_TX_TXSPARE2 |
26484 RADIO_2056_TX1, bias_a);
26486 write_radio_reg(pi,
26487 RADIO_2056_RX_RXSPARE2 |
26488 RADIO_2056_RX0, bias_a);
26490 pi->tx_rx_cal_radio_saveregs[4] =
26492 RADIO_2056_RX_LNAA_TUNE
26496 (pi->tx_rx_cal_radio_saveregs
26499 (offtune_val <= 0x7) ? 0xF : 0;
26502 RADIO_2056_RX_LNAA_TUNE |
26503 RADIO_2056_RX0, 0xF0,
26504 (offtune_val << 8));
26507 write_radio_reg(pi,
26508 RADIO_2056_TX_RXIQCAL_TXMUX |
26509 RADIO_2056_TX1, 0x9);
26510 write_radio_reg(pi,
26511 RADIO_2056_RX_RXIQCAL_RXMUX |
26512 RADIO_2056_RX0, 0x9);
26514 if (pi->pubpi.radiorev >= 5) {
26515 pi->tx_rx_cal_radio_saveregs[4] =
26518 RADIO_2056_RX_LNAG_MASTER
26523 RADIO_2056_RX_LNAG_MASTER
26524 | RADIO_2056_RX0, 0x40);
26528 RADIO_2056_TX_TXSPARE2
26530 RADIO_2056_TX1, bias_g);
26534 RADIO_2056_RX_RXSPARE2
26536 RADIO_2056_RX0, bias_g);
26539 pi->tx_rx_cal_radio_saveregs[4] =
26542 RADIO_2056_RX_LNAG_TUNE
26547 tx_rx_cal_radio_saveregs[2] &
26550 (offtune_val <= 0x7) ? 0xF : 0;
26553 RADIO_2056_RX_LNAG_TUNE |
26554 RADIO_2056_RX0, 0xF0,
26555 (offtune_val << 8));
26558 write_radio_reg(pi,
26559 RADIO_2056_TX_RXIQCAL_TXMUX |
26560 RADIO_2056_TX1, 0x6);
26561 write_radio_reg(pi,
26562 RADIO_2056_RX_RXIQCAL_RXMUX |
26563 RADIO_2056_RX0, 0x6);
26567 pi->tx_rx_cal_radio_saveregs[0] =
26569 RADIO_2056_TX_RXIQCAL_TXMUX |
26571 pi->tx_rx_cal_radio_saveregs[1] =
26573 RADIO_2056_RX_RXIQCAL_RXMUX |
26576 if (pi->pubpi.radiorev >= 5) {
26577 pi->tx_rx_cal_radio_saveregs[2] =
26579 RADIO_2056_RX_RXSPARE2 |
26581 pi->tx_rx_cal_radio_saveregs[3] =
26583 RADIO_2056_TX_TXSPARE2 |
26587 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26589 if (pi->pubpi.radiorev >= 5) {
26590 pi->tx_rx_cal_radio_saveregs[4] =
26593 RADIO_2056_RX_LNAA_MASTER
26598 RADIO_2056_RX_LNAA_MASTER |
26599 RADIO_2056_RX1, 0x40);
26603 RADIO_2056_TX_TXSPARE2
26605 RADIO_2056_TX0, bias_a);
26609 RADIO_2056_RX_RXSPARE2
26611 RADIO_2056_RX1, bias_a);
26613 pi->tx_rx_cal_radio_saveregs[4] =
26616 RADIO_2056_RX_LNAA_TUNE
26621 tx_rx_cal_radio_saveregs[2] &
26624 (offtune_val <= 0x7) ? 0xF : 0;
26627 RADIO_2056_RX_LNAA_TUNE |
26628 RADIO_2056_RX1, 0xF0,
26629 (offtune_val << 8));
26632 write_radio_reg(pi,
26633 RADIO_2056_TX_RXIQCAL_TXMUX |
26634 RADIO_2056_TX0, 0x9);
26635 write_radio_reg(pi,
26636 RADIO_2056_RX_RXIQCAL_RXMUX |
26637 RADIO_2056_RX1, 0x9);
26639 if (pi->pubpi.radiorev >= 5) {
26640 pi->tx_rx_cal_radio_saveregs[4] =
26643 RADIO_2056_RX_LNAG_MASTER
26648 RADIO_2056_RX_LNAG_MASTER
26649 | RADIO_2056_RX1, 0x40);
26653 RADIO_2056_TX_TXSPARE2
26655 RADIO_2056_TX0, bias_g);
26659 RADIO_2056_RX_RXSPARE2
26661 RADIO_2056_RX1, bias_g);
26663 pi->tx_rx_cal_radio_saveregs[4] =
26666 RADIO_2056_RX_LNAG_TUNE
26671 tx_rx_cal_radio_saveregs[2] &
26674 (offtune_val <= 0x7) ? 0xF : 0;
26677 RADIO_2056_RX_LNAG_TUNE |
26678 RADIO_2056_RX1, 0xF0,
26679 (offtune_val << 8));
26682 write_radio_reg(pi,
26683 RADIO_2056_TX_RXIQCAL_TXMUX |
26684 RADIO_2056_TX0, 0x6);
26685 write_radio_reg(pi,
26686 RADIO_2056_RX_RXIQCAL_RXMUX |
26687 RADIO_2056_RX1, 0x6);
26693 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26695 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26696 if (rx_core == PHY_CORE_0) {
26697 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26700 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26702 tx_rx_cal_radio_saveregs[0]);
26705 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26707 tx_rx_cal_radio_saveregs[1]);
26712 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26714 tx_rx_cal_radio_saveregs[0]);
26717 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26719 tx_rx_cal_radio_saveregs[1]);
26723 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26726 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26728 tx_rx_cal_radio_saveregs[0]);
26731 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26733 tx_rx_cal_radio_saveregs[1]);
26738 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26740 tx_rx_cal_radio_saveregs[0]);
26743 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26745 tx_rx_cal_radio_saveregs[1]);
26750 if (rx_core == PHY_CORE_0) {
26751 write_radio_reg(pi,
26752 RADIO_2056_TX_RXIQCAL_TXMUX |
26754 pi->tx_rx_cal_radio_saveregs[0]);
26756 write_radio_reg(pi,
26757 RADIO_2056_RX_RXIQCAL_RXMUX |
26759 pi->tx_rx_cal_radio_saveregs[1]);
26761 if (pi->pubpi.radiorev >= 5) {
26762 write_radio_reg(pi,
26763 RADIO_2056_RX_RXSPARE2 |
26766 tx_rx_cal_radio_saveregs[2]);
26768 write_radio_reg(pi,
26769 RADIO_2056_TX_TXSPARE2 |
26772 tx_rx_cal_radio_saveregs[3]);
26775 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26776 if (pi->pubpi.radiorev >= 5)
26779 RADIO_2056_RX_LNAA_MASTER
26782 tx_rx_cal_radio_saveregs
26787 RADIO_2056_RX_LNAA_TUNE
26790 tx_rx_cal_radio_saveregs
26793 if (pi->pubpi.radiorev >= 5)
26796 RADIO_2056_RX_LNAG_MASTER
26799 tx_rx_cal_radio_saveregs
26804 RADIO_2056_RX_LNAG_TUNE
26807 tx_rx_cal_radio_saveregs
26812 write_radio_reg(pi,
26813 RADIO_2056_TX_RXIQCAL_TXMUX |
26815 pi->tx_rx_cal_radio_saveregs[0]);
26817 write_radio_reg(pi,
26818 RADIO_2056_RX_RXIQCAL_RXMUX |
26820 pi->tx_rx_cal_radio_saveregs[1]);
26822 if (pi->pubpi.radiorev >= 5) {
26823 write_radio_reg(pi,
26824 RADIO_2056_RX_RXSPARE2 |
26827 tx_rx_cal_radio_saveregs[2]);
26829 write_radio_reg(pi,
26830 RADIO_2056_TX_TXSPARE2 |
26833 tx_rx_cal_radio_saveregs[3]);
26836 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26837 if (pi->pubpi.radiorev >= 5)
26840 RADIO_2056_RX_LNAA_MASTER
26843 tx_rx_cal_radio_saveregs
26848 RADIO_2056_RX_LNAA_TUNE
26851 tx_rx_cal_radio_saveregs
26854 if (pi->pubpi.radiorev >= 5)
26857 RADIO_2056_RX_LNAG_MASTER
26860 tx_rx_cal_radio_saveregs
26865 RADIO_2056_RX_LNAG_TUNE
26868 tx_rx_cal_radio_saveregs
26875 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26878 u16 rx_antval, tx_antval;
26880 if (NREV_GE(pi->pubpi.phy_rev, 7))
26883 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26885 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26886 pi->tx_rx_cal_phy_saveregs[1] =
26887 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26888 pi->tx_rx_cal_phy_saveregs[2] =
26889 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
26890 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
26891 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
26892 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
26893 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
26894 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
26895 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
26896 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26897 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
26898 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
26899 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
26900 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
26903 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
26904 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
26905 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
26906 0x29b, (0x1 << 0), (0) << 0);
26908 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
26909 0x29b, (0x1 << 0), (0) << 0);
26911 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26913 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26915 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
26919 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
26920 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26921 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
26922 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
26925 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
26926 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
26927 (0x1 << 2), (0x1 << 2));
26928 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
26929 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
26930 (0x1 << 0) | (0x1 << 1), 0);
26931 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
26933 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
26936 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
26937 RADIO_MIMO_CORESEL_CORE1 |
26938 RADIO_MIMO_CORESEL_CORE2);
26940 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26941 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26943 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26944 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
26945 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26946 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
26947 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26948 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
26949 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26950 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
26951 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26952 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
26953 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26954 if (CHSPEC_IS40(pi->radio_chanspec))
26955 wlc_phy_rfctrl_override_nphy_rev7(
26959 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26961 wlc_phy_rfctrl_override_nphy_rev7(
26965 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26967 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26969 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26970 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
26971 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26973 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
26976 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
26978 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26980 wlc_phy_rfctrlintc_override_nphy(pi,
26981 NPHY_RfctrlIntc_override_TRSW,
26985 if (rx_core == PHY_CORE_0) {
26993 wlc_phy_rfctrlintc_override_nphy(pi,
26994 NPHY_RfctrlIntc_override_TRSW,
26995 rx_antval, rx_core + 1);
26996 wlc_phy_rfctrlintc_override_nphy(pi,
26997 NPHY_RfctrlIntc_override_TRSW,
26998 tx_antval, tx_core + 1);
27002 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
27005 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
27006 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
27007 pi->tx_rx_cal_phy_saveregs[1]);
27008 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27009 pi->tx_rx_cal_phy_saveregs[2]);
27010 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
27011 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
27013 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
27014 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
27015 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
27016 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
27017 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27018 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
27019 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
27020 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
27021 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
27024 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
27025 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
27029 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
27030 u16 *rxgain, u8 cal_type)
27034 struct phy_iq_est est[PHY_CORE_MAX];
27036 struct nphy_iq_comp save_comp, zero_comp;
27037 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
27038 thresh_pwr = 10000;
27039 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
27040 bool gainctrl_done = false;
27041 u8 mix_tia_gain = 3;
27042 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
27043 s8 curr_gaintbl_index = 3;
27044 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
27045 const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
27046 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
27049 u16 nphy_rxcal_txgain[2];
27051 if (NREV_GE(pi->pubpi.phy_rev, 7))
27054 tx_core = 1 - rx_core;
27057 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
27059 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
27060 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
27061 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
27063 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27064 if (NREV_GE(pi->pubpi.phy_rev, 7))
27066 else if (NREV_GE(pi->pubpi.phy_rev, 4))
27070 if (NREV_GE(pi->pubpi.phy_rev, 7))
27071 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
27073 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
27075 if (NREV_GE(pi->pubpi.phy_rev, 7))
27076 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
27078 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
27083 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
27084 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
27085 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
27086 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
27087 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
27088 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
27089 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
27091 if (NREV_GE(pi->pubpi.phy_rev, 7))
27092 wlc_phy_rfctrl_override_1tomany_nphy(
27094 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27095 ((lpf_biq1 << 12) |
27097 (mix_tia_gain << 4) | (lna2 << 2)
27100 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27104 (mix_tia_gain << 4) |
27105 (lna2 << 2) | lna1), 0x3,
27108 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
27110 if (txpwrindex == -1) {
27111 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
27112 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
27113 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
27115 nphy_rxcal_txgain);
27117 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
27121 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
27122 NPHY_RXCAL_TONEFREQ_40MHz :
27123 NPHY_RXCAL_TONEFREQ_20MHz,
27124 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27126 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27127 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27128 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27129 curr_pwr = i_pwr + q_pwr;
27131 switch (gainctrl_dirn) {
27132 case NPHY_RXCAL_GAIN_INIT:
27133 if (curr_pwr > thresh_pwr) {
27134 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27135 prev_gaintbl_index = curr_gaintbl_index;
27136 curr_gaintbl_index--;
27138 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27139 prev_gaintbl_index = curr_gaintbl_index;
27140 curr_gaintbl_index++;
27144 case NPHY_RXCAL_GAIN_UP:
27145 if (curr_pwr > thresh_pwr) {
27146 gainctrl_done = true;
27147 optim_pwr = prev_pwr;
27148 optim_gaintbl_index = prev_gaintbl_index;
27150 prev_gaintbl_index = curr_gaintbl_index;
27151 curr_gaintbl_index++;
27155 case NPHY_RXCAL_GAIN_DOWN:
27156 if (curr_pwr > thresh_pwr) {
27157 prev_gaintbl_index = curr_gaintbl_index;
27158 curr_gaintbl_index--;
27160 gainctrl_done = true;
27161 optim_pwr = curr_pwr;
27162 optim_gaintbl_index = curr_gaintbl_index;
27170 if ((curr_gaintbl_index < 0) ||
27171 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27172 gainctrl_done = true;
27173 optim_pwr = curr_pwr;
27174 optim_gaintbl_index = prev_gaintbl_index;
27176 prev_pwr = curr_pwr;
27179 wlc_phy_stopplayback_nphy(pi);
27180 } while (!gainctrl_done);
27182 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27183 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27184 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27185 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27186 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27187 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27189 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27190 delta_pwr = desired_log2_pwr - actual_log2_pwr;
27192 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27193 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27195 if (fine_gain_idx + (int)lpf_biq0 > 10)
27196 lpf_biq1 = 10 - lpf_biq0;
27198 lpf_biq1 = (u16) max(fine_gain_idx, 0);
27200 wlc_phy_rfctrl_override_1tomany_nphy(
27202 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27203 ((lpf_biq1 << 12) |
27205 (mix_tia_gain << 4) |
27206 (lna2 << 2) | lna1), 0x3,
27209 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27210 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27214 (mix_tia_gain << 4) |
27219 if (rxgain != NULL) {
27222 *rxgain++ = mix_tia_gain;
27223 *rxgain++ = lpf_biq0;
27224 *rxgain++ = lpf_biq1;
27228 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27232 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27235 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27239 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27241 u32 target_bws[2] = { 9500, 21000 };
27242 u32 ref_tones[2] = { 3000, 6000 };
27243 u32 target_bw, ref_tone;
27245 u32 target_pwr_ratios[2] = { 28606, 18468 };
27246 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27248 u16 start_rccal_ovr_val = 128;
27249 u16 txlpf_rccal_lpc_ovr_val = 128;
27250 u16 rxlpf_rccal_hpc_ovr_val = 159;
27252 u16 orig_txlpf_rccal_lpc_ovr_val;
27253 u16 orig_rxlpf_rccal_hpc_ovr_val;
27254 u16 radio_addr_offset_rx;
27255 u16 radio_addr_offset_tx;
27257 u16 orig_RxStrnFilt40Num[6];
27258 u16 orig_RxStrnFilt40Den[4];
27259 u16 orig_rfctrloverride[2];
27260 u16 orig_rfctrlauxreg[2];
27261 u16 orig_rfctrlrssiothers;
27264 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27265 u16 lpf_hpc = 7, hpvga_hpc = 7;
27268 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27269 u32 ref_iq_vals = 0, target_iq_vals = 0;
27270 u16 num_samps, log_num_samps = 10;
27271 struct phy_iq_est est[PHY_CORE_MAX];
27273 if (NREV_GE(pi->pubpi.phy_rev, 7))
27276 num_samps = (1 << log_num_samps);
27278 if (CHSPEC_IS40(pi->radio_chanspec)) {
27279 target_bw = target_bws[1];
27280 target_pwr_ratio = target_pwr_ratios[1];
27281 ref_tone = ref_tones[1];
27282 rx_lpf_bw = rx_lpf_bws[1];
27284 target_bw = target_bws[0];
27285 target_pwr_ratio = target_pwr_ratios[0];
27286 ref_tone = ref_tones[0];
27287 rx_lpf_bw = rx_lpf_bws[0];
27290 if (core_idx == 0) {
27291 radio_addr_offset_rx = RADIO_2056_RX0;
27292 radio_addr_offset_tx =
27293 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27295 radio_addr_offset_rx = RADIO_2056_RX1;
27296 radio_addr_offset_tx =
27297 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27300 orig_txlpf_rccal_lpc_ovr_val =
27302 (RADIO_2056_TX_TXLPF_RCCAL |
27303 radio_addr_offset_tx));
27304 orig_rxlpf_rccal_hpc_ovr_val =
27306 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27307 radio_addr_offset_rx));
27309 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27311 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27312 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27313 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27314 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27315 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27316 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27317 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27318 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27319 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27320 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27322 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27323 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27324 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27325 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27326 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27328 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27329 txlpf_rccal_lpc_ovr_val);
27331 write_radio_reg(pi,
27332 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27333 rxlpf_rccal_hpc_ovr_val);
27335 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27337 write_phy_reg(pi, 0x267, 0x02d4);
27338 write_phy_reg(pi, 0x268, 0x0000);
27339 write_phy_reg(pi, 0x269, 0x0000);
27340 write_phy_reg(pi, 0x26a, 0x0000);
27341 write_phy_reg(pi, 0x26b, 0x0000);
27342 write_phy_reg(pi, 0x26c, 0x02d4);
27343 write_phy_reg(pi, 0x26d, 0x0000);
27344 write_phy_reg(pi, 0x26e, 0x0000);
27345 write_phy_reg(pi, 0x26f, 0x0000);
27346 write_phy_reg(pi, 0x270, 0x0000);
27348 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27349 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27350 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27351 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27353 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27354 (0x7 << 10), (tx_lpf_bw << 10));
27355 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27356 (0x7 << 0), (hpvga_hpc << 0));
27357 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27358 (0x7 << 4), (lpf_hpc << 4));
27359 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27360 (0x7 << 8), (rx_lpf_bw << 8));
27362 rccal_stepsize = 16;
27363 rccal_val = start_rccal_ovr_val + rccal_stepsize;
27365 while (rccal_stepsize >= 0) {
27366 write_radio_reg(pi,
27367 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27368 radio_addr_offset_rx), rccal_val);
27370 if (rccal_stepsize == 16) {
27372 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
27376 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27380 max_t(u32, (est[0].i_pwr +
27382 (log_num_samps + 1),
27386 max_t(u32, (est[1].i_pwr +
27388 (log_num_samps + 1),
27391 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
27396 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27399 target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27400 (log_num_samps + 1);
27404 est[1].q_pwr) >> (log_num_samps + 1);
27406 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27408 if (rccal_stepsize == 0)
27410 else if (rccal_stepsize == 1) {
27411 last_rccal_val = rccal_val;
27412 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27413 last_pwr_ratio = pwr_ratio;
27416 rccal_stepsize = (rccal_stepsize >> 1);
27417 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27418 rccal_stepsize : (-rccal_stepsize));
27421 if (rccal_stepsize == -1) {
27423 (abs((int)last_pwr_ratio -
27424 (int)target_pwr_ratio) <
27425 abs((int)pwr_ratio -
27426 (int)target_pwr_ratio)) ? last_rccal_val :
27429 if (CHSPEC_IS40(pi->radio_chanspec)) {
27430 if ((best_rccal_val > 140)
27431 || (best_rccal_val < 135))
27432 best_rccal_val = 138;
27434 if ((best_rccal_val > 142)
27435 || (best_rccal_val < 137))
27436 best_rccal_val = 140;
27439 write_radio_reg(pi,
27440 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27441 radio_addr_offset_rx), best_rccal_val);
27445 wlc_phy_stopplayback_nphy(pi);
27447 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27448 orig_txlpf_rccal_lpc_ovr_val);
27449 write_radio_reg(pi,
27450 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27451 orig_rxlpf_rccal_hpc_ovr_val);
27453 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27455 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27456 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27457 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27458 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27459 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27460 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27461 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27462 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27463 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27464 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27466 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27467 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27468 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27469 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27470 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27472 pi->nphy_anarxlpf_adjusted = false;
27474 return best_rccal_val - 0x80;
27477 #define WAIT_FOR_SCOPE 4000
27478 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27479 struct nphy_txgains target_gain,
27480 u8 cal_type, bool debug)
27483 u8 core_no, rx_core;
27487 struct nphy_iqcal_params cal_params[2];
27489 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27491 bool phyhang_avoid_state = false;
27492 bool skip_rxiqcal = false;
27494 orig_BBConfig = read_phy_reg(pi, 0x01);
27495 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27497 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27499 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27500 phyhang_avoid_state = pi->phyhang_avoid;
27501 pi->phyhang_avoid = false;
27504 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27506 for (core_no = 0; core_no <= 1; core_no++) {
27507 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27508 &cal_params[core_no]);
27509 cal_gain[core_no] = cal_params[core_no].cal_gain;
27512 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27514 rxcore_state = wlc_phy_rxcore_getstate_nphy(
27515 (struct brcms_phy_pub *) pi);
27517 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27520 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27522 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27524 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27526 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27528 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27530 wlc_phy_tx_tone_nphy(pi,
27532 pi->radio_chanspec)) ?
27533 NPHY_RXCAL_TONEFREQ_40MHz :
27534 NPHY_RXCAL_TONEFREQ_20MHz,
27535 NPHY_RXCAL_TONEAMP, 0, cal_type,
27539 mdelay(WAIT_FOR_SCOPE);
27541 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27542 wlc_phy_stopplayback_nphy(pi);
27545 if (((cal_type == 1) || (cal_type == 2))
27546 && NREV_LT(pi->pubpi.phy_rev, 7)) {
27548 if (rx_core == PHY_CORE_1) {
27550 if (rxcore_state == 1)
27551 wlc_phy_rxcore_setstate_nphy(
27552 (struct brcms_phy_pub *) pi, 3);
27554 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27557 best_rccal[rx_core] =
27558 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27559 pi->nphy_rccal_value = best_rccal[rx_core];
27561 if (rxcore_state == 1)
27562 wlc_phy_rxcore_setstate_nphy(
27563 (struct brcms_phy_pub *) pi,
27568 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27570 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27571 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27574 if ((cal_type == 1) || (cal_type == 2)) {
27576 best_rccal[0] = best_rccal[1];
27577 write_radio_reg(pi,
27578 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27579 RADIO_2056_RX0), (best_rccal[0] | 0x80));
27581 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27583 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
27584 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27588 (pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27589 txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27591 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27592 TXLPF_IDAC_4, txlpf_idac);
27595 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27597 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27600 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27602 PHY_CORE_0) ? RADIO_2056_RX0 :
27604 (rxlpf_rccal_hpc | 0x80));
27606 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
27608 PHY_CORE_0) ? RADIO_2056_TX0 :
27610 (txlpf_rccal_lpc | 0x80));
27614 write_phy_reg(pi, 0x01, orig_BBConfig);
27616 wlc_phy_resetcca_nphy(pi);
27618 if (NREV_GE(pi->pubpi.phy_rev, 7))
27619 wlc_phy_rfctrl_override_1tomany_nphy(
27621 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27624 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27626 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27628 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27631 if (NREV_GE(pi->pubpi.phy_rev, 4))
27632 pi->phyhang_avoid = phyhang_avoid_state;
27634 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27640 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27641 struct nphy_txgains target_gain, bool debug)
27643 struct phy_iq_est est[PHY_CORE_MAX];
27644 u8 core_num, rx_core, tx_core;
27645 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27646 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27647 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27648 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27649 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27650 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27651 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27653 u32 i_pwr, q_pwr, tot_pwr[3];
27654 u8 gain_pass, use_hpf_num;
27655 u16 mask, val1, val2;
27659 struct nphy_iqcal_params cal_params[2];
27662 bool first_playtone = true;
27664 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27666 if (NREV_LT(pi->pubpi.phy_rev, 2))
27667 wlc_phy_reapply_txcal_coeffs_nphy(pi);
27669 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27671 for (core_no = 0; core_no <= 1; core_no++) {
27672 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27673 &cal_params[core_no]);
27674 cal_gain[core_no] = cal_params[core_no].cal_gain;
27677 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27680 desired_log2_pwr = 13;
27682 for (core_num = 0; core_num < 2; core_num++) {
27684 rx_core = core_num;
27685 tx_core = 1 - core_num;
27687 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27688 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27690 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27691 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27693 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27696 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27697 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27699 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27700 ((0x1 << 1) | (0x1 << 2)));
27701 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27703 if (((pi->nphy_rxcalparams) & 0xff000000))
27705 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27706 (CHSPEC_IS5G(pi->radio_chanspec) ?
27710 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27711 (CHSPEC_IS5G(pi->radio_chanspec) ?
27714 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27715 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27718 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
27719 if (rx_core == PHY_CORE_0) {
27720 val1 = RADIO_2055_COUPLE_RX_MASK;
27721 val2 = RADIO_2055_COUPLE_TX_MASK;
27723 val1 = RADIO_2055_COUPLE_TX_MASK;
27724 val2 = RADIO_2055_COUPLE_RX_MASK;
27727 if ((pi->nphy_rxcalparams & 0x10000)) {
27728 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
27730 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
27734 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27737 mdelay(WAIT_FOR_SCOPE);
27739 if (gain_pass < 3) {
27740 curr_lna = lna_vals[gain_pass];
27741 curr_hpf1 = hpf1_vals[gain_pass];
27742 curr_hpf2 = hpf2_vals[gain_pass];
27745 if (tot_pwr[1] > 10000) {
27746 curr_lna = lna_vals[2];
27747 curr_hpf1 = hpf1_vals[2];
27748 curr_hpf2 = hpf2_vals[2];
27750 curr_hpf = curr_hpf1;
27752 wlc_phy_nbits(tot_pwr[2]);
27754 if (tot_pwr[0] > 10000) {
27755 curr_lna = lna_vals[1];
27756 curr_hpf1 = hpf1_vals[1];
27757 curr_hpf2 = hpf2_vals[1];
27759 curr_hpf = curr_hpf1;
27764 curr_lna = lna_vals[0];
27765 curr_hpf1 = hpf1_vals[0];
27766 curr_hpf2 = hpf2_vals[0];
27768 curr_hpf = curr_hpf2;
27775 hpf_change = desired_log2_pwr - actual_log2_pwr;
27776 curr_hpf += hpf_change;
27777 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27778 if (use_hpf_num == 1)
27779 curr_hpf1 = curr_hpf;
27781 curr_hpf2 = curr_hpf;
27784 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27785 ((curr_hpf2 << 8) |
27787 (curr_lna << 2)), 0x3, 0);
27788 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27790 wlc_phy_stopplayback_nphy(pi);
27792 if (first_playtone) {
27793 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27794 (u16) (pi->nphy_rxcalparams &
27795 0xffff), 0, 0, true);
27796 first_playtone = false;
27798 phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27800 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27804 if (bcmerror == 0) {
27805 if (gain_pass < 3) {
27807 wlc_phy_rx_iq_est_nphy(pi, est,
27810 i_pwr = (est[rx_core].i_pwr +
27811 num_samps / 2) / num_samps;
27812 q_pwr = (est[rx_core].q_pwr +
27813 num_samps / 2) / num_samps;
27814 tot_pwr[gain_pass] = i_pwr + q_pwr;
27817 wlc_phy_calc_rx_iq_comp_nphy(pi,
27822 wlc_phy_stopplayback_nphy(pi);
27829 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
27830 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
27832 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27833 0x92, orig_RfctrlIntcTx);
27834 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27835 0x92, orig_RfctrlIntcRx);
27836 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27837 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27838 0xa7, orig_AfectrlCore);
27839 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27845 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27846 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27848 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27851 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27857 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27858 u8 cal_type, bool debug)
27860 if (NREV_GE(pi->pubpi.phy_rev, 7))
27863 if (NREV_GE(pi->pubpi.phy_rev, 3))
27864 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27867 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27870 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27874 u16 rad_gain, dac_gain, bbmult, m1m2;
27875 u8 txpi[2], chan_freq_range;
27878 if (pi->phyhang_avoid)
27879 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27881 if (pi->sh->sromrev < 4) {
27882 txpi[0] = txpi[1] = 72;
27885 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27886 switch (chan_freq_range) {
27887 case WL_CHAN_FREQ_RANGE_2G:
27888 txpi[0] = pi->nphy_txpid2g[0];
27889 txpi[1] = pi->nphy_txpid2g[1];
27891 case WL_CHAN_FREQ_RANGE_5GL:
27892 txpi[0] = pi->nphy_txpid5gl[0];
27893 txpi[1] = pi->nphy_txpid5gl[1];
27895 case WL_CHAN_FREQ_RANGE_5GM:
27896 txpi[0] = pi->nphy_txpid5g[0];
27897 txpi[1] = pi->nphy_txpid5g[1];
27899 case WL_CHAN_FREQ_RANGE_5GH:
27900 txpi[0] = pi->nphy_txpid5gh[0];
27901 txpi[1] = pi->nphy_txpid5gh[1];
27904 txpi[0] = txpi[1] = 91;
27909 if (NREV_GE(pi->pubpi.phy_rev, 7))
27910 txpi[0] = txpi[1] = 30;
27911 else if (NREV_GE(pi->pubpi.phy_rev, 3))
27912 txpi[0] = txpi[1] = 40;
27914 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27916 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27917 (txpi[1] < 40) || (txpi[1] > 100))
27918 txpi[0] = txpi[1] = 91;
27921 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27922 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27923 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27924 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27926 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27927 uint phyrev = pi->pubpi.phy_rev;
27929 if (NREV_GE(phyrev, 3)) {
27932 wlc_phy_get_ipa_gaintbl_nphy(pi);
27933 txgain = tx_gaintbl[txpi[core]];
27935 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27936 if (NREV_IS(phyrev, 3)) {
27938 nphy_tpc_5GHz_txgain_rev3
27940 } else if (NREV_IS(phyrev, 4)) {
27942 pi->srom_fem5g.extpagain ==
27944 nphy_tpc_5GHz_txgain_HiPwrEPA
27946 nphy_tpc_5GHz_txgain_rev4
27950 nphy_tpc_5GHz_txgain_rev5
27954 if (NREV_GE(phyrev, 5) &&
27955 (pi->srom_fem2g.extpagain == 3)) {
27957 nphy_tpc_txgain_HiPwrEPA
27960 txgain = nphy_tpc_txgain_rev3
27966 txgain = nphy_tpc_txgain[txpi[core]];
27969 if (NREV_GE(phyrev, 3))
27970 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27972 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27974 if (NREV_GE(phyrev, 7))
27975 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27977 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27979 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27981 if (NREV_GE(phyrev, 3))
27982 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27983 0xa5), (0x1 << 8), (0x1 << 8));
27985 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27987 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27989 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27992 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27993 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27994 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27995 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27998 wlc_phy_table_read_nphy(pi,
28001 NPHY_TBL_ID_CORE1TXPWRCTL :
28002 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
28003 576 + txpi[core], 32,
28006 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28007 0x29b, (0x1ff << 4),
28008 ((s16) rfpwr_offset) << 4);
28010 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28011 0x29b, (0x1 << 2), (1) << 2);
28016 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
28018 if (pi->phyhang_avoid)
28019 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28023 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
28024 u8 tmp_max_pwr, u8 rate_start,
28028 u8 word_num, nibble_num;
28031 for (rate = rate_start; rate <= rate_end; rate++) {
28032 word_num = (rate - rate_start) >> 2;
28033 nibble_num = (rate - rate_start) & 0x3;
28034 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
28036 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
28041 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
28042 u8 rate_start, u8 rate_end)
28046 for (rate = rate_start; rate <= rate_end; rate++)
28047 srom_max[rate] -= 2 * pwr_offset;
28051 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
28052 u8 rate_mcs_end, u8 rate_ofdm_start)
28056 rate2 = rate_ofdm_start;
28057 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
28058 power[rate1] = power[rate2];
28059 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
28061 power[rate_mcs_end] = power[rate_mcs_end - 1];
28065 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
28066 u8 rate_ofdm_end, u8 rate_mcs_start)
28070 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
28071 rate1 <= rate_ofdm_end; rate1++, rate2++) {
28072 power[rate1] = power[rate2];
28073 if (rate1 == rate_ofdm_start)
28074 power[++rate1] = power[rate2];
28078 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
28080 uint rate1, rate2, band_num;
28081 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
28082 u8 tmp_max_pwr = 0;
28083 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
28084 u8 *tx_srom_max_rate = NULL;
28086 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
28088 switch (band_num) {
28091 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
28092 pi->nphy_pwrctrl_info[1].max_pwr_2g);
28094 pwr_offsets1[0] = pi->cck2gpo;
28095 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
28101 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
28103 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
28105 pwr_offsets2 = pi->mcs2gpo;
28107 tmp_cddpo = pi->cdd2gpo;
28108 tmp_stbcpo = pi->stbc2gpo;
28109 tmp_bw40po = pi->bw402gpo;
28111 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
28115 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
28116 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
28118 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
28120 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
28122 pwr_offsets2 = pi->mcs5gpo;
28124 tmp_cddpo = pi->cdd5gpo;
28125 tmp_stbcpo = pi->stbc5gpo;
28126 tmp_bw40po = pi->bw405gpo;
28128 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
28132 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28133 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28135 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28137 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
28139 pwr_offsets2 = pi->mcs5glpo;
28141 tmp_cddpo = pi->cdd5glpo;
28142 tmp_stbcpo = pi->stbc5glpo;
28143 tmp_bw40po = pi->bw405glpo;
28145 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28149 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28150 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28152 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28154 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28156 pwr_offsets2 = pi->mcs5ghpo;
28158 tmp_cddpo = pi->cdd5ghpo;
28159 tmp_stbcpo = pi->stbc5ghpo;
28160 tmp_bw40po = pi->bw405ghpo;
28162 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28166 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28167 tmp_max_pwr, TXP_FIRST_OFDM,
28170 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28171 TXP_FIRST_MCS_20_SISO,
28172 TXP_LAST_MCS_20_SISO,
28175 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28177 TXP_FIRST_MCS_20_CDD,
28178 TXP_LAST_MCS_20_CDD);
28180 if (NREV_GE(pi->pubpi.phy_rev, 3))
28181 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28182 TXP_FIRST_MCS_20_CDD,
28183 TXP_LAST_MCS_20_CDD);
28185 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28186 TXP_FIRST_OFDM_20_CDD,
28187 TXP_LAST_OFDM_20_CDD,
28188 TXP_FIRST_MCS_20_CDD);
28190 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28192 TXP_FIRST_MCS_20_STBC,
28193 TXP_LAST_MCS_20_STBC);
28195 if (NREV_GE(pi->pubpi.phy_rev, 3))
28196 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28198 TXP_FIRST_MCS_20_STBC,
28199 TXP_LAST_MCS_20_STBC);
28201 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28202 &pwr_offsets2[2], tmp_max_pwr,
28203 TXP_FIRST_MCS_20_SDM,
28204 TXP_LAST_MCS_20_SDM);
28206 if (NPHY_IS_SROM_REINTERPRET) {
28208 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28211 TXP_FIRST_MCS_40_SISO,
28212 TXP_LAST_MCS_40_SISO);
28214 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28215 TXP_FIRST_OFDM_40_SISO,
28216 TXP_LAST_OFDM_40_SISO,
28217 TXP_FIRST_MCS_40_SISO);
28219 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28222 TXP_FIRST_MCS_40_CDD,
28223 TXP_LAST_MCS_40_CDD);
28225 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28226 TXP_FIRST_MCS_40_CDD,
28227 TXP_LAST_MCS_40_CDD);
28229 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28230 TXP_FIRST_OFDM_40_CDD,
28231 TXP_LAST_OFDM_40_CDD,
28232 TXP_FIRST_MCS_40_CDD);
28234 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28237 TXP_FIRST_MCS_40_STBC,
28238 TXP_LAST_MCS_40_STBC);
28240 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28242 TXP_FIRST_MCS_40_STBC,
28243 TXP_LAST_MCS_40_STBC);
28245 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28248 TXP_FIRST_MCS_40_SDM,
28249 TXP_LAST_MCS_40_SDM);
28252 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28254 rate1 <= TXP_LAST_MCS_40_SDM;
28256 tx_srom_max_rate[rate1] =
28257 tx_srom_max_rate[rate2];
28260 if (NREV_GE(pi->pubpi.phy_rev, 3))
28261 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28263 TXP_FIRST_OFDM_40_SISO,
28264 TXP_LAST_MCS_40_SDM);
28266 tx_srom_max_rate[TXP_MCS_32] =
28267 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28273 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
28275 u8 tx_pwr_ctrl_state;
28276 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28277 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28279 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28281 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28282 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28283 (void)R_REG(&pi->regs->maccontrol);
28287 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28289 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28290 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28293 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28295 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28296 (0x1 << 14) | (0x1 << 13));
28299 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28304 if (wlc_phy_txpwr_ison_nphy(pi)) {
28305 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28306 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28308 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28310 tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28312 (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28318 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28321 && (pi->nphy_force_papd_cal
28322 || (wlc_phy_txpwr_ison_nphy(pi)
28325 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28326 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28328 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28329 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28330 wlc_phy_a4(pi, true);
28333 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28335 u16 mask = 0, val = 0, ishw = 0;
28342 if (pi->phyhang_avoid)
28343 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28345 switch (ctrl_type) {
28346 case PHY_TPC_HW_OFF:
28347 case PHY_TPC_HW_ON:
28348 pi->nphy_txpwrctrl = ctrl_type;
28354 if (ctrl_type == PHY_TPC_HW_OFF) {
28355 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28357 if (wlc_phy_txpwr_ison_nphy(pi)) {
28358 for (core = 0; core < pi->pubpi.phy_corenum;
28360 pi->nphy_txpwr_idx[core] =
28361 wlc_phy_txpwr_idx_cur_get_nphy(
28370 for (ctr = 0; ctr < tbl_len; ctr++)
28372 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28374 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28377 if (NREV_GE(pi->pubpi.phy_rev, 3))
28378 and_phy_reg(pi, 0x1e7,
28379 (u16) (~((0x1 << 15) |
28380 (0x1 << 14) | (0x1 << 13))));
28382 and_phy_reg(pi, 0x1e7,
28383 (u16) (~((0x1 << 14) | (0x1 << 13))));
28385 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28386 or_phy_reg(pi, 0x8f, (0x1 << 8));
28387 or_phy_reg(pi, 0xa5, (0x1 << 8));
28389 or_phy_reg(pi, 0xa5, (0x1 << 14));
28392 if (NREV_IS(pi->pubpi.phy_rev, 2))
28393 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28394 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28395 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28397 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28398 pi->bw == WL_CHANSPEC_BW_40)
28399 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28400 MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28404 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28405 8, pi->adj_pwr_tbl_nphy);
28406 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28407 8, pi->adj_pwr_tbl_nphy);
28409 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28410 mask = (0x1 << 14) | (0x1 << 13);
28411 val = (ishw << 14) | (ishw << 13);
28413 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28414 mask |= (0x1 << 15);
28415 val |= (ishw << 15);
28418 mod_phy_reg(pi, 0x1e7, mask, val);
28420 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28421 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28422 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28423 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28425 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28426 if (NREV_GT(pi->pubpi.phy_rev, 1))
28427 mod_phy_reg(pi, 0x222,
28428 (0xff << 0), 0x64);
28432 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28433 if ((pi->nphy_txpwr_idx[0] != 128)
28434 && (pi->nphy_txpwr_idx[1] != 128))
28435 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28444 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28445 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28446 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28448 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28451 if (NREV_IS(pi->pubpi.phy_rev, 2))
28452 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28453 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28454 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28456 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28457 pi->bw == WL_CHANSPEC_BW_40)
28458 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28459 0x0, BRCM_BAND_ALL);
28462 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28463 0x29b, (0x1 << 2), (0) << 2);
28465 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28466 0x29b, (0x1 << 2), (0) << 2);
28472 if (pi->phyhang_avoid)
28473 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28477 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28480 u8 core, txpwrctl_tbl;
28481 u16 tx_ind0, iq_ind0, lo_ind0;
28484 u16 rad_gain, dac_gain;
28487 u16 iqcomp_a, iqcomp_b;
28490 u8 tx_pwr_ctrl_state;
28494 if (pi->phyhang_avoid)
28495 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28501 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28503 if ((core_mask & (1 << core)) == 0)
28506 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28508 if (txpwrindex < 0) {
28509 if (pi->nphy_txpwrindex[core].index < 0)
28512 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28513 mod_phy_reg(pi, 0x8f,
28515 pi->nphy_txpwrindex[core].
28517 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28518 pi->nphy_txpwrindex[core].
28521 mod_phy_reg(pi, 0xa5,
28523 pi->nphy_txpwrindex[core].
28527 write_phy_reg(pi, (core == PHY_CORE_0) ?
28529 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28531 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28532 &pi->nphy_txpwrindex[core].
28535 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28536 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28537 m1m2 |= ((core == PHY_CORE_0) ?
28538 (pi->nphy_txpwrindex[core].bbmult << 8) :
28539 (pi->nphy_txpwrindex[core].bbmult << 0));
28540 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28542 if (restore_cals) {
28543 wlc_phy_table_write_nphy(
28544 pi, 15, 2, (80 + 2 * core), 16,
28545 &pi->nphy_txpwrindex[core].iqcomp_a);
28546 wlc_phy_table_write_nphy(
28547 pi, 15, 1, (85 + core), 16,
28548 &pi->nphy_txpwrindex[core].locomp);
28549 wlc_phy_table_write_nphy(
28550 pi, 15, 1, (93 + core), 16,
28551 &pi->nphy_txpwrindex[core].locomp);
28554 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28556 pi->nphy_txpwrindex[core].index_internal =
28557 pi->nphy_txpwrindex[core].index_internal_save;
28560 if (pi->nphy_txpwrindex[core].index < 0) {
28562 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28563 mod_phy_reg(pi, 0x8f,
28565 pi->nphy_txpwrindex[core].
28567 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28568 pi->nphy_txpwrindex[core].
28571 pi->nphy_txpwrindex[core].
28573 read_phy_reg(pi, 0xa5);
28576 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28577 read_phy_reg(pi, (core == PHY_CORE_0) ?
28580 wlc_phy_table_read_nphy(pi, 7, 1,
28581 (0x110 + core), 16,
28583 nphy_txpwrindex[core].
28586 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28588 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28590 pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28592 wlc_phy_table_read_nphy(pi, 15, 2,
28593 (80 + 2 * core), 16,
28595 nphy_txpwrindex[core].
28598 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28601 nphy_txpwrindex[core].
28604 pi->nphy_txpwrindex[core].index_internal_save =
28605 pi->nphy_txpwrindex[core].
28609 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28610 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28612 if (NREV_IS(pi->pubpi.phy_rev, 1))
28613 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28615 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28616 (tx_ind0 + txpwrindex), 32,
28619 if (NREV_GE(pi->pubpi.phy_rev, 3))
28620 rad_gain = (txgain >> 16) &
28621 ((1 << (32 - 16 + 1)) - 1);
28623 rad_gain = (txgain >> 16) &
28624 ((1 << (28 - 16 + 1)) - 1);
28626 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28627 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28629 if (NREV_GE(pi->pubpi.phy_rev, 3))
28630 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28631 0xa5), (0x1 << 8), (0x1 << 8));
28633 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28635 write_phy_reg(pi, (core == PHY_CORE_0) ?
28636 0xaa : 0xab, dac_gain);
28638 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28641 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28642 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28643 m1m2 |= ((core == PHY_CORE_0) ?
28644 (bbmult << 8) : (bbmult << 0));
28646 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28648 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28649 (iq_ind0 + txpwrindex), 32,
28651 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28652 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28654 if (restore_cals) {
28655 regval[0] = (u16) iqcomp_a;
28656 regval[1] = (u16) iqcomp_b;
28657 wlc_phy_table_write_nphy(pi, 15, 2,
28658 (80 + 2 * core), 16,
28662 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28663 (lo_ind0 + txpwrindex), 32,
28666 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28669 if (NREV_IS(pi->pubpi.phy_rev, 1))
28670 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28673 wlc_phy_table_read_nphy(pi,
28674 (core == PHY_CORE_0 ?
28675 NPHY_TBL_ID_CORE1TXPWRCTL :
28676 NPHY_TBL_ID_CORE2TXPWRCTL),
28677 1, 576 + txpwrindex, 32,
28680 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28681 0x29b, (0x1ff << 4),
28682 ((s16) rfpwr_offset) << 4);
28684 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28685 0x29b, (0x1 << 2), (1) << 2);
28689 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28692 pi->nphy_txpwrindex[core].index = txpwrindex;
28695 if (pi->phyhang_avoid)
28696 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28700 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28703 u8 chan_freq_range;
28705 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28706 switch (chan_freq_range) {
28707 case WL_CHAN_FREQ_RANGE_2G:
28708 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28710 case WL_CHAN_FREQ_RANGE_5GM:
28711 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28713 case WL_CHAN_FREQ_RANGE_5GL:
28714 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28716 case WL_CHAN_FREQ_RANGE_5GH:
28717 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28720 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28727 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28729 u16 clip_off[] = { 0xffff, 0xffff };
28732 if (pi->nphy_deaf_count == 0) {
28733 pi->classifier_state =
28734 wlc_phy_classifier_nphy(pi, 0, 0);
28735 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28736 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28737 wlc_phy_clip_det_nphy(pi, 1, clip_off);
28740 pi->nphy_deaf_count++;
28742 wlc_phy_resetcca_nphy(pi);
28745 pi->nphy_deaf_count--;
28747 if (pi->nphy_deaf_count == 0) {
28748 wlc_phy_classifier_nphy(pi, (0x7 << 0),
28749 pi->classifier_state);
28750 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28755 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28757 wlapi_suspend_mac_and_wait(pi->sh->physhim);
28760 if (pi->nphy_deaf_count == 0)
28761 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28762 } else if (pi->nphy_deaf_count > 0) {
28763 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28766 wlapi_enable_mac(pi->sh->physhim);